Mengapa perintah ikal ini dari firefox tidak mengunduh apa pun?

8

Saya membuka https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rstdi Firefox, dan menyalin perintah ikal berikut dari 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' 

Ketika saya menjalankannya di lxterminal, itu tidak mengunduh apa-apa, bahkan jika saya menambahkannya -O. Saya bertanya-tanya mengapa tidak mengunduh, dan bagaimana saya bisa membuatnya mengunduh file?

Terima kasih.

Tim
sumber
2
Anda harus menyadari bahwa perintah ikal yang Anda dapatkan dari Firefox mungkin berisi cookie sesi dan dapat digunakan untuk menyamar sebagai Anda. Bagaimanapun, ini aman karena cookie github dipisahkan dari server aset.
Jules Lamur
Terima kasih. Saya bertanya-tanya apa yang dimaksud dengan "peniruan" dan "cookie github dipisahkan dari server aset".
Tim
1
Maksud saya jika Anda mengirim perintah curl ke seseorang, mereka dapat menggunakan sesi Anda (mis. Akun github) seolah-olah mereka adalah Anda.
Jules Lamur
2
Untuk tidak mengirim konten perintah kepada siapa pun (atau mengurangi cookie dari perintah).
Jules Lamur
1
@Tim Cookies header, tetapi seperti yang dikatakan Jules Lamur, contoh Anda tidak rentan karena GitHub tidak memerlukan sesi Anda untuk raw.githubusercontent.com. Bagaimanapun, ini tidak selalu terbatas pada Cookie untuk situs lain. Mereka mungkin memilih untuk menggunakan tajuk lain untuk info sensitif.
JoL

Jawaban:

26

Saat men-debug curlmasalah, -vopsi ini sering membantu. Dalam contoh khusus ini, Anda menjalankan bertabrakan dengan If-None-Matchheader, yang memberi tahu server bahwa Anda sudah memiliki file yang cocok dengan "6931c3b4d0e94743bb93a36ed8e8c3f5add12f9a" dan bahwa Anda tidak tertarik mengambilnya lagi jika belum diubah. -vmenunjukkan ini kepada Anda dengan menunjukkan bahwa server merespons dengan tajuk 304:

< HTTP/1.1 304 Not Modified

Untuk mengunduh file Anda, jatuhkan tajuk:

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'

Dalam contoh khusus ini Anda akan mendapatkan hasil yang sama dengan

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