1

如果我的浏览器尝试对不在我服务器上的文件执行 HTTP GET,我只写

未找到 HTTP/1.0 404\r\n\r\n

到港口。在浏览器的 Web 控制台中,我可以看到有时会识别出错误,但有时却不会。相反,文本将显示在浏览器窗口中。为什么会这样?

如果我使用 curl 响应总是一样的,那么为什么它在浏览器中这样做呢?

4

1 回答 1

1

似乎大多数网络浏览器都期望Content-Length:所有响应中的标头。即使您没有回复任何内容;这很有趣,因为唯一的强制性标头Host:仅在请求中且仅适用于 HTTP 1.1。

我用 Firefox 进行了测试,我必须写下以下内容才能使其工作:

HTTP/1.0 404 Not Found\r\n
Content-Length: 0\r\n\r\n

然后浏览器应该关闭连接。如果您使用 libcurl,它可能也会插入此标头和其他标头,Date:例如。

于 2012-04-24T22:42:27.560 回答