65.9K
CodeProject 正在变化。 阅读更多。
Home

刷新网页和仅在地址栏中按 Enter 键之间的区别

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

2分钟阅读

viewsIcon

17429

大家好,       假设你在浏览网页时,页面尚未完全加载,你尝试刷新页面(或从键盘按下F5键)。这与在地址栏中输入URL并按下Enter键有什么区别? 对于新手用户来说,这可能看起来相似。 事实上,如果最后的动作是使用GET方法发送HTTP请求,它们是相同的。 但是,如果最后的动作是使用POST方法,那么它们的行为就会不同,尽管结果可能相同。

大家好,

       假设你在浏览网页时,页面尚未完全加载,你尝试刷新页面(或从键盘按下F5键)。这与在地址栏中输入URL并按下Enter键有什么区别? 对于新手用户来说,这可能看起来相似。 事实上,如果最后的动作是使用GET方法发送HTTP请求,它们是相同的。 但是,如果最后的动作是使用POST方法,那么它们的行为就会不同,尽管结果可能相同。
 

       按下F5键是完全刷新。 它会将最后的HTTP请求完全重新发送到Web服务器。 这意味着,如果最后的HTTP请求使用的是POST方法,它将再次提交所有表单变量。 因此,服务器会将其视为新请求并相应地处理它。 在进行在线金融交易时,这是一件非常重要的事情。 事实上,Internet Explorer和几乎所有浏览器(包括Mozilla Firefox和Chrome)都会警告再次发送数据。


       然而,如果你只是在地址栏中按下Enter键,会更安全。 这是因为,浏览器现在使用‘GET’方法发送请求,即使是对于‘POST’方法也是如此。 众所周知,‘GET’方法不会发送表单数据。 因此,Web服务器会认为这不是一个新的请求。 如果服务器从cookie和其他标头信息中了解到此GET请求的状态,它将再次提供页面。 事实上,在Internet Explorer 8中,如果所有数据已加载到窗口中,并且你在地址栏中按下Enter键,它将不会生成和发送任何请求。 而是显示存储在内存中的内容。 但是,如果你将链接复制到IE8的新选项卡中,它将生成新的GET请求,如上所述。 


最后,你可能注意到的一个主要区别是,如果你登录了hotmail帐户,刷新窗口比在地址栏中按下Enter键要慢。

 

谢谢和问候,

-anu

© . All rights reserved.