http的302,303和307
來源:http://hi.baidu.com/redbad/item/cc627e6d6d5182176995e670
在HTTP當(dāng)中有些用于表示重定向的狀態(tài)碼,范圍在3XX。
這里主要說一下302,303和307的區(qū)別。
這三個狀態(tài)碼在平時都表現(xiàn)為重定向,服務(wù)器返回一個新的資源的地址,客戶端去這個新的地址去獲取資源。但是它們之間還是有些細(xì)微的區(qū)別的。我們通過仔細(xì)閱讀RFC可以發(fā)現(xiàn):
1.302 Found。302返回碼指示資源臨時在另一個位置,該位置通過Location指定。如果302響應(yīng)對應(yīng)的請求方法不是GET或者HEAD,那么客戶端在獲得用戶許可之前是不能自動進(jìn)行重定向的,因?yàn)檫@有可能會改變請求的條件。在RFC1045和RFC2068中指明客戶端在響應(yīng)重定向時是不可以改變請求的方法的。但是在多數(shù)實(shí)現(xiàn)中,總是使用GET方法來獲取新位置的資源。這樣就將其實(shí)現(xiàn)為303的要求了。
2.303 See Other。請求的資源可以在另一個URI處找到,客戶端必須使用GET方法來獲取新位置的資源。不能緩存303響應(yīng),但是可以緩存第二次請求的響應(yīng)。This method exists primarily to allow the output of a POST-activated script to redirect the user agent to a selected resource.很多客戶端識別303狀態(tài)碼,302狀態(tài)碼的實(shí)現(xiàn)其實(shí)就是對303狀態(tài)碼的響應(yīng)。
3.307 Temporary Redirect。同303一樣,對于非GET和HEAD請求不能自動重定向。與302的區(qū)別是: The Web client issues a request to the new location of the resource using the same request method it used in the current transaction (rather than always using GET).也就是說307相較于302來說,后續(xù)請求資源的方法是使用與當(dāng)前交互相同的方法而不是全部使用GET。
由此可見:303和307的出現(xiàn)是明確了302中的混亂狀態(tài)。建議以后使用303和307,302在以后將會被淘汰掉
總結(jié)
以上是生活随笔為你收集整理的http的302,303和307的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下如何让鼠标支持滚轮
- 下一篇: sql 嵌套select与关联selec