在我们上网的过程中,一个访问请求是如何工作的。
Web的框架:
网络的连接都是基于Socket
在连接中有TCP/UDP 和HTTP协议
HTTP协议是:无状态,短连接。(HTTP协议的访问状态是发送请求连接一次,返回请求结果数据一次,就断开连接)
TCP:不断开,安全,不丢包,慢
UDP:易丢包,快
Web的工作流程:
浏览器端(Socket客户端)
2:域名或DNS正反解析出的IP,在浏览器中输入。
2.1在Socket端创建Socket对象
Socket.Socket()
2.2再创建连接
Scoket.connect((IP,端口))
2.3再发送连接请求
Socket.send("发送的连接请求数据")
5:接收响应的数据
6:连接断开,完成一次HTTP请求
网站服务端(Socket服务端)
1:监听自己的网站的公网IP或域名,while循环监听
while True:
用户等待用户连接
3:收到用户的连接请求(Socket.send("发送的数据"))
4:响应用户的连接,给用户返回响应数据,用户断开连接,等待下一个用户的连接请求。
1 import Socket 2 3 Socket = socket.socket() 4 #创建Socket对象 5 6 Socket.send(("ip",port)) 7 #绑定IP和端口 8 9 Socket.listen(5) 10 #监听的 11 12 while True: 13 conn, addr = socket.accept() 14 #在这hold住,等待用户发送的请求,有人来连接,获取用户的发送数据 15 16 data = conn.recv(8096) 17 #获取数据 18 19 conn.send(b‘HTTP/1.1 200 OK \r\n\r\n‘) 20 #响应头 21 22 conn.send(b‘123‘) 23 #响应的返回数据,响应体 24 25 conn.close() 26 #断开连接