http协议定义了8种标准方法:
GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT,OPTIONS。
其中比较常用的是GET,POST,PUT,DELETE,根据restful接口风格建议:
GET 对应 获取
POST 对应 新增
PUT 对应 更新
DELETE 对应 删除
那这四种方法除语义外有什么其他区别呢?首先介绍两个概念:安全性和幂等性。如果针对一个URL的方法不改变URL所指资源的状态,就称其为安全的,显然在这四种方法里,只有GET方法是安全的。幂等性,来源于数学上的术语,即对同一操作数的多次操作与一次操作效果是一样的操作符即称幂等操作符,比如取绝对值操作符。类比到网络操作中就是指一方法对同一URL的请求,多次和一次的效果是一致的,就称该方法是幂等的,显然除POST外其他三种方法都是幂等的,总结如下表:
http方法 安全 幂等
GET 是 是
POST 否 否
PUT 否 否
DELETE 否 否
另外在具体技术实现上,这四种方法也有一些区别,比如对比get和post,get允许传输的数据比较小,且随url传输,post理论上没有数据传输上限,且随数据报文主体传输。
注意:GET,POST,PUT,DELETE是从restful的角度进行划分,但是从最终效果的角度讲POST方法是能够实现GET,PUT,DELETE方法的最终效果的。