La forma más directa de obtener una respuesta HTTPS sin procesar y sin analizar

39

¿Cuál sería la forma más directa de hacer una solicitud GET a una url a través de HTTPS y obtener la respuesta sin analizar y sin analizar?

¿Se podría lograr esto con el rizo? Si es así, ¿qué opciones necesitaría usar?

Bellota
fuente

Respuestas:

51

Si desea usar curl, esto debería funcionar:

curl -D - https://www.google.com/

Tenga en cuenta, sin embargo, que esta no es exactamente la respuesta en bruto. Por ejemplo, la codificación de transferencia fragmentada no será visible en la respuesta. Usando --rawresuelve esto, también el modo detallado ( -v) también es útil y -imuestra los encabezados antes del cuerpo de respuesta:

curl -iv --raw https://www.google.com/

Si desea utilizar un localizador como menos en el resultado, también es necesario deshabilitar la barra de progreso ( -s):

curl -ivs --raw https://www.google.com/ | less

Dependiendo de lo que quiera hacer, esto puede o no ser un problema.

Lo que obtienes son todos los encabezados de respuesta HTTP y el documento en la URL solicitada.

Mika Fischer
fuente
13

Aquí hay una manera simple que viene a la mente

echo 'GET / HTTP/1.1
Host: google.com

' | openssl s_client -quiet -connect google.com:443 2>/dev/null
Patricio
fuente
en cuenta que algunos servidores (por ejemplo github.com) sólo funcionan conHTTP/1.0
Steven Penny
4

No lo es curl, pero debería estar disponible en casi todos los Unices:

wget -S --spider https://encrypted.site

Si los mensajes de estado te molestan:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  /'

Si desea terminaciones de línea CRLF:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'
Chris Down
fuente
¿Sabes si esto preservaría los \r\ncaracteres en la respuesta?
Bellota
@Acorn: en primer lugar, no todos los servidores web responderán con \r\nun final de línea. No creo que esto lo conserve en ningún caso, pero si eso te importa, agregaré una forma de obtener ese resultado en la respuesta.
Chris Down
1
$ GET -e https://www.google.com

En Debian / Ubuntu, las distribuciones pertenecen al paquete lwp-request.

funollet
fuente