HTTP请求响应格式

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

posted @ 2019-09-03 14:20  杨灏  阅读(577)  评论(0编辑  收藏  举报