四种最常用的请求方法
请求方法一共有八种,但是最常用的只有四种:
- GET
- HEAD
- POST
- PUT
GET
最最最常用的的请求方法,它的含义是请求从服务器获取资源。
HEAD
HEAD 方法与 GET 方法类似,也是请求从服务器获取资源,服务器的处理机制也是一样的,但服务器不会返回请求的实体数据,只会传回响应头。
POST
POST 向 URI 指定的资源提交数据,数据就放在报文的 body 里。
POST 也是一个经常用到的请求方法,使用频率应该是仅次于 GET,应用的场景也非常多,只要向服务器发送数据,用的大多数都是 POST。
PUT
PUT 的作用与 POST 类似,也是向服务器提交数据,但与 POST 存在微妙的不同,通常 POST 表示的是“新建”“create”的含义,而 PUT 则是“修改”“update”的含义。
在实际应用中,PUT 用到的比较少。而且,因为它与 POST 的语义、功能太过近似,有的服务器甚至就直接禁止使用 PUT 方法,只用 POST 方法上传数据。
安全与幂等
面试中经常考察请求方法的的安全和幂等问题。
安全指的是请求方法不会破坏服务器上的资源。这样来看,GET 和 HEAD 是安全的,POST、PUT 和 DELETE 是不安全的。
幂等的意思是多次执行相同的操作,结果不变。
GET 和 HEAD 既是安全的也是幂等的;DELETE 可以多次删除同一个资源,效果都是“资源不存在”,所以也是幂等的;POST 多次提交数据会创建多个资源,所以不是幂等的;而 PUT 是“替换或更新数据”,多次更新一个资源,资源还是更新的状态,所以是幂等的。
总结
- 最常用的请求方法是 GET 和 POST,分别是获取数据和发送数据;
- HEAD 方法是轻量级的 GET,用来获取资源的元信息,也就是只获取头而没有实体;
- PUT 多用于更新数据,而 POST 是新增数据;