Почему эта команда curl из firefox ничего не загружает?

8

Я открыл https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rstв Firefox и скопировал следующую команду curl из Tools-> Web Developer-> Network:

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' 

Когда я запускаю его в lxterminal, он ничего не загружает, даже если я добавлю -Oк нему. Мне было интересно, почему он не загружается, и как я могу заставить его загрузить файл?

Спасибо.

Тим
источник
2
Вы должны знать, что команда curl, которую вы получаете от Firefox, может содержать сессионные куки и что она может использоваться для олицетворения вас. В любом случае, это безопасно, потому что куки github отделены от сервера ресурсов.
Жюль Ламур
Спасибо. Мне было интересно, что означают «олицетворение» и «cookie-файлы github от сервера ресурсов».
Тим
1
Я имел в виду, что если вы отправите кому-нибудь команду curl , они смогут использовать ваш сеанс (например, учетную запись github), как если бы вы были вами.
Жюль Ламур
2
Не отправлять содержимое команд кому-либо (или редактировать файлы cookie из команд).
Жюль Ламур
1
Заголовок @Tim Cookies, но, как сказал Жюль Ламур, ваш пример не уязвим, потому что GitHub не требует вашего сеанса для raw.githubusercontent.com. В любом случае, это не обязательно ограничено Cookies для других сайтов. Они могут использовать другие заголовки для конфиденциальной информации.
JoL

Ответы:

26

При отладке curlпроблем этот -vпараметр часто бывает полезен. В этом конкретном случае вы запутались в If-None-Matchзаголовке, который сообщает серверу, что у вас уже есть файл, соответствующий «6931c3b4d0e94743bb93a36ed8e8c3f5add12f9a», и что вы не заинтересованы в том, чтобы восстановить его снова, если он не изменился. -vпоказывает это, указывая, что сервер отвечает заголовком 304:

< HTTP/1.1 304 Not Modified

Чтобы скачать файл, опустите заголовок:

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'

В этом конкретном случае вы получите тот же результат с

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst'
Стивен Китт
источник