HTTP 定义了一组请求方法, 以表明要对给定资源执行的操作。指示针对给定资源要执行的期望动作。
1. 主要请求方法:
- GET
- GET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.
- HEAD
- 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
- POST
- 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
- PUT
- 从客户端向服务器传送的数据取代指定的文档的内容。
- DELETE
- 请求服务器删除指定的页面。
- CONNECT
- HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
- OPTIONS
- 允许客户端查看服务器的性能。
- TRACE
- 回显服务器收到的请求,主要用于测试或诊断。
- PATCH
- 是对 PUT 方法的补充,用来对已知资源进行局部更新 。
2. 请求方法的特性
- 安全(safe)
- 如果说一个 HTTP 方法是安全的,是指这是个不会修改服务器的数据的方法。也就是说,这是一个对服务器只读操作的方法。这些方法是安全的:
GET
,HEAD
和OPTIONS
。所有安全的方法都是幂等的,有些不安全的方法如PUT
和DELETE
则不是。 - 安全的方法并不意味着只是对服务端的静态文件的请求,服务端可以在请求的时候即时生成资源返回,只要生成资源的脚本保证是安全的即可:也就是说生成资源的时候没有额外的影响。就像在一个电商网站添加删除购物车里的物品一样。
- 幂等( idempotent)
- 一个HTTP方法是幂等的,指的是同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的。换句话说就是,幂等方法不应该具有副作用(统计用途除外)。在正确实现的条件下,
GET
,HEAD
,PUT
和DELETE
等方法都是幂等的,而POST
方法不是。所有的 safe 方法也都是幂等的。 - 幂等性只与后端服务器的实际状态有关,而每一次请求接收到的状态码不一定相同。例如,第一次调用
DELETE
方法有可能返回200
,但是后续的请求可能会返回404
。
- 可缓存(cacheable)
- 可缓存的响应是可以缓存的HTTP响应,将其存储以供以后检索和使用,从而将新请求保存到服务器。
- 可缓存的状态码:200、203、204、206、300、301、404、405、410、414和501。
- 对URI的某些不可缓存的请求/响应可能会使同一URI上先前缓存的响应无效。例如,对pageX.html的PUT请求将使对同一URI的所有缓存的GET或HEAD请求无效。
- 响应中的Cache-Control设置可以防止缓存。
欢迎关注交流~