从点击 URL 开始到页面呈现,中间经历的什么样的过程
DNS 解析 news.qq.com -> 125.39.52.26
-
建立 TCP 连接 (全双工)
- client -> SYN -> server
- client <- ACK + SYN <- server
- client -> ACK -> server
构造 “HTTP 请求报文”
发送数据
-
HTTP Server 接收数据报文
- 负责建立、断开网络连接
- 负责接收、发送数据
- 只负责跟网络有关的处理
WSGI 将请求报文封装成 HTTP Request 对象
-----------------------------------------------------------------> process_requestURL 映射找到 View 函数
-----------------------------------------------------------------> process_view-
执行 View
- 解析参数
- 逻辑处理 (从数据库、缓存取出数据,进行各种逻辑运算)
- 将得到的结果进行 “模版渲染”
-------------------------------------------------------------> process_template - 返回一个 HTTP Response
-----------------------------------------------------------------> process_exception
-----------------------------------------------------------------> process_response
WSGI 将 Response 对象转换成一个 “HTTP 响应报文”
HTTP Server 将报文发送到浏览器
浏览器接收数据
客户端断开连接
解析、渲染
页面呈现
WSGI: Web Server Gateway Interface
uWSGI: 一个服务器软件,内部实现了 WSGI 接口