《HTTP权威指南》笔记:第三章-HTTP报文

2021-11-13  本文已影响0人  前端艾希

一、报文的组成部分

HTTP报文是简单的格式化数据块,由三部分组成:起始行(start line),首部(header),包含数据的主体(body)。

1.1 报文语法

所有的HTTP报文都可以分为两类:请求报文(request message)和响应报文(response message)。

这是请求报文的格式:

<method> <request-url> <version>
<headers>

<entity-body>

这是响应报文的格式:

<version> <status> <reason-phrase>
<headers>

<entity-body>

1.2 起始行

所有的HTTP报文都以一个起始行作为开始。请求报文的起始行说明了要做些什么,响应报文的起始行则说明发生了什么。

1.3 首部

HTTP首部字段向请求和响应报文中添加了一些附加信息,本质上说,它们只是一些key:value的列表。

1.3.1 首部分类

HTTP首部可以分为以下几类:

1.3.2 首部延续行

长的首部可以分为多行提高可读性,多出来的每行至少有一个空格或者制表符,例如:

// 长首部
Server:Test Server Version 1.0

// 首部延续行
Server:Test Server
    Version 1.0

1.4 实体

实体的主体是HTTP报文的载荷,也就是HTTP要传输的内容,实体是可选的。

HTTP报文可以承载很多类型的数据:图片,视频,HTML文档,Javascript脚本,电子邮件等。

二、方法

并不是每个服务器都实现了所有规范中的方法

2.1 安全方法

HTTP规范定义了gethead为安全方法,这意味着gethead不会在服务器产生动作。

2.2 HEAD

head方法只返回资源首部,使用head可以:

2.3 PUT

put方法的语义就是:让服务器用请求的主体部分创建一个用请求主体部分创建一个由所请求的URL命名的新文档,如果已经存在,那么替换。

2.4 TRACHE

trace方法允许客户端在最终将请求发送到服务器时,看看它变成什么样子了。该方法一般用来验证请求是否按照预期穿过了某些代理。trace请求不能携带实体。

2.4 OPTIONS

options方法可以询问服务器支持哪些功能,或者可以询问针对特定资源所支持的功能。

2.5 DELETE

delete方法就是请求服务器删除请求URL所指定的资源,当然,服务器不一定会这么做,因为HTTP规范允许服务器在不告知客户端的情况下撤销请求。

三、状态码

状态码为客户端提供了一种理解事物处理结果的便捷方式。

3.1 100 ~ 199 信息性状态码

下面是HTTP/1.1已定义的信息性状态码:

100 continue的目的是希望客户端在向服务器发送实体时先询问服务器是否接受这个实体,即客户端需要发送一个携带100 continueexpect首部,这个首部一般用在要传送大文件时,并且客户端不应该一直等待服务器返回100 continue后才发送实体,超过一定时间后,客户端应该直接发送实体。

3.2 200 ~ 299 成功状态码

下面列出了已定义的成功状态码:

3.3 300 ~ 399 重定向状态码

重定向状态码要么时告知客户端使用替代位置来访问他们所感兴趣的资源(重定向),要么就提供一个替代的响应而不是资源的内容(缓存)。

其中302303307都是临时重定向,造成这种结果的原因是HTTP/1.1兼容HTTP/1.0。因为HTTP/1.0希望客户端收到302后,如果原请求是post那么新的请求将被改为getHTTP/1.1则用303307分别实现了修改请求方法和不修改请求方法的功能,而将302保留给HTTP/1.0以保证兼容性。

3.4 400 ~ 499 客户端错误状态码

已定义客户端错误状态码:

3.5 500 ~ 599 服务器错误状态码

已定义的服务器错误状态码:

四、首部

4.1 通用首部

4.2 请求首部

服务器可以根据请求首部给出的客户端信息为客户端提供更好的响应。

4.2.1 Accept首部

accept首部告诉服务器客户端想要什么和不想要什么,服务器需要根据客户端的要求发送符合要求的内容。

4.2.2 条件请求首部

为请求加限制,服务端可以根据限制条件满足与否发送不同的内容。

4.2.3 安全请求首部

4.2.4 代理请求首部

4.3 响应首部

4.3.1 协商首部

4.3.2 安全响应首部

4.4 实体首部

4.4.1 信息性首部

4.4.2 内容首部

4.4.3 实体缓存首部

参考文献

[1]《HTTP权威指南》

上一篇 下一篇

猜你喜欢

热点阅读