Java 为什么我们需要RestFul中的GET和POST方法,而GET也可以作为POST

Java 为什么我们需要RestFul中的GET和POST方法,而GET也可以作为POST,java,rest,Java,Rest,我知道这是一个基本问题,但我找不到答案。我的问题是,当我们甚至可以从GET方法插入数据时,为什么我们需要restful中的POST方法。如果有任何使POST与GET不同的特定功能 谢谢。使用HTTP协议提供的标准方法来处理Restful web服务请求是一种很好的做法: 获取数据 发布以更新记录 插入记录 删除以删除记录 按照这个惯例,一个人很容易理解一个他不知道的图书馆 只是想知道我是否需要得到所有的公司 GET /companies 检索可由1识别的特定公司 GET /companie

我知道这是一个基本问题,但我找不到答案。我的问题是,当我们甚至可以从GET方法插入数据时,为什么我们需要restful中的POST方法。如果有任何使POST与GET不同的特定功能


谢谢。

使用HTTP协议提供的标准方法来处理Restful web服务请求是一种很好的做法:

  • 获取数据
  • 发布以更新记录
  • 插入记录
  • 删除以删除记录
按照这个惯例,一个人很容易理解一个他不知道的图书馆

只是想知道我是否需要得到所有的公司

GET /companies
检索可由1识别的特定公司

GET /companies/1
POST /companies/1
要创建新公司,请执行以下操作:

PUT /companies
更新可由1识别的公司

GET /companies/1
POST /companies/1
删除由1标识的公司

DELETE /companies/1
扩展这个概念,检索公司的所有家属1

GET /companies/1/dependents
检索公司的所有发票

GET /companies/1/invoices
等等

如您所见,如果您知道自己喜欢做什么,那么可以轻松地重新创建所有URL以获取、修改、创建和删除数据。没有必要遵循这个约定,但是如果您正在创建一个可以从公司外部使用的web服务,那么这是一个好主意,因为为所有人定义一个标准非常重要



此外,GET方法可以缓存,并且现有的基础设施(代理、防火墙)很容易做到这一点。

使用HTTP协议提供的标准方法来处理web服务Restful的请求是一个很好的做法:

  • 获取数据
  • 发布以更新记录
  • 插入记录
  • 删除以删除记录
按照这个惯例,一个人很容易理解一个他不知道的图书馆

只是想知道我是否需要得到所有的公司

GET /companies
检索可由1识别的特定公司

GET /companies/1
POST /companies/1
要创建新公司,请执行以下操作:

PUT /companies
更新可由1识别的公司

GET /companies/1
POST /companies/1
删除由1标识的公司

DELETE /companies/1
扩展这个概念,检索公司的所有家属1

GET /companies/1/dependents
检索公司的所有发票

GET /companies/1/invoices
等等

如您所见,如果您知道自己喜欢做什么,那么可以轻松地重新创建所有URL以获取、修改、创建和删除数据。没有必要遵循这个约定,但是如果您正在创建一个可以从公司外部使用的web服务,那么这是一个好主意,因为为所有人定义一个标准非常重要



此外,GET方法可以缓存,现有的基础设施(代理、防火墙)很容易做到这一点。

它们是不同的方法,具有不同的用途和规格

关于GET请求的一些其他说明:

  • GET请求可以缓存
  • 获取请求保留在浏览器历史记录中
  • GET请求可以添加书签
  • 处理敏感数据时,绝不应使用GET请求
  • GET请求有长度限制
  • GET请求应仅用于检索数据
关于POST请求的一些其他说明:

  • POST请求从不缓存
  • POST请求不会保留在浏览器历史记录中
  • 无法将POST请求添加书签
  • POST请求对数据长度没有限制

应该适当地使用它们。有关使用和规格的更多信息,请参见。

它们是不同的方法,具有不同的用途和规格

关于GET请求的一些其他说明:

  • GET请求可以缓存
  • 获取请求保留在浏览器历史记录中
  • GET请求可以添加书签
  • 处理敏感数据时,绝不应使用GET请求
  • GET请求有长度限制
  • GET请求应仅用于检索数据
关于POST请求的一些其他说明:

  • POST请求从不缓存
  • POST请求不会保留在浏览器历史记录中
  • 无法将POST请求添加书签
  • POST请求对数据长度没有限制

应该适当地使用它们。有关用法和规范的更多信息,.

“我们甚至可以从GET方法插入数据”。。。无法使用GET插入任何数据。GET只是读取数据。1)在POST中,数据在正文中,理论上可以有无限大小,而GET在URL查询中有参数,并且有几个URL大小限制-从浏览器、防火墙、路由器、服务器等。2)POST被定义为更改某些内容,而GET不应更改服务器上的任何内容。因此,浏览器在导航或重试时会自由地重新发送GET请求,但在即将重新发送帖子时会警告用户,以防止他们购买两次。同样,由于同样的原因,POST结果不会被缓存。我想你想知道PUT和POST之间的区别。如果我的假设是正确的,请看。@SauravKumarMehta如果我错了,很抱歉,但我们可以在GET方法中编写业务逻辑,通过该方法我们可以插入数据。对不起,请纠正我的错误wrong@suresh:请看。根据HHTP标准,我们不应该试图使用GET修改服务器上的任何内容。“我们甚至可以从GET方法插入数据”。。。无法使用GET插入任何数据。GET只是读取数据。1)在POST中,数据在正文中,理论上可以有无限大小,而GET在URL查询中有参数,并且有几个URL大小限制-从浏览器、防火墙、路由器、服务器等。2)POST被定义为更改某些内容,而GET不应更改服务器上的任何内容。因此,浏览器在导航或ret时可以自由地重新发送GET请求