轉發是服務器行爲,重定向是客戶端行爲。
從地址欄上來講:
forward的地址欄不會變化,響應的內容是服務器通過其他URL讀取到的;
redirect的地址欄會變化,是服務器返回301/302狀態碼告訴客戶端去請求新的URL地址
從數據共享上來講:
由於在forward中,只有一次request,服務器將request和response交給下一個地址,所以多個轉發頁可以共享到request中的數據;
redirect發生了兩次request,所以不能共享數據
HTTP狀態碼
分類:
2**:成功,操作被成功接收並處理
3**:重定向,需要進一步的操作以完成請求
4**:客戶端錯誤,包含語法錯誤或無法完成請求
5**:服務器錯誤,服務器在執行過程中發生了錯誤
狀態碼列表:
200:表示請求已成功,請求所希望的響應頭或數據體將隨此響應返回
202:服務器已接受請求,但尚未處理
301:被請求的資源已永久移動到新位置
302:請求的資源臨時從不同的URI響應請求,但請求者應繼續使用原有位置來進行以後的請求。一般重定向都是這個狀態碼。
304:自從上次請求後,請求的網頁未修改過。如jq文件,logo
400:客戶端請求的語法錯誤,服務器無法理解
403:服務器已經理解請求,但是拒絕執行它
404:請求失敗,請求所希望得到的資源未被在服務器上發現
500:服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般是服務器的程序碼出錯時出現
502: 作爲網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。例如Nginx轉發請求後,無法 收到或理解 響應時,返回的狀態碼。
503:由於臨時的服務器維護或者過載,服務器暫時無法處理請求
504: 作爲網關或者代理工作的服務器嘗試執行請求時,未能及時從上游服務器收到響應。例如當Nginx超過配置的超時時間還沒有收到響應時,就返回504錯誤。