目的

  1. 理解各种 http 请求方法的安全性、幂等性、可缓存性
  2. 掌握各种 http 请求方法的语义,判断什么时候时候用那种请求方法更合适
  3. 理解一些 http 请求方法之间的区别

总结

描述 是否安全 是否幂等 是否可缓存
GET 请求资源,获取数据
POST 发送资源 当响应中包含「新鲜度」信息时可以被缓存
PUT 创建/更新资源 同 post
DELETE 删除资源
HEAD 获取响应头,应该和 get 请求的响应头相同
OPTIONS 获取服务器支持的通信选项,比如说请求方法、请求头
CONNECT 创建一个隧道,客户端和服务器的双向通道
TRACE debug 连通性,服务器收到之后,应该修改 content-type 之后原样返回。
PATCH 修改部分资源

安全:请求不会对资源造成影响
幂等:对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。
可缓存:请求结果会被客户端缓存

get 和 post 的区别

  1. 语义不同
  2. get 是幂等的,post 不是
  3. post 会有一个 content-type 的请求头,表明请求体的 MIME 类型,而 get 没有
  4. post 更安全。因为 post 的请求是放在请求体中,而 get 请求是拼接在 url 中
  5. get 请求传递的数据会有限制,但是 post 没有
  6. get 请求的请求结果可以被缓存,而 post 的不可以,或很少有

    put 和 post 的区别

  7. 语义不同

  8. put 是幂等的,post 不是
  9. put 不能有响应 body ,但是 post 可以有

参考

MDN:http 请求方法