HTTP图解读书笔记(第二章 简单的HTTP协议)

一、HTTP协议用于客户端和服务端的通信

二、通过请求和响应的交换完成通信

请求报文由请求方法、请求URL、协议版本、可选的请求首部字段和内容实体组成

响应报文放由协议版本、状态码、用于解释状态码原因的短语、可选的响应首部字段和实体主体组成

三、HTTP协议是不保存状态的协议

使用 HTTP 协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。

无状态导致一些问题,比如:不能保存登录状态。为了实现期望的保存状态的功能,引入了cookie

四、请求URI定位资源

HTTP 协议使用 URI 定位互联网上的资源。正是因为 URI 的特定功能,在互联网上任意位置的资源都能访问到。

五、告知服务器意图的HTTP方法

GET:获取资源

 POST:传输实体主体

虽然用get方法也可以传输实体主体,但一般不用get方法传输。post的主要目的不是获取响应的主体内容

PUT:传输文件

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

HEAD:获得报文首部

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

DELETE:删除文件

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

OPTIONS:询问支持的方法

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

TRACE:追踪路径

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

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

六、持久连接节省通信量

HTTP初始版本中每次没进行一次HTTP通信就要断开一次TCP连接,但是如果每次请求一个HTML页面时还要请求页面中的图片等资源,这样就要多次的TCP连接和断开,增加通信的开销。为了解决这个问题,引入持久连接(HTTP keep-alive)。

持久性连接:一次TCP连接可以进行多次的请求和响应

管线化:持久连接使管线化成为可能。以前发送请求后需要收到响应后才能发起下一个请求,管线化可以不等收到响应就继续发送下一个请求。

七、使用cookie的状态管理

Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

 

猜你喜欢

转载自blog.csdn.net/qq_37200686/article/details/85002079