GET请求可以加书签,POST不能。 有人可以解释一下吗?

我正在研究HTTP方法。 我读了GET请求可以被添加书签,并且POST请求不能被添加书签。 有人可以用一个例子来解释吗?

谢谢


HTTP POST可以加书签,但由于书签只包含URL,因此所有表单参数都将丢失。 这通常意味着Web服务器不知道该如何处理请求,因为它期望一些表单参数。

如果您通过GET请求提交表单,则所有表单参数都会进入URL(在?之后),因此书签将包含Web服务器第二次重新构建页面所需的所有信息(cookie除外,也许,但一个网络服务器更有可能处理这个优雅)


POST不能加书签。 尝试为POST添加书签只会导致对URL进行GET操作。 这有一个很好的理由,GET请求应该是幂等的 - 也就是说,多次执行相同的GET请求应该导致相同的响应。 另一方面,POST请求不是。 允许POST被标记为书签可能会导致您付钱两次,再次从您的银行帐户转出资金等。


这不是一个或其他人不能被添加书签。 点击书签总是会触发GET请求! 点击一个普通的香草链接,书签,浏览器导航按钮,输入浏览器地址栏,等等都会触发GET请求。 他们从不发起POST请求。 POST请求通常仅在您提交使用method="post"设置的HTML <form>时触发。 您可以完美地编写软件来为POST请求添加书签,但由于敏感的原因不能这样做。

然而,这里的特别之处在于GET请求是幂等的 。 换句话说,每次调用它时都会保证得到相同的结果。 这很简单,因为所有请求参数都只在请求URL中可用。 您可以使用它在显示之前对数据进行预处理 。 在Java Servlet世界中,您通常使用doGet()方法,该方法根据最终请求参数预先加载一些内容,将请求转发给JSP文件以供显示。

然而POST请求不是幂等的。 换句话说,每次调用它时都不能保证给出相同的结果。 所有请求参数都包含在请求主体中。 它对最终用户不可见并且在请求URL中也不可见。 换句话说,你不能为它添加书签。 表单提交后,您可以使用它后处理数据。 在Java Servlet世界中,您通常使用doPost()方法来收集请求参数并将其存储在某个数据库中,并在结束时转发或将请求重定向到JSP文件以进行结果/确认/显示。

链接地址: http://www.djcxy.com/p/41323.html

上一篇: GET request can be bookmarked and POST can not . Can anybody explain on this?

下一篇: python upload string with https post