Laut curl-Handbuch gelten HTTP-Fehlerstatus standardmäßig nicht als Übertragungsfehler. Ein Skript kann deshalb eine Fehlerseite empfangen und den Transfer trotzdem als erfolgreich behandeln. Dieses Review bewertet dokumentiertes Verhalten, keinen Zuverlässigkeitsbenchmark und keine konkret getestete API.

Für HTTP liefert --fail bei Statuscodes ab 400 den Fehlercode 22 und unterdrückt den Antwortinhalt. Das Handbuch warnt vor Ausnahmen, besonders bei Authentifizierung mit 401 oder 407. Eine Anwendung sollte daher zusätzlich den erwarteten Status und den Inhalt prüfen.

Als Alternative behält --fail-with-body den Antwortinhalt bei und meldet dennoch einen Fehler. Die Option lässt sich nicht mit --fail kombinieren und wurde in curl 7.76.0 eingeführt. Prüfe die installierte Version vor Änderungen. Bewahre Diagnoseantworten getrennt von Dateien auf, die nachgelagerte Aufgaben als gültiges Ergebnis verwenden.

Fazit: Die Optionen helfen nur, wenn das aufrufende Skript Fehler behandelt. Bei mehreren Transfers reagiert --fail-early auf frühe Transferfehler, aktiviert aber nicht selbst die HTTP-Statusprüfung. Schreibe zunächst in eine temporäre Zieldatei, prüfe Rückgabestatus und erwarteten Inhalt und übernimm erst dann das Ergebnis. Eine gefüllte Datei beweist keinen gültigen Download.