面試連環炮系列(十四): HTTP狀態碼302的跳轉邏輯


  1. HTTP狀態碼302的跳轉邏輯
    302狀態碼表示重定向,瀏覽器在拿到服務器返回的這個狀態碼后會自動跳轉到一個新的URL地址,這個地址可以從響應的Location首部中獲取(用戶看到的效果就是他輸入的地址A瞬間變成了另一個地址B。

  2. 302與301的區別和使用場景
    301是永久重定向,而302是臨時重定向。301適合做永久重定向; 302適合做臨時的跳轉。

    • 301的定義:301 Moved Permanently 被請求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本響應返回的若干個URI之一。如果可能,擁有鏈接編輯功能的客戶端應當自動把請求的地址修改為從服務器反饋回來的地址。除非額外指定,否則這個響應也是可緩存的。
    • 302的定義:302 Found 請求的資源現在臨時從不同的URI響應請求。由於這樣的重定向是臨時的,客戶端應當繼續向原有地址發送以后的請求。只有在Cache-Control或Expires中進行了指定的情況下,這個響應才是可緩存的。
  3. 服務器端跳轉和客戶端跳轉的區別

    • 服務器端跳轉就是指地址欄內容不變(客戶端瀏覽器的地址欄不會顯示目標地址的URL),客戶端請求到達以后,服務器發現當前資源給不出回應,在服務器內部請求另一個資源的跳轉。所以跳轉與否客戶端不知道,屬於一次請求。
    • 客戶端跳轉是指地址欄內容發生改變,客戶端再根據服務器端給的響應中的URL再向服務器發送請求,所以是兩次請求。客戶端請求到達服務端,服務端返回一個 “去訪問其他鏈接” 的回應。

參考(部分摘抄的文字版權屬於原作者):

https://www.cnblogs.com/wanglei957/p/11114912.html
https://www.cnblogs.com/ryelqy/p/10104131.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM