博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
问题解决:python3 socket服务端发送html文件,火狐浏览器打开,源码以文本形式显示...
阅读量:5747 次
发布时间:2019-06-18

本文共 1100 字,大约阅读时间需要 3 分钟。

浏览器请求,然后socket服务端通过open方法打开一个html文本,并发送给浏览器,代码如下:

1 import socket 2  3  4 def custom_html(): 5  6     sk = socket.socket() 7     sk.bind(('127.0.0.1', 8008)) 8     sk.listen(3) 9 10     while True:11         con, add = sk.accept()12         data = con.recv(1024)13         print(data.decode('utf8'))14         with open('hello.html', 'rb') as f:15             html_data = f.read()16         con.sendall(html_data)17         con.close()18 19 20 if __name__ == '__main__':21     custom_html()

html代码如下:

1 

hello,huangjin

在edge浏览器下,输入127.0.0.1:8008,回车,可以正常访问:

 

但在火狐浏览器上面显示如下:

以文本的形式展现了出来,这显然并不是我要的东西,研究后发现少了一行代码:

1 con.sendall(bytes('HTTP/1.1 201 OK\r\n\r\n', 'utf8'))

更改后的代码为:

1     while True:2         con, add = sk.accept()3         data = con.recv(1024)4         print(data.decode('utf8'))5         with open('hello.html', 'rb') as f:6             html_data = f.read()7         con.sendall(bytes('HTTP/1.1 201 OK\r\n\r\n', 'utf8'))8         con.sendall(html_data)9         con.close()

这样火狐浏览器就可以正常访问,为了防止在其他浏览器上面也会出现这样的问题,这句代码最好不要省略

  : custom_html()

转载于:https://www.cnblogs.com/sumday/p/9876940.html

你可能感兴趣的文章
HybridDB实例新购指南
查看>>
C语言及程序设计提高例程-35 使用指针操作二维数组
查看>>
华大基因BGI Online的云计算实践
查看>>
深入理解自定义Annotation,实现ButterKnif小原理
查看>>
排序高级之交换排序_冒泡排序
查看>>
Cocos2d-x3.2 Ease加速度
查看>>
[EntLib]关于SR.Strings的使用办法[加了下载地址]
查看>>
中小型网站架构分析及优化
查看>>
写shell的事情
查看>>
负载均衡之Haproxy配置详解(及httpd配置)
查看>>
linux虚拟机拷贝之后联网出错
查看>>
Linux文件系统探索
查看>>
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
shell高级视频答学生while循环问题
查看>>
使用@media实现IE hack的方法
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>