据我所知,有三种类型:
不要使用GET和POST 不要使用POST而使用GET 你用哪一个都不重要。
我对这三种情况的假设正确吗?如果有,每个案例都有哪些例子?
据我所知,有三种类型:
不要使用GET和POST 不要使用POST而使用GET 你用哪一个都不重要。
我对这三种情况的假设正确吗?如果有,每个案例都有哪些例子?
当前回答
在短暂的
使用GET来获得安全的和无效的请求 对于既不安全也不幂等的请求使用POST
在细节 每个人都有一个合适的位置。即使您不遵循RESTful原则,通过学习REST以及面向资源的方法是如何工作的,也可以获得很多东西。
RESTful应用程序将对安全且幂等的操作使用get。
安全操作是不改变请求数据的操作。
幂等运算是一种无论你请求多少次结果都相同的运算。
有理由认为,由于get用于安全操作,它们自动也是幂等的。通常,GET用于检索资源(例如,堆栈溢出时的问题及其相关答案)或资源集合。
RESTful应用程序将使用put进行不安全但幂等的操作。
我知道这个问题是关于GET和POST的,但是我马上回到POST。
通常,PUT用于编辑资源(例如,在堆栈溢出上编辑问题或答案)。
POST可以用于任何既不安全也不幂等的操作。
通常,POST将用于创建一个新资源,例如创建一个new SO问题(尽管在某些设计中,PUT也会用于此)。
如果你运行POST两次,你最终会创建两个新的问题。
还有一个DELETE操作,但我猜我可以把它留在那里:)
讨论
实际上,现代网络浏览器通常只可靠地支持GET和POST(你可以通过javascript调用来执行所有这些操作,但是在表单中输入数据和按提交,你通常有两个选项)。在RESTful应用程序中,POST通常也会被覆盖以提供PUT和DELETE调用。
但是,即使您没有遵循RESTful原则,也可以考虑使用GET来检索/查看信息,使用POST来创建/编辑信息。
永远不要对改变数据的操作使用GET。如果搜索引擎抓取到你邪恶行动的链接,或者客户书签,这可能会带来大麻烦。
其他回答
简单版本的POST GET PUT DELETE
使用GET -当你想获得任何资源,如基于任何Id或名称的数据列表 使用POST -当你想发送任何数据到服务器。请记住POST是一个重量级操作,因为对于更新,我们应该使用PUT而不是POST POST将创建新的资源 使用PUT -当你
我的一般经验法则是,当您向服务器发出不打算改变状态的请求时使用Get。post是为更改状态的服务器请求保留的。
POST可以移动大数据,而GET不能。
但一般来说,这不是关于GET的缺点,而是一种惯例,如果你想让你的网站/web应用程序表现良好。
看看http://www.w3.org/2001/tag/doc/whenToUseGet.html
来自RFC 2616:
9.3获得 GET方法意味着检索任何信息(形式为 实体)由 要求通用。如果Request-URI引用 对于数据生成过程,它是 应返回的已生成数据 作为响应中的实体而不是 进程的源文本,除非 这个文本恰好是的输出 这个过程。
9.5 POST The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions: Annotation of existing resources; Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; Providing a block of data, such as the result of submitting a form, to a data-handling process; Extending a database through an append operation. The actual function performed by the POST method is determined by the server and is usually dependent on the Request-URI. The posted entity is subordinate to that URI in the same way that a file is subordinate to a directory containing it, a news article is subordinate to a newsgroup to which it is posted, or a record is subordinate to a database. The action performed by the POST method might not result in a resource that can be identified by a URI. In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on whether or not the response includes an entity that describes the result.
第一个重要的事情是GET和POST的含义:
GET应该用来…得到……一些来自服务器的信息, 而POST应该用来向服务器发送一些信息。
在那之后,有几件事可以注意:
使用GET,用户可以在浏览器中使用“后退”按钮,并且可以将页面添加为书签 你可以作为GET传递的参数的大小是有限制的(如果我没记错的话,某些版本的Internet Explorer是2KB);POST的限制更多,通常取决于服务器的配置。
无论如何,我不认为我们可以“生活”没有GET:想想你每天在查询字符串中使用多少带有参数的url——没有GET,所有这些都不能工作;-)