连接到我的python web时页面无限加载

2024-04-23 09:15:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个简单的httpweb服务器,但是我注意到当我连接到它时,html页面会出现在浏览器窗口中,但是chrome选项卡中的指示器继续旋转,服务器接收到空字符串。这一直持续到我单击“X”停止加载页面。有人能解释一下为什么会发生这种情况,以及如何解决这个问题。另外,如果http头是错误的或我遗漏了重要的,请告诉我。我发现很难找到关于http头和命令的信息。在

找到代码here。在

Link to image of network tab

控制台输出:

套接字已创建
绑定套接字
Socket正在收听
连接127.0.0.1:55146
连接127.0.0.1:55147接收数据:GET/HTTP/1.1
主机:本地主机
连接:保持活动状态
接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0 .8个
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如 壁虎)铬/33.0.1750.154 Safari/537.36
DNT:1
接受编码:gzip、deflate、sdch
接受语言:en-GB,en-US;q=0.8,en;q=0.6



正在分析GET命令
客户端请求的目录/索引.html使用HTTP版本1.1
html
/索引.html在

答复标题:


HTTP/1.1 200可以吗
内容类型:text/html;字符集=UTF-8
服务器:Max的Python Web服务器/1.0
缓存控制:最大年龄=600,公共


连接127.0.0.1:55148
收到的数据:
收到的数据:
收到的数据:
收到的数据:


Tags: 数据textimage命令服务器httpgetapplication
1条回答
网友
1楼 · 发布于 2024-04-23 09:15:55

你的错就在于你对插座的看法:

socket.recv将永远等待来自客户端的数据

这里不需要循环。
但是,您的请求将受到recv参数的限制。
但如果您希望允许任何尺寸请求,
您应该通过HTTP规范来检测数据的结尾。在

例如,如果您只等待标题,则双换行将意味着它们结束。
而body的大小(例如对于POST方法)应该用Content-length头来传递。在

您的问题与此问题相同:link
如果你想制作正确的HTTP服务器,可以使用googleforhttp规范。在

相关问题 更多 >