回答
的HTTP POST 可以被收藏,但由于书签仅包括URL,所有的形式参数都将丢失。这通常意味着Web服务器不知道该如何处理请求,因为它期望一些表单参数。
如果您通过GET请求提交表单,所有表单参数将进入URL(在?之后),因此书签将包含Web服务器第二次重建页面所需的所有信息(可能除了cookies之外,web服务器更有可能正常处理)
POST不能加书签。尝试为POST添加书签只会导致对URL进行GET操作。 有一个非常好的理由,GET请求应该是幂等的 - 也就是说,使相同的GET请求多次导致相同的响应。另一方面,POST请求不是。 允许POSTs被添加书签可能导致您付钱两次,再次从您的银行帐户转出资金等。
在GET
请求中,请求的所有信息都在URL中编码。在POST
请求中,请求是对指定的URL进行的,但是与该请求有关的所有信息表单内容在请求主体中传递。
当您为一个URL添加书签时,您只会将网址添加为书签,而不是请求正文。例如。如果您在网页上填写表单,然后将其作为POST
请求传递给网络服务器,然后您在浏览器中为响应页面添加书签,则浏览器将只记录该URL,但不记录表单主体。
此外,当您在浏览器中为页面添加书签时,书签仅包含URL,但不包含请求方法。浏览器对所有书签始终使用GET
。
这并不是说这个或那个不能被添加书签。点击书签的次数会更多总是消防GET
请求!点击一个普通的香草链接,书签,浏览器导航按钮,输入浏览器地址栏,等等都会触发一个GET
请求。他们从不发射POST
请求。 A POST
要求是正常只有当您发射提交 a HTML <form>
它设置为method="post"
。您可以完美地编写软件来为POST
请求添加书签,但由于敏感原因不能这样做。
然而,这里的特殊情况是GET
请求是idempotent。换句话说,它是保证给予相同的结果每当你调用它。这很简单,因为请求URL中的所有请求参数都可用。您可以使用它来显示之前的数据预处理。在Java Servlet世界中,您通常会使用doGet()
方法,该方法会根据请求参数预先加载一些内容,并将请求转发给JSP文件以供显示。
A POST
要求是不是幂等。换句话说,不是保证每次调用时都会得到相同的结果。所有请求参数都包含在请求本体中。它对最终用户不可见并且在请求URL中也不可见。换句话说,你不能为它添加书签。您可以在表单提交后使用它ro 后处理数据。在Java Servlet世界中,您通常使用doPost()
方法来收集请求参数并将其存储在某个数据库中,并在前端或将请求重定向到JSP文件以进行结果/确认/显示。
写得很好。在第一个请求的响应被传递之前,幂等还包括第二个请求将被忽略(在GET的情况下)。 – 2014-12-19 17:55:45
事实上,这不是请求书签,而是URI。
GET参数作为URL的一部分发送,而POST参数在HTTP请求正文中发送。 POST类似于GET,第二个隐藏的参数集对用户不可见。这就是为什么您能够在包含GET参数的URL上发出POST请求的原因。
详见How are parameters sent in an HTTP POST request?
虽然通常书签包含URL,它们也可能包含JavaScript代码(如此命名的bookmarklet),并有黑客做书签,将使POST请求,而不是GET。
详见How to save a bookmark in Firefox with POST data?
- 1. HTTP GET请求可以工作,但POST请求不可用
- 2. 任何人都可以请解释下面一段Flash ActionScript吗?
- 3. 有人可以请解释输出java
- 4. Django - POST和GET请求可以在一个HttpRequest中返回吗?
- 5. 有人可以解释__declspec(裸体)吗?
- 6. 有人可以解释iOS4的CMTime吗?
- 7. 有人可以解释descendantFocusability = afterDescendants吗?
- 8. 有人可以解释ja_JP.UTF8吗?
- 9. 有人可以解释WebKit吗?
- 10. 有人可以解释C#CngKey.Create吗?
- 11. 有人可以为我解释COMTIMEOUTS吗?
- 12. 有人可以解释行结束吗?
- 13. 有人可以解释MustOverride吗?
- 14. 有人可以解释参数autovacuum_naptime吗?
- 15. 有人可以解释Spring Security BasePermission.Create吗?
- 16. 有人可以解释DBCC DROPCLEANBUFFERS吗?
- 17. 有人可以解释facelets吗?
- 18. 有人可以解释以下奇怪的函数声明吗?
- 19. 有人可以解释一下苹果评论指南吗?
- 20. 有人可以解释下面的一段代码吗?
- 21. 有人可以解释一下Google的主页JS吗?
- 22. 有人可以解释一下com.google.inject的用途吗?
- 23. 有人可以解释下面一段Javascript代码吗?
- 24. 有人可以解释一下Ruby(?)是什么吗?
- 25. 有人可以解释一下这段Python代码吗?
- 26. 有人可以解释“ - '0'”
- 27. 这怎么可能?有人可以解释这个吗?
- 28. 有人可以请我解释异常处理吗?
- 29. 有人可以请参考变量解释这个答案吗?
- 30. 有人可以请解释这个CMD批处理文件吗?
小问题:由于“书签”有一个浏览器的强有力的影响,而浏览器不相关的HTTP方法存储与书签,那么POST无法真正书签。 POST的URL可以作为重复的POST进行存储和执行,但在我看来,这与“书签”不同。 – Palpatim 2013-12-31 00:35:41