HTTP協議對收發消息的格式要求
每個HTTP請求和響應都遵循相同的格式,一個HTTP包含Header和Body兩部分,其中Body是可選的。
HTTP響應的Header中有一個Content-Type表明響應的內容格式。它的值如text/html; charset=utf-8。
text/html則表示是網頁,charset=utf-8則表示編碼為utf-8。
http get請求方式

b'GET / HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
'
http 響應格式

按照上面的格式給我們的socket加上響應狀態。響應頭部是可選進行編寫的,這里我就不寫了
#!/usr/bin/env python # -*- coding: utf-8 -*- import socket sk = socket.socket() sk.bind(('127.0.0.1',80)) sk.listen() while True: conn,addr = sk.accept() data = conn.recv(1024) print(data) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') conn.send(b'OK') conn.close() sk.close()
如果傳的是中文你就需要在響應頭部寫上content-type:text/html; charset=utf-8
