http中的301和302的區別
阿新 • • 發佈:2021-01-26
文章目錄
HTTP 響應程式碼全部列表
被請求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本響應返回的若干個 URI 之一。如果可能,擁有連結編輯功能的客戶端應當自動把請求的地址修改為從伺服器反饋回來的地址。除非額外指定,否則這個響應也是可快取的。
請求的資源現在臨時從不同的 URI 響應請求。由於這樣的重定向是臨時的,客戶端應當繼續向原有地址傳送以後的請求。只有在Cache-Control或Expires中進行了指定的情況下,這個響應才是可快取的。
http 協議的 301 和 302 狀態碼都代表重定向。瀏覽器請求一個URL收到這兩個狀態碼時,最終都會顯示和跳轉到重定向的URL。
301
適合永久重定向
301比較常用的場景是使用域名跳轉。
server {
listen 8090;
server_name localhost;
location /test4 {
return 301 https://www.baidu.com;
}
# 或者
location /test4 {
rewrite ^/(.*)$ https://www.baidu.com permanent;
}
}
302
用來做臨時跳轉
比如未登陸的使用者訪問使用者中心重定向到登入頁面。
訪問404頁面會重新定向到首頁。
server {
listen 8090;
server_name localhost;
location /test4 {
return 302 https://www.baidu.com;
}
# 或者
location /test4 {
rewrite ^/(.*)$ https://www.baidu.com redirect;
}
}
區別:
302是臨時重定向,搜尋引擎第一次會去新網址抓取新的內容。搜尋搜尋引擎認為新的網址是暫時的,再次獲取時可能會索引新網址和舊網址的內容。
301重定向是永久的重定向,搜尋引擎在抓取新網址內容的同時將舊網址替換成新網址的內容,所以每次都會去獲取新網址的內容。