-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.
e
-S, --show-error
When used with -s, --silent, it makes curl show an error message if it fails.
e
-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.
da página do manual. tão
curl -sSL -D - www.acooke.org -o /dev/null
segue redirecionamentos, despeja os cabeçalhos para stdout e envia os dados para / dev / null (isso é um GET, não um POST, mas você pode fazer a mesma coisa com um POST - basta adicionar qualquer opção que você já esteja usando para os dados do POST)
observe o -
depois do -D
que indica que o "arquivo" de saída é stdout.
curl -s -D - http://yahoo.com -o nul
-D
usa um argumento que diz para onde a saída deve ir. o traço único significa que ele deve ir para o stdout.As outras respostas exigem que o corpo da resposta seja baixado. Mas há uma maneira de fazer uma solicitação POST que somente buscará o cabeçalho:
Um,
-I
por si só, executa uma solicitação HEAD que pode ser substituída por-X POST
para executar uma solicitação POST (ou qualquer outra) e ainda assim obter apenas os dados do cabeçalho.fonte
GET
solicitação e não baixa o corpo inteiro da resposta (ou pelo menos não gera). A-s
bandeira não é necessária.GET
peloPOST
comando acima e ele funcionará conforme o esperado.or any other
é a chave aqui.POST
alguns dados. Curl diz:Warning: You can only select one HTTP request method! You asked for both POST Warning: (-d, --data) and HEAD (-I, --head).
-X HEAD
não há solução confiável aqui.O comando a seguir exibe informações extras
Você pode pedir ao servidor para enviar apenas HEAD, em vez de resposta completa
Note:
Em alguns casos, o servidor pode enviar cabeçalhos diferentes para postagem e HEAD. Mas em quase todos os casos, os cabeçalhos são iguais.fonte
-X, --request
corretamente,-X HEAD
ainda resulta em "uma tonelada de dados", mas existe o-I, --head
que deve resultar no que você está antecipando.-X HEAD
e-I
são exatamente equivalentes.-X HEAD
é que o servidor pode responder de forma diferente, uma vez que agora recebe umHEAD
pedido em vez de umGET
(ou qualquer que seja o pedido anterior era)Warning: Setting custom HTTP method to HEAD with -X/--request may not work the Warning: way you want. Consider using -I/--head instead.
Para corpos de resposta longos (e várias outras situações semelhantes), a solução que eu uso é sempre canalizar
less
, entãoou
fará o trabalho.
fonte
HEAD
solicitação à qual muitos servidores respondem de maneira diferente. o segundo emite umGET
pedido mais parecido com o que estamos procurando aqui.Talvez seja um pouco extremo, mas estou usando esta versão super curta:
Explicação:
-v
imprimir informações de depuração (que incluem cabeçalhos)-o.
envie dados da página da web (que queremos ignorar) para um determinado arquivo,.
neste caso, que é um diretório e é um destino inválido e faz com que a saída seja ignorada.-s
nenhuma barra de progresso, nenhuma informação de erro (caso contrário, você veriaWarning: Failed to create the file .: Is a directory
)aviso: o resultado sempre falha (em termos de código de erro, se acessível ou não). Não use, digamos, instruções condicionais em scripts de shell ...
fonte
-o.
vez de-o /dev/null
?-o.
é usado versus-o /dev/null
por brevidadecurl -svo. <url> && echo foo
não será impressofoo
porque-o.
fazercurl
retornar um código diferente de zero (= erro):curl: (23) Failed writing body
.Muito mais fácil - é o que eu uso para evitar o rastreamento de links curtos - é o seguinte:
… Que também segue os links .
fonte
Enquanto as outras respostas não funcionaram para mim em todas as situações, a melhor solução que pude encontrar (trabalhando
POST
também), tirada daqui :curl -vs 'https://some-site.com' 1> /dev/null
fonte
headcurl.cmd (versão para Windows)
-s
,-S
,-k
,-v
(trata-se de solucionar problemas, não é?),%*
significa [passar todos os parâmetros para esse script] (bem ( https://stackoverflow.com/a/980372/444255 ), normalmente esse é apenas um parâmetro: o URL que você está testandoexemplo do mundo real (na solução de problemas de proxy):
Versão Linux
para o seu
.bash_aliases
/.bash_rc
:fonte
-X POST
aos parâmetros de passagem, se quiser GET, use GET (ou seja, padrão), pois as respostas podem ser diferentes. - A menos que você faça curling pesado em scripts de produção (não para diagnóstico e desenvolvimento), não me importo com um pouco de largura de banda.