Web服务器-HTTP相关-快速整一个服务器响应浏览器(3.2.1)
@
1.HTTP分析
当你去访问一个网址的时候,浏览器会发送而各种头信息给服务器
然后服务器根据信息,返回一定数据的格式
最简单的就是下面的代码
自己构造返回数据的时候,头信息一定放在前面
当出现空格的时候,下一行就是返回的超文本HTML
HTTP/1.1 200 OK
<!Doctype html>....
2.简单服务器
from socket import *
import sys
def main():
if len(sys.argv) != 2:
print("可以按照如下方式运行:python3 xxx.py 7890")
port = 7890
else:
# 运行方式为python3 xxx.py 7890
port = int(sys.argv[1])
# 创建socket
tcp_server_socket = socket(AF_INET, SOCK_STREAM)
# 本地信息
address = ('', port)
# 绑定本地信息
tcp_server_socket.bind(address)
# 将主动套接字变为被动套接字
tcp_server_socket.listen(128)
while True:
# 等待客户端的链接,即为这个客户端发送文件
client_socket, clientAddr = tcp_server_socket.accept()
# 接收对方发送过来的数据
recv_data = client_socket.recv(1024) # 接收1024个字节
print(recv_data)
with open(r"F:\Work\Python-Work\python学习8-7重跑\3.web服务器\http\baidu.html","rb") as e:
str_ = e.read()
client_socket.send(str_)
# 关闭监听套接字
tcp_server_socket.close()
if __name__ == "__main__":
main()
说明
创建一个socket对象,配置ip和host等
然后监听,给个循环一直监听
如果有客户访问,就把客户socket对象赋值给client_socket
通过client_socket发送响应信息
其中.html中要包含头部信息
打开浏览器访问,加载出页面说明没问题
关于作者
个人博客网站
个人GitHub地址
个人公众号: