Android has a "jail" that limits user apps to claim its own user and group (one Linux user for one app). The default '/bin/su' program denies the access from these user apps. Thus we need to replace the default su by some 3rd party ones to get root access from apps(as well as adb). That is 'rooting'.
Many manufacturers don't like user to change their system (/, /system, etc.), so they employed a technique called 'BootLoader Lock' which will deny any unauthorized changes to the system partitions. Literally, the "Unlock" procedure will nullify the lock (by some means, be it official or exploiting). As we want to replace the 'su', we first need to unlock the machine.
Recovery is a small, in-memory Linux, which is designed for 'emergency' use (e.g. the main Android system broke down and cannot boot up). Many developers try to make use of the Recovery system, mainly for flashing custom roms, backing up and debugging. Therefore, we ne