狀態(tài)碼301和302的區(qū)別
301 Moved Permanently 被請(qǐng)求的資源已永 久移動(dòng)到新位置,并且將來任何對(duì)此資源的引用都應(yīng)該使用本響應(yīng)返回的若干個(gè)URI之一。如果可能,擁有鏈接編輯功能的客戶端應(yīng)當(dāng)自動(dòng)把請(qǐng)求的地址修改為從服務(wù)器反饋回來的地址。除非額外指定,否則這個(gè)響應(yīng)也是可緩存的。
302 Found 請(qǐng)求的資源現(xiàn)在臨時(shí)從不同的URI響應(yīng)請(qǐng)求。由于這樣的重定向是臨時(shí)的,客戶端應(yīng)當(dāng)繼續(xù)向原有地址發(fā)送以后的請(qǐng)求。只有在Cache-Con trol或Expires中進(jìn)行了指定的情況下,這個(gè)響應(yīng)才是可緩存的。
字面上的區(qū)別就是301是永 久重定向,而302是臨時(shí)重定向。 當(dāng)然,他們之間也是有共同點(diǎn)的,就是用戶都可以看到url替換為了一個(gè)新的,然后發(fā)出請(qǐng)求。
301適合永 久重定向
301比較常用的場(chǎng)景是使用域名跳轉(zhuǎn)。
比如,我們?cè)L問 http://www.baidu.com 會(huì)跳轉(zhuǎn)到 https://www.baidu.com,發(fā)送請(qǐng)求之后,就會(huì)返回301狀態(tài)碼,然后返回一個(gè)location,提示新的地址,瀏覽器就會(huì)拿著這個(gè)新的地址去訪問。
注意: 301請(qǐng)求是可以緩存的, 即通過看status code,可以發(fā)現(xiàn)后面寫著from cache?;蛘吣惆涯愕木W(wǎng)頁的名稱從php修改為了html,這個(gè)過程中,也會(huì)發(fā)生永 久重定向。
302用來做臨時(shí)跳轉(zhuǎn)
比如未登陸的用戶訪問用戶中心重定向到登錄頁面。訪問404頁面會(huì)重新定向到首頁。
301重定向和302重定向的區(qū)別
302重定向只是暫時(shí)的重定向,搜索引擎會(huì)抓取新的內(nèi)容而保留舊的地址,因?yàn)榉?wù)器返回302,所以,搜索搜索引擎認(rèn)為新的網(wǎng)址是暫時(shí)的。而301重定向是永 久的重定向,搜索引擎在抓取新的內(nèi)容的同時(shí)也將舊的網(wǎng)址替換為了重定向之后的網(wǎng)址。