HTTP权威指南------1.3HTTP报文

HTTP权威指南------HTTP报文
摘要由CSDN通过智能技术生成


HTTP报文是在HTTP应用程序之间发送的数据块,数据块以一些文本形式的信息(元信息)为开头,用于描述报文的内容与含义,(元信息是描述信息的信息)。

报文流

使用流入与流出来描述报文在客户端,服务器,代理之间的流动,用上游与下游来描述对应的流动方向。
流入表示报文由客户端向服务器流动,也就是相应的请求报文,流出是服务器向客户端的报文流动,也就是响应报文。

对应的流入时,客户端是在上游,服务器在下游,流出时服务器在上游,客户端在下游,报文的流向永远是上游向下游游动。

报文组成

报文是简单的格式化数据块,其要么是客户端发出的请求,要么就是服务器发出的响应,具体由起始行,首部块,主体三个部分组成。
在这里插入图片描述
起始行,首部块都是按行的ASCII码,每行都以’回车’加’换行’作为结束,而主体部分是一个可选的数据块,其内容可以是二进制数据也可以是文本数据,也可以为空,Content-Type定义其内容的类型,Content-Length定义了主体的大小。

起始行

起始行作为开始,请求报文的起始行说明了要做的内容,响应报文的起始行说明了发生了什么。

  • 版本号: HTTP(1.0)之后要求起始行中包含HTTP版本号,在起始行中用空格进行分割;其说明了通信方应用中协议的能力,便于相关特性的兼容使用(旧版本许多新特性无法使用)。

请求报文

  • 请求行: 请求报文的起始行,包含方法名,请求URL,都是用空格进行分割。
  • 方法: 也就是一些请求命令的定义,常用的有:

    有些方法需要有报文主体,有些方法不需要。

响应报文

  • 响应行: 响应报文的起始行,包含状态信息,有一个状态码,还有一个描述状态的原因短语,也是用空格进行分割。
  • 状态码: 使用三位数字来对不同的相应状态进行表示,对应于一个原因短语共同表示状态,根据编码可以得到如下分类:

    超出已定义范围的状态码则以整体范围的分类进行识别。
  • 原因短语: 为状态码提供文本解释,是状态码的可读版本,与状态码对应成对出现。
首部行

由多个首部字段组成,每一个首部字段都是一个键值对,对应的在请求或者响应报文中添加附加信息,首部可以分为以下几类,通用首部(请求报文与响应报文中都有的),请求首部(提供请求的附加信息),响应首部(提供响应的附加信息),实体首部(用于描述报文实体中子源的附加信息),扩展首部(额外扩展的首部信息)。为了保证可读性,会将首部行中的多个字段每个字段单独作为一行。

报文主体

主要承载要传输的数据,类型有很多种,可以是文本信息,也可以是二进制信息。

方法

基本的HTTP协议只要实现GET与HEAD方法就可以了,此外HTTP定义了一组安全的方法,这些方法在服务器上的运行不会引起不安全的事件,相应的在用户使用时就可以得到程序的安全提示,告知你使用的方法可能对服务器的影响。

GET

用于向服务器请求某个资源,服务器收到该方法后会根据请求发送相应的资源。

HEAD

HEAD方法相比较于GET方法,只是要求服务器在响应时只返回首部,不用返回实际的报文主体数据,通过对于首部的检测可以在未获取资源之前先对资源的状况进行一个了解,同时也可以先测试一下资源的请求状况。

PUT

GET是获取资源,PUT则是上传资源,通过报文中请求主体部分与URL来在服务器中创建一个与URL路径对应的文件,如果路径所在处已经有重名文件了就覆盖该文件;显然这一操作对于服务器的安全是不利的,所以使用的过程中需要进行认证与授权等方式来限制。

POST

用于向服务器发送数据,其与HTML中的表单对应,数据发给服务器后,服务器会根据相应的路径与主体中的内容,交由相应的程序处理(比如对数据库的查询等)。

图中是交由网关程序处理。

TRACE

当请求路径中有多个中间结点时,每个结点都可能会对请求报文进行修改,使用TRACE方法请求方就可以查看最终到服务时请求报文的内容,查看中间结点对于报文的修改情况。
其实现过程时在服务器接收报文后,会发送一个反馈响应,在报文主体中放入其收到的来自上一结点的原始请求报文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值