Ich versuche, eine Datei mit wget
und herunterzuladen curl
und sie wird mit einem 403-Fehler abgelehnt (verboten).
Ich kann die Datei mit dem Webbrowser auf demselben Computer anzeigen.
Ich versuche es erneut mit dem User Agent meines Browsers, der von http://www.whatsmyuseragent.com bezogen wird . Ich mache das:
wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
und
curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
aber es ist immer noch verboten. Welche anderen Gründe könnte es für den 403 geben, und wie kann ich die Befehle wget
und ändern curl
, um sie zu überwinden?
(Hier geht es nicht darum, die Datei abrufen zu können. Ich weiß, dass ich sie einfach in meinem Browser speichern kann. Es geht darum, zu verstehen, warum die Befehlszeilentools anders funktionieren.)
aktualisieren
Vielen Dank an alle hervorragenden Antworten auf diese Frage. Das spezifische Problem, auf das ich gestoßen war, war, dass der Server den Referrer überprüfte. Indem ich dies zur Kommandozeile hinzufüge, könnte ich die Datei mit curl
und erhalten wget
.
Der Server, der den Referrer überprüft hat, ist über einen 302 an einen anderen Standort gestoßen, an dem überhaupt keine Überprüfungen durchgeführt wurden, sodass ein curl
oder wget
dieser Standort ordnungsgemäß funktioniert hat.
Wenn jemand interessiert ist, ist dies darauf zurückzuführen, dass ich diese Seite gelesen habe, um etwas über eingebettetes CSS zu erfahren, und versucht habe, das CSS der Site als Beispiel zu betrachten. Die eigentliche URL, mit der ich Probleme hatte, war diese und die curl
, mit der ich gelandet bin, ist
curl -L -H 'Referer: http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
und der wget ist
wget --referer='http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
Sehr interessant.