手写web框架--了解web运行机制。

发布时间 2023-04-30 16:45:04作者: 山雨欲來風滿楼

第一步--写一个服务端

import socket

server = socket.socket()  # 默认就是TCP协议

server.bind(('127.0.0.1', 8080))
server.listen(5)

while True:
    conn, addr = server.accept()  # 三次四次挥手
    data = conn.recv(1024)  # 接收消息
    print(data)
    conn.send(b'hello world!')
    conn.close()

运行这个服务端。
用浏览器发送请求。

遇到问题,浏览器说,ERR_INVALID_HTTP_RESPONSE 响应无效。

第二步,解决第一步遇到问题。--响应无效

分析是

  • 因为浏览器是有自己的规范的,没有安装人家的规范来。
  • 人家的规范叫HTTP协议。
    解决是
conn.send(b'HTTP/1.1 200 OK \r\n\r\nhello world!!')
# 按照HTTP协议来

查看结果:

现在一切OK,可恶的产品经理有新的需求
说要根据不同的url访问不同的页面。
比如:
访问127.0.0.1:8080/login访问一个登录的页面
访问127.0.0.1:8080 访问一个首页

如何解决“ta”的需求?

第三步--解决第二步新的需求--根据路由访问不同的页面

分析:
试了一下,通过浏览器访问不同的url地址。
服务端拿到的数据是不有变化的。

所以,我们看看能否利用字符串切割出想要的reg和login
解决:
先解码,再切割。

参考资料:https://www.cnblogs.com/Dominic-Ji/articles/16294929.html