![](https://csdnimg.cn/release/download_crawler_static/86427754/bg1.jpg)
发送请求来获得服务器上的资源,请求体中不会包含请求数据,请求数据放在 URI 中。另外
get 支持缓存、可保留书签等。幂等
向服务器提交资源让服务器处理,比如提交表单、上传文件等,可能导致建立新的资源或者
对原有资源的修改。提交的资源放在请求体中。不支持缓存。非幂等
请求和 get 类似,但是响应中没有呈现数据,而是 http 的头信息,主要用来检查资源或超链
接的有效性或是否可达、检查网页是否被篡改或更新,获取头信息等,特别适用在有限的速
度和带宽下。
和 post 类似,发送资源给服务器,并存储在服务器指定位置,要求客户端事先知道该位置;
比如 post 是在一个集合上(/province),而 put 是具体某一个资源上(/province/123)。所以
put 是安全的,无论请求多少次,都是在 123 上更改,而 post 可能请求几次创建了几次资
源。幂等
HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。就是把服务器作为跳板,去
访问其他网页然后把数据返回回来,连接成功后,就可以正常的 get、post 了。
获取 http 服务器支持的 http 请求方法,允许客户端查看服务器的性能,比如 ajax 跨域时的
预检等。
回显服务器收到的请求,主要用于测试或诊断。一般会被服务器禁用,防止被恶意攻击或盗
取信息。
PATCH 方法出现的较晚。PATCH 请求与 PUT 请求类似,同样用于资源的更新。二者有以下
两点不同:1.PATCH 一般用于资源的部分更新,而 PUT 一般用于资源的整体更新。2.当资源
不存在时,PATCH 会创建一个新的资源,而 PUT 只会对已在资源进行更新。
这是 HTTP 最早大规模使用的版,现已过时。在这个版本中 只有 GET 一种请求方法,在 HTTP
通讯也没有指定版本号,也不支持请求头信息。该版本不支持 POST 等方法,因此客户端向
服务器传递信息的能力非常有限。HTTP/0.9 的请求只有如下一行:
GET www.atstudy.com
这个版本是第一个在 HTTP 通讯中指定版本号的协议版本,HTTP/1.0 至今仍被广泛采用,特
别是在代理服务器中。
HTTP/1.0 支持:GET、POST、HEAD 三种 HTTP 请求方法。
HTTP/1.1 是当前正在使用的版本。该版本默认采用持久连接,并能很好地配合代理服务器工
作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
HTTP/1.1 新增了:OPTIONS、PUT、DELETE、TRACE、CONNECT 五种 HTTP 请求方法。
这个是正在普及推广的版本,于 2015 年 5 月作为 HTTP 标准正式发布。HTTP/2 通过支持请
求与相应的多路重用来减少延迟,通过压缩 HTTP 头字段将协议开销降到最低,同时增加了
对请求优先级和服务器端推送的支持。
主要是底层传输协议的改进。离工程实践的普及还很遥远。