HTTP 是一种不保存状态的协议,即无状态(stateless)协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。
使用方法下达命令:
1)GET:获取资源。用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回相应内容。
2)POST:传输实体主体。
3)PUT:传输文件。像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。由于自身不带验证机制,任何人都可以上传文件,存在安全性问题,一般Web网站不使用该方法。
4)HEAD:获得报文首部,跟GET方法一样,但是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间等。
5)DELETE:删除文件。与PUT相反的方法,按请求URI删除指定的资源。但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机制,所以一般的 Web 网站也不使用 DELETE 方法。
6)OPTIONS:询问支持的方法。用来查询针对请求URI指定的资源支持的方法。
7)TRACE:追踪路径,让Web服务端将之前的请求通信环回给客户端。发送请求时,在 MaxForwards 首部字段中填入数值,每经过一个服务器端就将该数字减 1,当数值刚好减到 0 时,就停止继续传输,最后接收到请求的服务器端则返回状态码 200 OK 的响应,通过 TRACE 方法可以查询发送出去的请求是怎样被加工修改 / 篡改的。但是,TRACE 方法本来就不怎么常用,再加上它容易引发 XST(Cross-Site Tracing,跨站追踪)攻击,通常就更不会用到了。
8)CONNECT:要求用隧道协议连接代理。要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
持久连接节省通信量:
1)持久连接:在建立1次TCP连接后进行多次请求和响应的交互。
2)管线化:不等待响应,直接发送下一个请求,做到同时并行发送多个请求。