码迷,mamicode.com
首页 > 编程语言 > 详细

问题解决:python3 socket服务端发送html文件,火狐浏览器打开,源码以文本形式显示

时间:2018-10-30 17:21:47      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:lis   color   open   其他   read   html文本   src   源码   防止   

浏览器请求,然后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 <h1 style="color: aquamarine">hello,huangjin</h1>

在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()

问题解决:python3 socket服务端发送html文件,火狐浏览器打开,源码以文本形式显示

标签:lis   color   open   其他   read   html文本   src   源码   防止   

原文地址:https://www.cnblogs.com/sumday/p/9876940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!