欢迎指正。
今天看到GET/POST/PUT,就想了解下这些的区别。HTTP方法有这几种:GET,POST,PUT和DELETE。
HTTP方法
GET
获取信息。GET请求必须是安全且幂等的,这意味着无论使用相同参数重复多少次,结果都是一样的。对于网上说的,GET请求有长度限制,其实,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。对GET的URL长度限制的是浏览器,这里的限制是URL,而不是参数的限制。
POST
请求URL中的资源对提供的实体执行某些操作。POST通常用于创建或者更新实体。POST把提交的数据则放置在是HTTP包的包体中。
PUT
将实体存储在URL中。PUT更新现有的实体,或者新增指定的资源(如果id不存在,新增一个含id资源)。PUT请求是幂等的。幂等性是PUT期望与POST请求之间的主要区别。
DELETE
请求移除资源; 但是,资源不必立即删除。它可能是一个异步或长时间运行的请求。
GET和POST
post和get的安全性在传输的层面上区别不大,但是采用url提交数据的get方式容易被人肉眼看到,或者出现在历史纪录里,还是可能被肉眼看到,都是一些本地的问题。
HTTP status codes
查看spring官网,可以看到这些状态码。
- 1XX:informational
- 2XX:success:成功信息
- 3XX:redirection:重定向问题
- 4XX:client error:客户端问题
- 5XX:server error:服务端问题