面試常問有關響應狀態碼3XX

前端開發的小夥伴們是不常常被問到3xx響應狀態碼前端

通常我們前端小夥子知道的 3xx屬於的是重定向範圍,面試

可是面試官通常會問到這幾個經常使用的30一、30二、30三、30四、307這幾個狀態碼的做用和區別。瀏覽器

那麼301表明什麼緩存

301的英文是 moved permanently (永久性重定向)看下圖服務器

永久性重定向。服務器對你客戶端說:‘你如今請求的資源不在我這,我無法給你,可是我能夠告訴你,你能夠去這個某個地址拿到這個資源,而且之後這個資源都會在我給你的地址那,你保存一下這地址,之後不要在找我要這個資源了’。post

實際上服務器和客戶端是這麼交流的,請求的資源已被分配到新的URI(統一資源標識符),之後應使用資源如今所指的URI。代理


302 表明什麼呢?cdn

302 的英文表示是 Found,臨時性重定向,看下圖blog


服務器告訴你:‘你如今所請求的資源目前不在我這,被臨時放到某個地址的服務器了,可是之後可能還會從某個服務器那拿過來,此次我給你一個臨時的地址你去請求吧。資源

303表明什麼呢?

303 SeeOther  也是臨時重定向的一種,是否是不少小夥伴都懵逼了。什麼鬼啊,來看圖


服務器告訴你:‘你如今所請求的資源目前不在我這,被臨時放到某個地址的服務器了,可是之後可能還有從某個服務器那拿過來,此次我給你一個臨時的地址你去請求吧,不過你去哪請求的時候必須使用GET方法,這點與302狀態碼有區別。

好比,當時使用post方法訪問CGI程序,其執行後的處理結果是但願處理結果是但願客戶端能以get方法重定向另外一個uri上去時,返回303狀態碼。雖然302Found狀態碼也能夠實現相同的功能,可是303是最合理的。

當30一、30二、303響應狀態碼返回時,幾乎全部的瀏覽器都會把POST改爲GET,並刪除請求報文內的主體,以後請求會自動再次發送

307表明什麼呢?

307 Temporary Rediract臨時性重定向

臨時重定向。該狀態碼與302Found有着相同的含義。儘管302標準禁止POST變成GET,但實際使用時你們並不遵照。

307 會遵守瀏覽器標準,不會從post變成get。可是對於處理響應時的行爲,每種瀏覽器有可能出現不一樣的狀況

304 Not Modidied 英文直譯 沒有發生改變

304雖然屬於3xx類別中可是和重定向沒有關係,304 是一個很是好玩的狀態,當瀏覽器拿到狀態碼是304 的時候,就會從本地資源中拿請求的資源或者代理服務器直接返回本地的資源,304屬於走緩存,這個交互機制會在之後的文章寫出來,請你們多多關顧

相關文章
相關標籤/搜索