【问题标题】:Browsers Not Receiving From Server浏览器未从服务器接收
【发布时间】:2013-04-15 06:51:27
【问题描述】:

我正在编写一个简单的网络服务器,现在我只是想建立一个通用的 响应以查看它是否有效。现在,它只在 Firefox 上运行,而不是 在 Chrome 或 Opera 上。以下是我收到的一些请求,最后是通用回复。回复中是否缺少一行?真的有一个通用的响应来启动和运行服务器吗?

我看到请求有“连接:保持活动”,所以我尝试让连接保持打开几秒钟,但这似乎没有帮助。我尝试将数据与响应标头分开发送,但这也无济于事。

GET / HTTP/1.1
Host: 192.168.1.128
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko)  Chrome/26.0.1410.43 Safari/537.31
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

GET / HTTP/1.1
User-Agent: Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.15
Host: 192.168.1.128
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

GET / HTTP/1.1
Host: 192.168.1.128
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive

在这里回复:

HTTP/1.0 200 OK
Date: Sun Apr 14 15:13:36 2013
Server: server_th
Content-Type: text/html
Content-Length: 40
Connection: close

<html><body><h3>Hey!</h3></body></html>

【问题讨论】:

    标签: c http network-protocols


    【解决方案1】:

    您的回复没有正文,因此您将看到一个空白页面。此外,它似乎缺少尾随 CRLF,但我不确定是否是由于复制粘贴造成的。

    检查HTTP specs

    编辑:在更新的响应中,正文长度实际上是 39,尽管它被声明为 40。可能是客户端正在等待剩余的有效负载吗?

    【讨论】:

    • 我忘记发布其余的回复了,现在就在上面
    • 主体长度是否故意小于 Content-Length(39 而不是 40)?
    • 谢谢!问题是内容长度,现在它完美运行。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多