HTTP 响应代码 403,但原因是 "OK"
HTTP Response Code 403, but reason is "OK"
我正在尝试使用 wget 下载文件。
我的命令如下所示:
wget https://example.com/feeder/example.xml
这是控制台中的输出:
德语:
--2020-12-12 18:07:47-- https://example.com/feeder/example.xml
Auflösen des Hostnamens example.com (example.com) … 100.100.100.100 (Some ip)
Verbindungsaufbau zu example.com (example.com)|100.100.100.100|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 403 OK
2020-12-12 18:07:47 FEHLER 403: OK.
英语:
--2020-12-12 18:07:47-- https://example.com/feeder/example.xml
Resolving the hostname example.com (example.com) ... 100.100.100.100 (Some ip)
Connecting to example.com (example.com)|100.100.100|:443 ... connected.
HTTP request sent, waiting for response ... 403 OK
2020-12-12 18:07:47 ERROR 403: OK.
如果响应代码是 403,我希望出现“禁止”之类的错误,但我得到的却是“确定”。
HTTP 响应只需要符合标准的特定(数字)代码。任何附带的文本(称为“原因短语”)仅供人类使用,无论出于何种原因,与您通话的服务器决定不发送与代码含义实际匹配的文本。
(参见 RFC 7231 的第 6.1 节)
来自the spec
6.1.1 Status Code and Reason Phrase
The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. These codes are fully defined in section 10. The Reason-Phrase is intended to give a short textual description of the Status-Code. The Status-Code is intended for use by automata and the Reason-Phrase is intended for the human user. The client is not required to examine or display the Reason- Phrase.
最后一句最有说服力;根本不应该依赖(程序化的,并且推断为人类)依赖原因短语 accuracy/spelling/language/text 。鉴于服务器可以被编码为发送任何东西,它发送 OK 表示服务器中的错误但不是有问题的错误(在“你接受什么”的意义上) - 你应该忽略它,或者报告它作为服务器代码维护者的错误,如果您能够确定它是什么服务器并且它是当前的未知问题
我正在尝试使用 wget 下载文件。
我的命令如下所示:
wget https://example.com/feeder/example.xml
这是控制台中的输出:
德语:
--2020-12-12 18:07:47-- https://example.com/feeder/example.xml
Auflösen des Hostnamens example.com (example.com) … 100.100.100.100 (Some ip)
Verbindungsaufbau zu example.com (example.com)|100.100.100.100|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 403 OK
2020-12-12 18:07:47 FEHLER 403: OK.
英语:
--2020-12-12 18:07:47-- https://example.com/feeder/example.xml
Resolving the hostname example.com (example.com) ... 100.100.100.100 (Some ip)
Connecting to example.com (example.com)|100.100.100|:443 ... connected.
HTTP request sent, waiting for response ... 403 OK
2020-12-12 18:07:47 ERROR 403: OK.
如果响应代码是 403,我希望出现“禁止”之类的错误,但我得到的却是“确定”。
HTTP 响应只需要符合标准的特定(数字)代码。任何附带的文本(称为“原因短语”)仅供人类使用,无论出于何种原因,与您通话的服务器决定不发送与代码含义实际匹配的文本。
(参见 RFC 7231 的第 6.1 节)
来自the spec
6.1.1 Status Code and Reason Phrase
The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. These codes are fully defined in section 10. The Reason-Phrase is intended to give a short textual description of the Status-Code. The Status-Code is intended for use by automata and the Reason-Phrase is intended for the human user. The client is not required to examine or display the Reason- Phrase.
最后一句最有说服力;根本不应该依赖(程序化的,并且推断为人类)依赖原因短语 accuracy/spelling/language/text 。鉴于服务器可以被编码为发送任何东西,它发送 OK 表示服务器中的错误但不是有问题的错误(在“你接受什么”的意义上) - 你应该忽略它,或者报告它作为服务器代码维护者的错误,如果您能够确定它是什么服务器并且它是当前的未知问题