Java restfulget vs Post

Java restfulget vs Post,java,web-services,rest,post,get,Java,Web Services,Rest,Post,Get,我知道restfulget操作是用于检索信息的。Restful Post用于创建/插入没有唯一标识符的资源 但是有人问我“Restful与Restful POST相比有什么优势?在服务器端功能方面有什么优势?”在服务器端功能方面没有任何区别,你自己也没有。无论请求是GET还是POST,在HttpServletRequest对象到达您的时候,它都只是HttpServletRequest对象上的一段数据。您可以完全不同地处理它们,或者使用完全相同的代码。在服务器端功能上没有您自己没有的区别。无论请求

我知道restfulget操作是用于检索信息的。Restful Post用于创建/插入没有唯一标识符的资源


但是有人问我“Restful与Restful POST相比有什么优势?在服务器端功能方面有什么优势?”

在服务器端功能方面没有任何区别,你自己也没有。无论请求是GET还是POST,在HttpServletRequest对象到达您的时候,它都只是HttpServletRequest对象上的一段数据。您可以完全不同地处理它们,或者使用完全相同的代码。

在服务器端功能上没有您自己没有的区别。无论请求是GET还是POST,在HttpServletRequest对象到达您的时候,它都只是HttpServletRequest对象上的一段数据。您可以完全不同地处理它们,或者使用完全相同的代码。

我认为“它们”想要的答案,至少是我会尝试的答案,是GET是幂等的(不更改服务器),可以缓存以获得速度和巨大的可伸缩性。在服务器上处理大量GET(相对)比较容易。帖子在服务器上创建内容,因此它会更改内容,无法“缓存”,工作量更大,更难扩展。诸如此类……

我认为“他们”想要的答案,至少是我会尝试的答案,是GET是幂等的(不改变服务器),可以缓存以获得速度和巨大的可扩展性。在服务器上处理大量GET(相对)比较容易。帖子在服务器上创建内容,因此它会更改内容,无法“缓存”,工作量更大,更难扩展。废话废话…

您可以使用GET或POST做任何您想做的事情。如果您偏离了HTTP标准,那么您将不得不向您的消费者解释这一点,并且您已经完全破坏了REST原则。一个例子是网站使用GET删除资源。然后,当谷歌开始抓取网站时,它声明删除资源。GET应该是幂等的,因此如果服务创建者遵循HTTP规范,就不会发生这种情况。

您可以使用GET或POST执行任何您想要的操作。如果您偏离了HTTP标准,那么您将不得不向您的消费者解释这一点,并且您已经完全破坏了REST原则。一个例子是网站使用GET删除资源。然后,当谷歌开始抓取网站时,它声明删除资源。GET应该是幂等的,所以如果服务创建者遵循HTTP规范,就不会发生这种情况。

这已经被问了很多次了,一个例子。Marvin-你给出的链接没有准确地解决我的问题。我不是在问Http,到这里来。Restful Get不一定显示在浏览器的url上。我强调了“服务器端功能”-请重新阅读。@Rose A GET是一个GET。你如何使用REST或其他方式来“设计”它,并不会改变它在引擎盖下的风格。服务器端功能取决于许多因素,特别是处理请求所使用的流程。你没有提到你是如何接收或处理这些请求的。这已经被问了很多次了,例如。Marvin-你给出的链接并没有准确地解决我的问题。我不是在问Http,到这里来。Restful Get不一定显示在浏览器的url上。我强调了“服务器端功能”-请重新阅读。@Rose A GET是一个GET。你如何使用REST或其他方式来“设计”它,并不会改变它在引擎盖下的风格。服务器端功能取决于许多因素,特别是处理请求所使用的流程。您没有提到如何接收或处理请求。虽然您可以按照自己的方式编写任何代码,但HTTP规范明确规定GET不能有副作用。这些是客户端、代理服务器和服务器之间共享的语义。限制自己仅从服务器端实现的角度来考虑请求在网络协议中是没有意义的。我同意你的观点,这不是我对OP ASQUEST中所述问题的解释:)虽然你可以按照自己想要的方式编写任何代码,但HTTP规范明确规定GET不能有副作用。这些是客户端、代理服务器和服务器之间共享的语义。限制自己仅从服务器端实现的角度来考虑请求在网络协议中是没有意义的。我同意你的观点,这不是我对OP提问所述问题的解释:)我同意。Get是幂等的。Post可能会对每次调用进行服务器端更改。这个“幂等性”是我们的实现所赋予的吗?这意味着,如果我编写一个GET方法,将x改为x++并保存它,它就不再是幂等的了,对吗?那么,仅仅是RESTful规范建议这样做吗?或者web框架/libs是否给出了使请求幂等的东西?@Rose:GET或POST请求中没有任何固有的东西使其幂等。GET/POST只是尝试对请求进行分类并允许服务器应用程序基于该分类启用附加功能的动词;例如,处理表单字段。考虑到这一点,幂等性完全来自于实现。根据一般惯例和推荐的最佳实践,GET请求不应修改数据。如果您遵循此约定/实践,那么GET请求将满足幂等的要求,因此有资格进行缓存。我同意。Get是幂等的。Post可能会对每次调用进行服务器端更改。这个“幂等性”是我们的实现所赋予的吗?这意味着,如果我编写一个GET方法,将x改为x++并保存它,它就不再是幂等的了,对吗?那么,仅仅是RESTful规范建议这样做吗?或者web框架/libs是否给出了使请求幂等的东西?@Rose:GET或POST请求中没有任何固有的东西使其幂等。GET/POST只是try和c的动词