Usually the distinction is made between full nodes and lightweight nodes.
A full node independently validates all transactions. It guarantees that not transactions or blockchain will be accepted which spend funds without authorization (theft), create money out of thin air (inflation), or violate various other rules that exist for a smooth continued operation of the system. Full nodes guarantee this for every transaction, not just your own. Full nodes need to download the entire chain (otherwise they can’t validate history), but do not necessarily need to store it on disk (see pruning).
A lightweight node, or SPV node, does not validate anything except proof of work. This means they rely on the majority of the network’s hashrate to be honest.
In functionality there is little difference. The difference is in the trust model. Lightweight clients trust the network, while full nodes audit the network themselves.
Article First Published here