post - example - http/1.1 200 ok
Obteniendo solo el encabezado de respuesta de HTTP POST usando curl (6)
El siguiente comando muestra información adicional
curl -X POST http://httpbin.org/post -vvv > /dev/null
Puede pedir al servidor que envíe solo HEAD, en lugar de una respuesta completa
curl -X HEAD -I http://httpbin.org/
Note:
Algunos servidores web configurados / programados incorrectamente pueden responder de forma diferente a la publicación porque es una solicitud HEAD no POST. Pero funciona la mayor parte del tiempo.
Solo se pueden solicitar los encabezados utilizando HTTP HEAD, como opción -I
en curl(1)
.
$ curl -I /
Los cuerpos de respuesta HTML largos son una molestia para entrar en la línea de comandos, por lo que me gustaría obtener solo el encabezado como retroalimentación para mis solicitudes POST. Sin embargo, HEAD y POST son dos métodos diferentes.
¿Cómo consigo que curl muestre solo los encabezados de respuesta a una solicitud POST?
Las otras respuestas requieren que se descargue el cuerpo de la respuesta. Pero hay una manera de hacer una solicitud POST que solo obtendrá el encabezado:
curl -s -I -X POST http://www.google.com
Un -I
por sí solo realiza una solicitud HEAD que puede ser anulada por -X POST
para realizar una solicitud POST (o cualquier otra) y aún así solo obtener los datos del encabezado.
Mucho más fácil, esto es lo que uso para evitar el seguimiento de enlaces cortos , es lo siguiente:
curl -IL http://bit.ly/in-the-shadows
... que también sigue enlaces .
Para cuerpos de respuesta larga (y varias otras situaciones similares), la solución que utilizo es siempre canalizar a less
, por lo que
curl -i https://api.github.com/users | less
o
curl -s -D - https://api.github.com/users | less
hará el trabajo
Si bien las otras respuestas no me han funcionado en todas las situaciones, la mejor solución que pude encontrar (que también funciona con POST
), tomada desde here :
curl -vs ''https://some-site.com'' 1> /dev/null
-D, --dump-header <file>
Write the protocol headers to the specified file.
This option is handy to use when you want to store the headers
that a HTTP site sends to you. Cookies from the headers could
then be read in a second curl invocation by using the -b,
--cookie option! The -c, --cookie-jar option is however a better
way to store cookies.
y
-S, --show-error
When used with -s, --silent, it makes curl show an error message if it fails.
y
-L/--location
(HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response
code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from all requested
pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different
host, it won’t be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to
follow by using the --max-redirs option.
When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP
response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified
method.
de la página del manual. asi que
curl -sSL -D - www.acooke.org -o /dev/null
sigue las redirecciones, vuelca los encabezados a la salida estándar y envía los datos a / dev / null (eso es un GET, no un POST, pero puede hacer lo mismo con un POST; simplemente agregue cualquier opción que ya esté usando para datos de POSTing)
note la -
después de la -D
que indica que el "archivo" de salida es stdout.