HTTP中的301、302、303、307、308

来源:https://www.cnblogs.com/amyzhu/archive/2019/10/30/11763438.html
-Advertisement-
Play Games

結論 3XX開頭的HTTP狀態碼都表示重定向的響應。 301、308是永久重定向;302、303、307是臨時重定向。 301、302是http 1.0的內容,303、307、308是http1.1的內容。 301和302本來在規範中是不允許重定向時改變請求method的(將POST改為GET),實 ...


結論

  • 3XX開頭的HTTP狀態碼都表示重定向的響應。
  • 301、308是永久重定向;302、303、307是臨時重定向。
  • 301、302是http 1.0的內容,303、307、308是http1.1的內容。
  • 301和302本來在規範中是不允許重定向時改變請求method的(將POST改為GET),實際許多瀏覽器實現的時候允許重定向時改變請求method。
  • 303的出現是允許重定向時改變請求method。此外303響應禁止被緩存。307、308則不允許重定向時改變請求method。

RFC 7231規定:

  • 301 Moved Permanently,永久重定向
  • 302 Found
  • 303 See Other
  • 307 Temporary Redirect

RFC 7538規定:

  • 308 Permanent Redirect 永久重定向

301、302搜索引擎處理區別

  • 301表示搜索引擎在抓去新內容的同時,將舊的網址替換為重定向之後的網址;
  • 302表示舊地址的資源仍存在,重定向時臨時從A地址跳轉到B地址,搜索引擎會抓取新的內容,並繼續保存舊的網址。

臨時重定向:302、303與307

結論

  • 302允許各種各樣的重定向,一般都實現為GET到GET重定向,但是不能確保POST會重定向為POST。
  • 303只允許任意請求到GET的重定向。
  • 307和302一樣,但不允許POST到GET的重定向。

302 Found

  • 302表示目標資源臨時移動到了另一個URI上。由於重定向是臨時發生的,所以客戶端之後的請求中應該使用原本的URI。
  • 響應header的Location會帶上重定向的URI,瀏覽器可以使用Location中的URI進行自動重定向
  • 註意:由於歷史原因,用戶代理可能會在重定向後的請求中把POST方法改為GET。如果不想這樣做,應該響應307(Temporary Redirect)狀態碼。

303 See Other

  • 303表示伺服器要將瀏覽器重定向到另一個資源,這個資源的URI會寫在響應Header的Location欄位。事實上,重定向到的資源並不是請求的資源,而是對請求資源的一些描述。
  • 303 通常用於將POST請求重定向到GET請求。例如上傳了一份個人信息,伺服器返回303響應,將你導向一個上傳成功頁面。
  • 303 不管原請求是什麼方法,重定向請求的都是GET(或者HEAD)
  • 303響應禁止被緩存。

307 Temporary Redirect

  • 307的定義實際上和302是一致的,唯一區別在於,307狀態碼不允許瀏覽器將原本POST的請求重定向到GET請求上。

永久重定向:301、308

301 Moved Permanently

  • 301表明目標資源被永久的移動到了一個新的URI,任何未來對這個資源的引用都應該使用新的URI。

308 Permanent Redirect

  • 308與301定義一致,唯一的區別在於,308狀態碼不允許瀏覽器將原本為POST的請求重頂到GET請求上。

參考:

https://www.cnblogs.com/wuguanglin/p/redirect.html

https://zhuanlan.zhihu.com/p/60669395


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 詞性說明 n :名詞 v : 動詞 vi :非及物動詞 vt :及物動詞 conj :連詞 prep :介詞 pron :代詞 adj :形容詞 adv :副詞 音頻 "0 100單詞點我" " 100 200單詞點我" "200 300單詞點我" 電腦專用英語辭彙常用單詞 file n.文件;v ...
  • axios學習筆記defaults(預設配置)和mergeConfig(合併config方法) "源碼地址" 找到入口文件 axios/lib/axios.js ... var mergeConfig = require('./core/mergeConfig');` var defaults = ...
  • 前段時間做了一個“國外的公眾號”,為什麼說是國外的公眾號呢,因為他和微信的公眾號有很多共通之處。當然了也有很多不同的地方,第一個要說的就是,我在列印信息的時候,使用的alert()彈窗,但是後臺才發現,LINE中的彈窗中的內容是不能用逗號分隔的。請看下麵的代碼: 在LINE中就只能列印個1,然後後面 ...
  • 序言 隨著用戶量越來越多,業務方關於用戶體驗的要求也在不斷提高,首屏渲染時間就成為了一個提高用戶體驗的指標,減少用戶等待的時間,在一定程度上就會提高用戶的留存。 頁面載入渲染是怎樣的一個過程 參考自Chrome的First Paint Send Request:表示給這個外鏈對應的伺服器發送請求 R ...
  • 在說虛擬DOM之前,先來一個引子,從輸入url到展現出整個頁面都有哪些過程? 1、輸入網址 2、DNS解析 3、建立tcp連接 4、客戶端發送HTPP請求 5、伺服器處理請求 6、伺服器響應請求 7、瀏覽器展示HTML 8、瀏覽器發送請求獲取其他在HTML中的資源。 其中瀏覽器展示HTML經過了:構 ...
  • 對象(object)是 JavaScript 最重要的數據結構。ES6 對它進行了重大升級,本章介紹數據結構本身的改變及語法應用細節。 ...
  • “JSX” JSX就是Javascript和XML結合的一種格式。是一個 JavaScript 的語法擴展。 React發明瞭JSX,利用HTML語法來創建虛擬DOM。當遇到<,JSX就當HTML解析,遇到{就當JavaScript解析。 JSX,是一個 JavaScript 的語法擴展。JSX 可 ...
  • vue,element列表大數據卡頓問題,vue列表渲染慢,element表格渲染慢,表格渲染慢(卡),表格全選卡 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...