From 5e2e470f20bb66b4d2fcc29072ef7e4f0294b34f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 5 Jun 2024 10:52:29 +0200 Subject: [PATCH] cmdline-opts/fail.md: expand and clarify Closes #13890 --- docs/cmdline-opts/fail.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/cmdline-opts/fail.md b/docs/cmdline-opts/fail.md index 8591e330db..0c8db1367b 100644 --- a/docs/cmdline-opts/fail.md +++ b/docs/cmdline-opts/fail.md @@ -18,11 +18,17 @@ Example: # `--fail` -Fail fast with no output at all on server errors. This is useful to enable -scripts and users to better deal with failed attempts. In normal cases when an -HTTP server fails to deliver a document, it returns an HTML document stating -so (which often also describes why and more). This command line option -prevents curl from outputting that and return error 22. +Fail with error code 22 and with no response body output at all for HTTP +transfers returning HTTP response codes at 400 or greater. + +In normal cases when an HTTP server fails to deliver a document, it returns a +body of text stating so (which often also describes why and more) and a 4xx +HTTP response code. This command line option prevents curl from outputting +that data and instead returns error 22 early. By default, curl does not +consider HTTP response codes to indicate failure. + +To get both the error code and also save the content, use --fail-with-body +instead. This method is not fail-safe and there are occasions where non-successful response codes slip through, especially when authentication is involved -- 2.47.3