如何自己手动搭建一个HTPP服务器
HTTP服务器是基于TCP的socket连接。
1.创建一个socket连接的服务器
import socket
# 创建一个socket连接
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 给服务器绑定ip地址和端口号
server_socket.bind(('192.168.31.199', 9090))
# 摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。
server_socket.listen(128)
2.接收客户端的访问
# 接收到的数据是一个元祖,元组里有两个元素。
# 拆包分别接收
# 第0个元素是 客户端的socket连接
# 第1个元素是客户端的ip地址和端口号
client_socket, client_addr = server_socket.accept()
# 从客户端的socket里获取数据
data = client_socket.recv(1024).decode('utf-8')
print(f'接收到来自{client_addr[0]}的数据{data}')
# 返回内容之前需要设置HTTP响应头
# 每设置一个响应头就要换一行 \n
client_socket.send('HTTP/1.1 200 OK \n'.encode('utf-8'))
client_socket.send('content-type:text/html\n'.encode('utf8'))
# 所有的响应头设置完毕之后,在换行
client_socket.send('\n'.encode('UTF-8'))
# 最后发送内容
client_socket.send('hello'.encode('utf-8'))