我知道这是一个基本问题,但我无法找到答案。我的问题是,当我们甚至可以从GET方法插入数据时,为什么我们需要在restful中使用POST方法。如果有任何特定功能使POST与GET不同。
感谢。
答案 0 :(得分:2)
最好使用HTTP协议提供的标准方法来处理Web服务的请求Restful:
按照这个惯例,一个人很容易理解他不知道的图书馆。
只是想知道我是否需要让所有公司
GET /companies
检索可通过1
识别的特定公司GET /companies/1
创建新公司:
PUT /companies
更新可识别的公司1
POST /companies/1
删除由1
标识的公司DELETE /companies/1
并扩展这个概念,以检索公司的所有家属1
GET /companies/1/dependents
检索公司的所有发票
GET /companies/1/invoices
等等。
正如您所知,如果您知道自己喜欢做什么,则可以轻松地重新创建所有网址以获取,修改,创建和删除数据。没有必要遵循这个惯例,但特别是如果您正在创建一个可以从公司外部使用的Web服务,那么为所有人定义标准非常重要。
此外,可以缓存GET方法,现有的基础架构(代理,防火墙)很容易实现。
答案 1 :(得分:1)
它们是不同的方法,具有不同的目的和规范。
关于GET请求的其他一些说明:
- 可以缓存GET请求
- GET请求保留在浏览器历史记录中
- GET请求可以加入书签
- 处理敏感数据时绝不应使用GET请求
- GET请求有长度限制
- GET请求只应用于检索数据
有关POST请求的其他一些说明:
- POST请求永远不会被缓存
- POST请求不会保留在浏览器历史记录中
- POST请求无法加入书签
- POST请求对数据长度没有限制
应该适当使用它们。有关使用和规范的更多信息,look here。