如果我的浏览器试图对不在我的服务器上的文件执行 HTTP GET,我只写
HTTP/1.0 404 Not Found\r\n\r\n
到港口。在我的浏览器的 Web 控制台中,我可以看到有时错误被识别,但有时却没有。相反,文本将显示在浏览器窗口中。为什么会这样?
如果我使用 curl,响应看起来总是一样的,那么为什么它在浏览器中这样做呢?
最佳答案
似乎大多数网络浏览器都希望在所有响应中都有 Content-Length:
header 。即使您没有回复任何内容;这很有趣,因为唯一的强制 header 是 Host:
仅在请求中且仅适用于 HTTP 1.1。
我用 Firefox 进行了测试,我必须写下以下内容才能使其正常工作:
HTTP/1.0 404 Not Found\r\n
Content-Length: 0\r\n\r\n
然后浏览器应该关闭连接。如果您使用 libcurl,它可能也会插入此 header 和其他 header ,例如 Date:
。
关于html - 为什么我的浏览器有时无法识别我的服务器 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10306938/