《图解HTTP》- HTTP基础 - 学习笔记(一)

2018-08-17  本文已影响0人  One_Hund

第1章 了解Web及网络基础

第2章 简单的HTTP协议

2.2 通过请求和响应的交换达成通信

2.3 HTTP 是不保存状态的协议

2.4 请求 URI 定位资源

2.5 告知服务器意图的 HTTP 方法

GET :获取资源

GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器端解析后返回响应内容。



POST:传输实体主体

虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进 行传输,而是用 POST 方法。虽说 POST 的功能与 GET 很相似,但 POST 的主要目的并不是获取响应的主体内容。



HEAD:获得报文首部

HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。



PUT :传输文件(一般不用)

PUT 方法用来传输文件。就像 FTP 协议的文件上传一样,要求在 请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。
但是,鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。



DELETE:删除文件(一般不用)

DELETE 方法用来删除文件,是与 PUT 相反的方法。DELETE 方 法按请求 URI 删除指定的资源。
但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机 制,所以一般的 Web 网站也不使用 DELETE 方法。



OPTIONS:询问支持的方法

OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。



TRACE:追踪路径

TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的 方法。
发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个 服务器端就将该数字减 1,当数值刚好减到 0 时,就停止继续传输,最 后接收到请求的服务器端则返回状态码 200 OK 的响应。
客户端通过 TRACE 方法可以查询发送出去的请求是怎样被加工修改 / 篡改的。这是因为,请求想要连接到源目标服务器可能会通过代理 中转,TRACE 方法就是用来确认连接过程中发生的一系列操作。
但是,TRACE 方法本来就不怎么常用,再加上它容易引发 XST (Cross-Site Tracing,跨站追踪)攻击,通常就更不会用到了。



CONNECT:要求用隧道协议连接代理

CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。

CONNECT 方法的格式如下所示:



2.6 使用方法下达命令

2.7 持久连接节省通信量(HTTP/1.1 新特性)

2.7.1 持久连接
2.7.2 管线化

2.8 使用 Cookie 的状态管理

第3章 HTTP 报文内的 HTTP 信息

3.2 请求报文及响应报文的结构

3.3 编码提升传输速率

3.3.2 压缩传输的内容编码

内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接收并负责解码。


常用的内容编码有以下几种:

3.3.3 分割发送的分块传输编码

在 HTTP 通信过程中,请求的编码实体资源尚未全部传输完成之 前,浏览器无法显示请求页面。在传输大容量数据时,通过把数据分割 成多块,能够让浏览器逐步显示页面。
这种把实体主体分块的功能称为分块传输编码(Chunked Transfer Coding)。


分块传输编码会将实体主体分成多个部分(块)。每一块都会用 十六进制来标记块的大小,而实体主体的最后一块会使用“0(CR+LF)” 来标记。
使用分块传输编码的实体主体会由接收的客户端负责解码,恢复到 编码前的实体主体。
HTTP/1.1 中存在一种称为传输编码(Transfer Coding)的机制,它 可以在通信时按某种编码方式传输,但只定义作用于分块传输编码中。

3.4 发送多种数据的多部分对象集合

3.5 获取部分内容的范围请求

执行范围请求时,会用到首部字段 Range 来指定资源的 byte 范围。 byte 范围的指定形式如下。
针对范围请求,响应会返回状态码为 206 Partial Content 的响应报 文。另外,对于多重范围的范围请求,响应会在首部字段 Content-Type 标明 multipart/byteranges 后返回响应报文。
如果服务器端无法响应范围请求,则会返回状态码 200 OK 和完整 的实体内容。


image.png

3.6 内容协商返回最合适的内容

当浏览器的默认语言为英语或中文,访问相同 URI 的 Web 页面时, 则会显示对应的英语版或中文版的 Web 页面。这样的机制称为内容协 商(Content Negotiation)。



内容协商机制是指客户端和服务器端就响应的资源内容进行交涉, 然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字 符集、编码方式等作为判断的基准。
包含在请求报文中的某些首部字段(如下)就是判断的基准:

内容协商技术有以下 3 种类型:

上一篇 下一篇

猜你喜欢

热点阅读