HTTP消息是什么

HTTP消息是什么

一、HTTP报文是什么

HTTP报文,又称为HTTP消息,是服务器和客户端之间交换数据的方式。有两种类型的消息︰请求,由客户端发送用来触发一个服务器上的动作;响应,来自服务器的应答。
HTTP消息由采用ASCI编码的多行文本构成。在HTTP/1:1及早期版本中,这些消息通过连接公开地
发送。在HTTP/2中,为了优化和性能方面的改进,曾经可人工阅读的消息被分到多个HTTP帧中。

  1. HTTP请求报文

    请求报文由以下元素组成:一个HTTP的method、要获取的资源的路径、HTTP协议版本号、为服务端表达其他信息的可选头部headers以及对于一些像POST这样的方法。

    dPyL9K.jpg

  2. HTTP响应报文

    响应报文由以下元素组成:HTTP协议版本号、一个状态码、一个状态信息、HTTP headers以及包含获取的资源body。dPyO1O.jpg

二、HTTP消息结构

HTTP请求消息和响应消息具有相似的结构,由以下部分组成︰

  1. start line:一行起始行用于描迹要执行的请求,或者是对应的状态,成功或失败。这个起始行总是单行的。
  2. **HTTP headers:**一个可选的HTTP头集合指明请求或描迹消息正文。
  3. empty line:一个空行指示所有关于请求的元数据已经发送完毕。
  4. body:一个可选的包含请求相关数据的正文(比如HTML表单内容),或者响应相关的文档。正文的大小有起始行的HTTP头来指定。

起始行和HTTP消息中的HTTP头统称为“请求头”,而其有效负载被称为“消息正文”。

1.请求消息与响应消息

**HTTP请求消息:**由客户端发送用来触发一个服务器上的动作。

HTTP响应消息:来自服务器的应答。

dPc9r4.jpg

三、请求消息

1.起始行

起始行(start-line)包含三个元素:

  1. 请求方法:描述要执行的动作。例如GET表示要获取资源,POST表示向服务器推送数据。

  2. 请求地址:通常是一个URL,或者是协议、端和域名的绝对路径。

  3. HTTP版本:定义了剩余报文的结构,作为对期望的响应版本的指示符。
    GET/home.htmlHTTP/1.1

2.请求方法

​ HTTP协议定义了一组请求方法,以表明要对给定资源执行的操作,指示针对 给定资源要执行的期望动作。

请求方法描述
GETGET方法请求一个指定资源的表示形式。使用GET的请求应该只被用于获取数据
HEADHEAD方法请求一个与GET请求的响应相同的响应,但没有响应体
POSTPOST方法用于将实体提交到指定的资源,通常导致状态或服务器上的副作用的更改
PUTPUT方法用请求有效载荷替换目标资源的所有当前表示
DELETEDELETE方法删除指定的资原
CONNECTCONNECT方法建立一个到由目标资源标识的服务器的隧道
OPTIONSOPTIONS方法用于描述目标资源的通信选项
TRACETRACE方法沿着到目标资原的路径执行一个消息环回测试
PATCHPATCH方法用于对资源应用部分修改
3.请求头

请求头允许客户端向服务器端传递附加信息。请求头由名称(不区分大小写)后跟一个冒号“”,冒号后跟具体的值(不带换行符)组成。

根据不同上下文,可将请求头分为:

  • 通用头:同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。

  • 请求头:包含更多有关要获取的资源或客户端本身信息的消息头。

  • 实体头:包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。

    dZTTUA.jpg

    dZH3Yn.jpg

4.请求主体

​ 请求消息的最后一部分是请求主体。

  • ​ 不是所有的请求都需要请求主体:例如获取资源的请求GET、HEAD、DELETE和 OPTIONS,通常它们不需要请求主体。
  • ​ 有些请求将数据发送到服务器以便更新数据:常见的的情况是POST请求(包含 HTML_表单数据)。

​ 请求主体大致可分为两类:

  1. 单一资源主体:由一个单文件组成。该类型请求主体由两个header :Content- Type和Content-Lengtho

  2. 多资源主体:由多部分请求主体组成,每一部分包含不同的信息位。通常是和HTML表单连系在
    一起。

四、响应消息

1.状态行

HTTP响应消息的起始行被称作状态行(status line),包含以下信息:

  1. 协议版本:通常为HTTP/1.1。
  2. 状态码:表明请求是成功或失败。常见的状态码是200,404,或302。
  3. 状态文本:一个简短的,纯粹的信息,通过状态码的文本描迹,帮助人们理解该HTTP消息。
    HTTP/1.1.200 oK
2.响应消息分类
  • ​ 信息响应

  • ​ 成功响应

  • ​ 重定向

  • ​ 客户端响应

  • ​ 服务端响应

    1. 成功响应dePnd1.jpg

    2. 重定向

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7TIo6yq-1599029628339)(https://s1.ax1x.com/2020/08/17/dePmZR.jpg)]

    3. 客户端响应

      dePVsJ.jpg

    4. 服务端响应

      dePZL9.jpg

3.响应头

响应头允许服务器端向客户端传递附加信息。响应头由名称(不区分大小写)后跟一个冒号“”,冒号后跟具体的值(不带换行符)组成。
根据不同上下文,可将响应头分为:

  1. 通用头:同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。

  2. 响应头:包含有关响应的补充信息,如其位置或服务器本身(名称和版本等)的消息头。

  3. 实体头:包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。

    deianJ.jpg
    deidB9.jpg

4.响应主体

响应消息的最后一部分是响应主体。不是所有的响应都需要响应主体:例如具有状态码(如201或204)的响应,通常不会有响应主体。
响应主体大致可分为两类:

  1. 单一资源主体:由已知长度的单个文件组成。该类型响应主体由两个header定义:Content-Type和Content- Length。
  2. 单一资源主体:由未知长度的单个文件组成,通过将Transfer-Encoding设置为chunked来使用
    chunks编码。
  3. 多资原主体:由多部分响应主体组成,每部分包含不同的信息段。但这是比较少见的。

两个header定义:Content-Type和Content- Length。
2. 单一资源主体:由未知长度的单个文件组成,通过将Transfer-Encoding设置为chunked来使用
chunks编码。
3. 多资原主体:由多部分响应主体组成,每部分包含不同的信息段。但这是比较少见的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值