简单的HTTP协议——《图解http》第二章

2.1 HTTP协议用于客户端和服务端直接的通信
在一条通信线路上必定一端是客户端,另一端则是服务端。

2.2 通过请求和响应的交换达成通信。
HTTP协议规定,请求从客户端发出,最后服务器响应该请求并返回

请求报文的构成解读

请求报文是由请求方法请求URI请求协议版本可选的请求首部字段内容实体构成的。
image

响应报文的构成和解读

响应报文由协议版本状态码(表示请求成功或失败的数字代码)用以解释状态码的原因短语可选的响应首部字段以及实体主体构成。
image

2.3 HTTP是不保存状态的协议
协议对于发送过的请求或响应都不做持久化处理。目的是在于更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计地如此简单

新情况下遭遇到的问题:比如购物网站的业务,用户登录到一家购物网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。所以网站为了能够掌握是谁发送的请求,需要保存用户的状态

针对上面问题的解决方案:HTTP是无状态协议,但为了实现期望的保持状态功能,于是引入了cookie技术

2.4 HTTP协议使用URI定位互联网上的资源。
指定请求URI的方式

  1. URI为完整的请求URI
  2. 在首部字段Host中写明网络域名或IP地址

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

方法名 作用 说明
GET 获取资源 侧重获取
POST 传输实体主体 侧重发送
PUT 传输文件 一般不使用,存在安全性问题
HEAD 获取响应报文首部 用于确认URI的有效性及资源更新的日期等
DELETE 删除文件 一般不使用
OPTIONS 询问支持的方法 返回例如GET、POST、HEAD等
TRACE 追踪路径 一般不使用,且易引发XST(跨站追踪)攻击
CONNECT 要求用隧道协议连接代理 主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。

2.6 使用方法下达命令

2.7 持久连接节省通信量

HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。而使用浏览器浏览一个包含多张图片的HTML页面时,在发送请求访问HTML页面时也会请求该HTML页面里包含的其他资源。因此每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。

2.7.1 持久连接
HTTP/1.1中,所有的连接默认都是持久连接(除非哪一方提出断开连接否则不会断开TCP连接),但在HTTP/1.0内未标准化。

2.7.2 管线化
不用等待响应可直接发送下一个请求。比持久连接更快。

2.8 使用Cookie的状态管理
image

原文地址:https://www.cnblogs.com/foxNike/p/6337282.html