2013-09-29 43 views
0

我湿通过http://www.w3schools.com/tags/ref_httpmethods.asp并想知道为什么我不应该总是喜欢 通过GET请求POST请求。我可以想到两个scnarios,我必须使用POST请求而不是GET 请求。它们是: -在大多数情况下,POST请求可以替代GET请求吗?

1)在那里我有要求,如果我的要求是缓存网页(如POST请求中 不缓存网页)书签的网址

2),所以下一次同样的URL被打到,它可以从缓存中获得 并优化性能。

我同意POST请求的目的是创建/更新,其中GET请求被设计 检索resource.Though资源,techincally它们可以使用副反之亦然也。

所以我想知道 是它并不总是benefecial使用过GET请求POST请求(除了我上面提到的 两个要求)的帖子更安全?我的理解是否正确?

+0

是的。你是对的。在POST请求中,用户看不到您要发送的参数。你可以避免URL注入。并且还纠正了获取请求的书签和缓存页面 – Viji

回答

0

有很多原因使用HTTP的方式来使用它。这里有一对夫妇:

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

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