美文网首页
http请求知识

http请求知识

作者: next_discover | 来源:发表于2020-04-19 23:13 被阅读0次

    HTTP 请求报文

    HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成,如下图所示:

    HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成

    常用的 HTTP 请求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;

    请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
      ● User-Agent:产生请求的浏览器类型;
      ● Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ / ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;
      ● Accept-Language:客户端可接受的自然语言;
      ● Accept-Encoding:客户端可接受的编码压缩格式;
      ● Accept-Charset:可接受的应答的字符集;
      ● Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;
      ● connection:连接方式(close 或 keepalive);
      ● Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;

    空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头;

    请求包体:请求包体不在 GET 方法中使用,而是在POST 方法中使用。POST 方法适用于需要客户填写表单的场合。与请求包体相关的最常使用的是包体类型 Content-Type 和包体长度 Content-Length;

    HTTP 响应报文由状态行、响应头部、空行 和 响应包体 4 个部分组成,如下图所示:

    image.png

    ● 状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类如下所示:

    1xx:表示服务器已接收了客户端请求,客户端可继续发送请求;

    2xx:表示服务器已成功接收到请求并进行处理;

    3xx:表示服务器要求客户端重定向;

    4xx:表示客户端的请求有非法内容;

    5xx:表示服务器未能正常处理客户端的请求而出现意外错误;

    HTTP 工作原理
      HTTP 协议采用请求/响应模型。客户端向服务器发送一个请求报文,服务器以一个状态作为响应。
      以下是 HTTP 请求/响应的步骤:
      ● 客户端连接到web服务器:HTTP 客户端与web服务器建立一个 TCP 连接;
      ● 客户端向服务器发起 HTTP 请求:通过已建立的TCP 连接,客户端向服务器发送一个请求报文;
      ● 服务器接收 HTTP 请求并返回 HTTP 响应:服务器解析请求,定位请求资源,服务器将资源副本写到 TCP 连接,由客户端读取;
      ● 释放 TCP 连接:若connection 模式为close,则服务器主动关闭TCP 连接,客户端被动关闭连接,释放TCP 连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
      ● 客户端浏览器解析HTML内容:客户端将服务器响应的 html 文本解析并显示;

    HTTP1.0 使用的是非持久连接,每次都是一个tcp链接

    HTTP/1.1 协议的持久连接有两种方式:tcp复用
      ● 非流水线方式:客户在收到前一个响应后才能发出下一个请求;
      ● 流水线方式:客户在收到 HTTP 的响应报文之前就能接着发送新的请求报文;

    相关文章

      网友评论

          本文标题:http请求知识

          本文链接:https://www.haomeiwen.com/subject/qjkpbhtx.html