Por que esse comando curl do firefox não baixa nada?

8

Abri https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rstno Firefox e copiei o seguinte comando curl de Ferramentas-> Desenvolvedor Web-> Rede:

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst' -H 'Host: raw.githubusercontent.com' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-GB,en;q=0.5' --compressed -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'If-None-Match: "6931c3b4d0e94743bb93a36ed8e8c3f5add12f9a"' -H 'Cache-Control: max-age=0' 

Quando o executo no lxterminal, ele não baixa nada, mesmo que eu o adicione -O. Fiquei me perguntando por que ele não é baixado e como posso fazer o download do arquivo?

Obrigado.

Tim
fonte
2
Você deve estar ciente de que o comando curl que você obtém do Firefox pode conter cookies de sessão e que pode ser usado para se passar por você. De qualquer forma, este é seguro porque os cookies do github são dissociados do servidor de ativos.
Jules Lamur
Obrigado. Eu queria saber o que "personificar" e "os cookies do github são dissociados do servidor de ativos" significam.
Tim
1
Eu quis dizer que se você enviar um comando curl para alguém, ele poderá usar sua sessão (por exemplo, conta github) como se fosse você.
Jules Lamur
2
Não enviar o conteúdo dos comandos para ninguém (ou redigir cookies dos comandos).
Jules Lamur
1
@Tim Cookies, mas como Jules Lamur disse, seu exemplo não é vulnerável, pois o GitHub não requer sua sessão para raw.githubusercontent.com. De qualquer forma, isso não é necessariamente restrito aos cookies de outros sites. Eles podem optar por usar outros cabeçalhos para informações confidenciais.
JoL

Respostas:

26

Ao depurar curlproblemas, a -vopção geralmente é útil. Nesse caso específico, você está com problemas no If-None-Matchcabeçalho, que informa ao servidor que você já possui o arquivo correspondente a "6931c3b4d0e94743bb93a36ed8e8c3f5add12f9a" e que não está interessado em recuperá-lo novamente, se ele não tiver sido alterado. -vmostra isso indicando que o servidor responde com um cabeçalho 304:

< HTTP/1.1 304 Not Modified

Para baixar seu arquivo, solte o cabeçalho:

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst' -H 'Host: raw.githubusercontent.com' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-GB,en;q=0.5' --compressed -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Cache-Control: max-age=0'

Nesse caso em particular, você obterá o mesmo resultado com

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst'
Stephen Kitt
fonte