Quelle est la différence entre "CONNECTER" et "OBTENIR HTTPS"?
Avant de passer à la vraie question, laissez-moi vous expliquer comment fonctionne mon projet : par souci de simplicité, mon proxy est sur mon ordinateur portable, là où se trouve également le client (mon navigateur); le serveur distant sera, par exemple, YouTube.
Le client est connecté à un port spécifique du proxy grâce au plugin SwitchOmega : le client souhaite se connecter à www.youtube.com et le proxy reçoit la requête suivante :
CONNECT www.youtube.com:443 HTTP/1.1
Host: www.youtube.com:443
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
On m'a dit que lorsqu'un proxy reçoit une requête CONNECT
, il doit ouvrir une connexion TCP au port IP:, renvoyer un message 200 OK
au client et envoyer des données jusqu'à ce qu'un côté de la connexion soit fermé.
Avec un autre plugin qui suit les requêtes HTTP, HTTP Trace, je vois une requête différente sur mon navigateur:
GET https://www.youtube.com/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
and other data...
Alors, pourquoi mon proxy reçoit CONNECT www.youtube.com:443 HTTP/1.1
alors que la trace HTTP affiche GET https://www.youtube.com/
? Veulent-ils dire la même chose?