SOCKS utilise un protocole de poignée de main pour informer le logiciel proxy de la connexion que le client essaie de faire et peut être utilisé pour n'importe quelle forme de connexion de socket TCP ou UDP, alors qu'un proxy HTTP analyse les en-têtes HTTP qui y sont envoyés afin de déduire l'adresse du serveur et ne peuvent donc être utilisés que pour le trafic HTTP. Les exemples suivants démontrent la différence entre les protocoles de proxy SOCKS et HTTP :
Un proxy HTTP est similaire à un serveur SOCKS, mais est limité à l'acheminement du trafic HTTP seulement.