关于HTTP协议:

1. 浏览器往服务端发的叫 请求(request)
            请求的消息格式:
                请求方法 路径 HTTP/1.1\r\n
                k1:v1\r\n
                k2:v2\r\n
                \r\n
                请求数据                
        2. 服务端往浏览器发的叫 响应(response)
            响应的消息格式:
                HTTP/1.1 状态码 状态描述符\r\n
                k1:v1\r\n
                k2:v2\r\n
                \r\n
                响应正文   <-- html的内容

HTTP请求响应步骤:

  1. 客户端连接到web服务器
  2. 发送http请求
  3. 服务器接收请求并返回http响应
  4. 释放tcp连接
  5. 客户端浏览器解析html内容
  • 一个HTTP客户端,与web服务器的http端口建立一个TCP套接字连接
  • 通过套接字,客户端向web服务器发送一个文本的请求报文,一个请求报文由请求头部、空行和请求数据4部分组成
  • web服务器解析请求,定位请求资源。服务器将资源副本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行就鞥相应数据4部分组成。
  • 若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection模式为keeplive,则该链接会保持一段时间,该请求可以继续接受请求。
  • 客户端浏览器首先解析状态行,查看表明请求是否成功的状态码。然后解析每一个响应头,响应头告知一下为若干字节的HTML文档和文档的字符集。客户端浏览器读物相应数据的html,根据html语法对其进行格式化,并在浏览器庄口中显示。

Python web框架的本质:

a. 收发socket消息    --> 按照HTTP协议消息格式去解析消息
    b. 路径和要执行的函数的对应关系   --> 主要的业务逻辑
    c. 字符串替换                     --> 模板(特殊符号 --> 数据)

一个完整得请求流程:

  1. 启动服务端,等待客户端(用户的浏览器)来连接
  2. 在浏览器地址栏输入URL,与服务端建立连接,浏览器发送请求
  3. 服务端收到请求消息,解析请求消息,根据路径和函数的对应关系,找到将要执行的函数
  4. 执行函数,打开HTML文件,进行字符串替换,得到一个最终要返回的HTML内容
  5. 按照HTTP协议的消息格式要求,把HTML内容回复给用户浏览器(发送响应)
  6. 浏览器收到响应的消息之后,按照HTML的规则渲染页面.
  7. 关闭连接


标题:一个完整的请求流程
作者:cuijianzhe
地址:https://cjzshilong.cn/articles/2020/05/18/1589792456894.html

搭讪 你就破功了,老弟!
取消