HTTP请求头和响应头格式

请求头格式:

请求首行 请求方法 GET/POST URL 协议版本(HTTP/1.1)\r\n
请求头部 key:value \r\n
回车换行符 \r\n
请求体
(如果get请求是没有请求体的,内容在url后面以键值对格式拼接)
如果是post请求有请求体

响应头格式:

响应首行 协议版本/HTTP/1.1 状态码 200/404/500 状态码描述OK\r\n
响应头部 key:value \r\n
回车符换行符 \r\n
响应体

import  socket
'''
socket.AF_INET:基于网络
socket.SOCK_STREAM :基于TCP协议
'''
server_sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_sk.bind(('127.0.0.1',8888))
server_sk.listen(128)#最大并发数128
while True:
    #第一个参数 new_sk,表示新的socket对象,第二个参数时客户端的地址
    new_sk,addr = server_sk.accept()#等待客户端的连接
    content = new_sk.recv(1024).decode() #接受客户端内容
    print(content)#封装了一些请求头中的内容

    #给浏览器返回内容
    #先发送响应头
    new_sk.send('HTTP/1.1 200 OK\r\n'.encode())
    new_sk.send('Content-Type:text/html;charset=utf-8\r\n'.encode())
    new_sk.send('\r\n'.encode())
    new_sk.send('你好,世界'.encode())


    #new_sk.send() #给客户端发送内容
    new_sk.close()
server_sk.close()

URL:又称为统一资源定位符(Uniform Resource Locator),通过url可以找到服务器上的唯一的资源。

组成:协议 域名 端口号 路径 参数

注意参数和路径使用的是 分开;参数是以键值对格式 key=value,多个键值对之间用&连接。

猜你喜欢

转载自blog.csdn.net/weixin_44183162/article/details/87884836