Ahora, la pregunta es, ¿sabes qué aspecto tiene una solicitud HTTP ?
Bueno, suponiendo que no, aquí hay un ejemplo de uno:
GET /test?param1=hello¶m2=world HTTP/1.1
Host: subdomain.test.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Toda de esta información se encuentra encapsulada dentro del transporte SSL, como dice el comentario de su respuesta. Esto significa:
- Los parámetros de obtención están cifrados.
- El cuerpo HTTP (parámetros de publicación) están cifrados.
Lo que no es necesariamente seguro:
- El anfitrión que estás pidiendo. En la actualidad, la mayoría de los servidores web son compatibles con los parámetros
Host: something
, de modo que un solo servidor web puede manejar múltiples dominios en una interfaz y dirección IP. Claramente, este encabezado está cifrado, sin embargo, si ejecuta tráfico no https al sitio, debe estar claro a qué hosts puede conectarse. Incluso si ese no es el caso, el DNS inverso le dirá lo que está alojado en esa IP y probablemente pueda hacer una estimación razonable desde allí.
- La información de su navegador / cliente. Desafortunadamente, cada cliente https es diferente y su proceso de negociación podría revelar la plataforma en la que se ejecuta o el navegador. Este no es el fin del mundo de ninguna manera, es solo un hecho para entender.
Las solicitudes POST son similares a las solicitudes de obtención, excepto que contienen un cuerpo. Esto puede verse así:
POST /testpost HTTP/1.1
Host: subdomain.test.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
param1=hello¶m2=hello
Hay algunas variantes más complicadas, por supuesto, pero esencialmente todo está encriptado de todos modos.