¿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?
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 --raw
resuelve esto, también el modo detallado ( -v
) también es útil y -i
muestra 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.
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
HTTP/1.0
No lo es
curl
, pero debería estar disponible en casi todos los Unices:Si los mensajes de estado te molestan:
Si desea terminaciones de línea CRLF:
fuente
\r\n
caracteres en la respuesta?\r\n
un 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.En Debian / Ubuntu, las distribuciones pertenecen al paquete
lwp-request
.fuente