HTTP简单协议
HTTP用于客户端和服务器端之间的通信
请求资源一端成为客户端,提供相应资源的一端叫做服务器端
通过请求和响应的交换达成通信
HTTP协议规定请求从客户端发出,服务器响应该请求并返回。

请求报文是由请求方法,请求uri和协议版本,还有可选的请求首部字段,和内容实体组成的

响应报文由 协议版本,状态码,状态原因,和可选的首部字段还有请求的实体主体构成
HTTP是不保存状态协议
HTTP协议不对请求和响应之间的通信状态进行保存,也就是说在HTTP这个级别里,协议对于发送过的请求和相应都不做持久化处理。HTTP也因此而变得十分简单,但是不能满足持久化的需求,所以,后面我们将引入coolie来解决这个问题。
请求URI定位资源

如果不是为了请求资源而发起请求,而只是为了访问服务器,可以用*代替URI
告知服务器意图的HTTP方法

get 请求资源的方法

post 传输主体实体的方法

put 传输文件的方法

和ftp一样,要在报文的主体包含上传的内容,存放到指定的URI那里
但是鉴于http1.1不具有验证机制,任何人都可以上传文件存在安全性问题,一般不使用。除非配合web程序的验证机制或者采用REST(REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法
head 获得报文首部的方法

和get差不多,但是不返回内容实体主体,只是返回响应的首部
delete : 删除文件的方法

和put相反,把URI内容删除,同样也是谁都可以删除的,一般不使用
options: 询问支持的方法
对应前面的不需要URI的请求方法

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

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


例子
持久连接节省通信量
由于TCP协议的特性,发送一次就建立一次连接和断开一次连接,所以当一个页面发起多次请求的时候,会增加许多通信开销

所以我们要做到持久化连接

持久连接的特点是,只要任意一端 没有明确提出断开连接,则保持 TCP 连接状态。在HTTP1.1中,所有的连接默认都是持久连接,
管线化
从前都是等前一个请求得到响应后才开始发下一个请求,使用管线化技术后则不用等响应就可以把请求全部发完,加快了传输速率。

使用 Cookie 的状态管理
对应前面提到的状态持久化,由于HTTP是无状态协议,所以我们引入了cookie技术。
cookie技术通过在请求和响应报文中写入cookie信息来控制客户端的状态

cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息来通知客户端保存cookie,下一次发送的时候在请求报文中加入cookie一起发过去

服务器发现cookie之后,会检查是哪一个客户端发过来的,然后对比在服务器上的记录,找到之前的状态信息
