在大多数情况下,POST请求可以替代GET请求吗?

时间:2013-09-29 14:30:47

标签: javascript web-applications http-post httprequest http-get

我湿透了http://www.w3schools.com/tags/ref_httpmethods.asp并想知道为什么我不总是喜欢 通过GET请求发出POST请求。我可以想到两个scnarios我必须使用POST请求而不是GET 请求。这些是: -

  

1)我需要为URL添加书签

     

2)我的要求是缓存网页(如POST请求那样)   不缓存网页),以便下次击中相同的网址时可以   从缓存中获取并优化性能。

我同意POST请求旨在创建/更新设计GET请求的资源 检索资源。尽管如此,技术上也可以反过来使用它们。

所以我在想 使用POST请求而不是GET请求并不总是有益的(除了我提到的两个要求之外) 以上)因为帖子更安全吗?我的理解是否正确?

1 个答案:

答案 0 :(得分:0)

使用HTTP的原因有很多,这与使用它的方式有关。这是一对夫妇:

  • 网络的价值建立在网址上。每次提供只能通过POST获得的页面时,您拒绝链接到的选项,以及为其添加书签。 (显然,仍然可以制作表单按钮,但这并不方便。)即使页面是某种“服务”,链接仍然经常有价值 - 你事先没有想过。

  • 如果用户重新加载通过POST获得的页面,大多数Web浏览器将警告他们“重新提交表单”并确认操作。这是因为在设计不良的应用程序中,这可能导致发出重复订单或发布重复消息等内容。因此,对于没有副作用的请求使用GET会消除此不必要的警告。实际上,对于具有效果的POST,一种有用的做法是使对它们的响应重定向到URL(浏览器将获取)以获取描述操作结果的页面 (例如,如果POST发布了评论,那么它将重定向到评论的链接);通过这种方式可以重新加载页面(这可能是隐含的,例如,如果重新启动浏览器),没有任何关于它是否重新执行操作的歧义。