
最近在看《圖解HTTP》這本書,內(nèi)容很基礎(chǔ),也很簡單。一起買來的《HTTP權(quán)威指南》相對來說就太“權(quán)威”了。接下來會對書中的內(nèi)容或者個(gè)人認(rèn)為的疑點(diǎn)進(jìn)行一下總結(jié)。
301 、302是什么?
301、302等狀態(tài)碼是響應(yīng)報(bào)文中狀態(tài)行中的組成部分。狀態(tài)碼(Status Code)的職責(zé)是當(dāng)客戶端向服務(wù)器發(fā)送請求時(shí),描述返回的請求結(jié)果。
標(biāo)準(zhǔn)狀態(tài)碼由3位數(shù)字和原因短語組成,主要包含5類:
| 類別 | 原因短語 | |
|---|---|---|
| 1XX | Informational(信息性狀態(tài)碼) | 接受的請求正在處理 |
| 2XX | Success(成功狀態(tài)碼) | 請求正常處理完畢 |
| 3XX | Redirection(重定向狀態(tài)碼) | 需要進(jìn)行附加操作以完成請求 |
| 4XX | Client Error(客戶端錯(cuò)誤狀態(tài)碼) | 服務(wù)器無法處理請求 |
| 5XX | Server Error(服務(wù)器錯(cuò)誤狀態(tài)碼) | 服務(wù)器處理請求出錯(cuò) |
301、302代表了什么?
-
301 Moved Permanently:永久性重定向。
表示請求的資源已被永久分配了新的URI??梢院唵卫斫鉃樵撡Y源已經(jīng)被永久改變了位置。 -
302 Found:臨時(shí)性重定向。
表示資源被臨時(shí)改變位置并分配了新的URI。
兩種重定向之后的URI會包含在響應(yīng)頭中Location首部字段中。
301、302區(qū)別
301永久重定向使得搜索引擎在抓取新內(nèi)容的同時(shí)將舊的網(wǎng)址替換為重定向后的網(wǎng)址。而302臨時(shí)性定向使得搜索引擎會抓去新的內(nèi)容卻保留舊的網(wǎng)址。
301、302適用場景
301:域名切換、HTTP遷移到HTTPS
302:未登錄用戶訪問個(gè)人中心時(shí)重定向到登錄頁面、404頁面提示后跳轉(zhuǎn)到首頁
302與網(wǎng)址劫持
網(wǎng)址劫持和302重定向有什么關(guān)系呢?這個(gè)要從搜索引擎如何處理302重定向說起。
當(dāng)從網(wǎng)址A做一個(gè)302重定向到網(wǎng)址B時(shí),服務(wù)器隱含的意思是網(wǎng)址A可能會重新啟用。正常情況,大部分搜索引擎應(yīng)當(dāng)去抓取302重定向之后的網(wǎng)址B。但是可能由于B網(wǎng)址相對于A網(wǎng)址過于復(fù)雜,這樣搜索引擎就會覺得網(wǎng)址A對用戶更加友好,因而在重定向之后任然顯示舊的網(wǎng)址A,但是顯示網(wǎng)址B的內(nèi)容。這就是網(wǎng)址劫持。
在平常使用手機(jī)的過程當(dāng)中,有時(shí)候會發(fā)現(xiàn)網(wǎng)頁上會有浮動的窗口,或者訪問的頁面不是正常的頁面,這就可能是運(yùn)營商通過某種方式篡改了用戶正常訪問的頁面。其中有一種方式就是通過返回302重定向讓用戶瀏覽器跳轉(zhuǎn)到另外的網(wǎng)址。