關於http code 308的記錄

最近在項目中須要作一個文件上傳的功能,使用的組件是element
ui的upload組件,在測試的過程當中發現後端返回的狀態是308永久重定向,上傳的過程當中不只發起了上傳文件自己的請求,還有一個 看起來不相干的請求,經過查詢資料終於弄清了爲何上傳失敗以及308狀態碼的含義

如圖,是當時請求的截圖:chrome

圖片描述

圖1 上傳請求
圖片描述後端

圖2 重定向請求瀏覽器

經過網上查找資料,找到了這篇文章,文章已經對308狀態碼的含義講解得很清楚了,就是請求的地址已經被永久重定向到另外一個URI,且在請求返回的response headers中會有一個叫作"Location"的header來指明被重定向的位置。測試

我這裏上傳失敗的緣由是接口地址原本應該是「/security/file/」,而我寫成了「/security/file」,地址後面少了一個「/」,所以如圖1所示,response headers中的「Location」指明瞭被重定向的位置,也就有了圖2中的這個請求。ui

這裏前2個file的請求是同樣的,至於爲何會出現2次,還沒弄清緣由,是由於chrome瀏覽器比較高級,會自動多嘗試一次請求嗎?實際上在IE中,只會出現一次上傳的請求,後2次都不會出現,如圖3。而在firefox中,file的請求一次,重定向資源的請求一次,如圖4所示。
圖片描述
圖3 IE中的全部請求
圖片描述
圖4 firefox中的全部請求spa

這裏還有一個沒弄清的問題是圖2中的請求其實是後端在Apache中的一個配置,爲何會重定向到這裏也還須要進一步肯定。firefox

相關文章
相關標籤/搜索