一個HTTP請求報文由四個部分組成:請求行薄榛、請求頭部、空行让歼、請求數(shù)據(jù)組成
請求行
請求行由請求方法敞恋,URL字段和HTTP協(xié)議版本三部分構(gòu)成,總的來說請求行就是定義了本次請求的請求方式谋右,請求的地址硬猫,以及所遵循的HTTP協(xié)議版本例如:
GET /example.html HTTP/1.1 (CRLF)
http協(xié)議的方法有(請求方法)
GET 請求獲取Request-URI所標(biāo)識的資源
POST 在Request-URI所標(biāo)識的資源后附加新的數(shù)據(jù)
HEAD 請求獲取由Request-URI所標(biāo)識的資源的響應(yīng)消息報頭
PUT 請求服務(wù)器存儲一個資源,并用Request-URI作為其標(biāo)識
DELETE 請求服務(wù)器刪除Request-URI所標(biāo)識的資源
TRACE 請求服務(wù)器回送收到的請求信息改执,主要用于測試或診斷
CONNECT 保留將來使用
OPTIONS 請求查詢服務(wù)器的性能啸蜜,或者查詢與資源相關(guān)的選項(xiàng)和需求
HTTP響應(yīng)報文
HTTP響應(yīng)報文主要由狀態(tài)行、響應(yīng)頭部天梧、空行以及響應(yīng)數(shù)據(jù)組成盔性。
狀態(tài)行
狀態(tài)行也由三部分組成,包括HTTP協(xié)議的版本呢岗,請求結(jié)果即狀態(tài)碼,還有對狀態(tài)碼的文本描述蛹尝。例如:
HTTP/1.1 200 OK (CRLF)
狀態(tài)碼有三位數(shù)字組成后豫,第一個數(shù)字定義了響應(yīng)的類別,且有五種可能取值:
1xx:指示信息--表示請求已接收突那,繼續(xù)處理
2xx:成功--表示請求已被成功接收挫酿、理解、接受
3xx:重定向--要完成請求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實(shí)現(xiàn)
5xx:服務(wù)器端錯誤--服務(wù)器未能實(shí)現(xiàn)合法的請求
常見狀態(tài)代碼愕难、狀態(tài)描述早龟、說明:
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被服務(wù)器所理解
401 Unauthorized //請求未經(jīng)授權(quán)猫缭,這個狀態(tài)代碼必須和WWW-Authenticate報 //頭域一起使用
403 Forbidden //服務(wù)器收到請求葱弟,但是拒絕提供服務(wù)
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯誤
503 Server Unavailable //服務(wù)器當(dāng)前不能處理客戶端的請求猜丹,一段時間后,可能恢復(fù)正常
********************************************************************************
以下是其他狀態(tài)碼的說明
1xx(臨時響應(yīng))
表示臨時響應(yīng)并需要請求者繼續(xù)執(zhí)行操作的狀態(tài)代碼芝加。
100(繼續(xù)) 請求者應(yīng)當(dāng)繼續(xù)提出請求。 服務(wù)器返回此代碼表示已收到請求的第一部分射窒,正在等待其余部分藏杖。
101(切換協(xié)議) 請求者已要求服務(wù)器切換協(xié)議将塑,服務(wù)器已確認(rèn)并準(zhǔn)備切換。
2xx(成功)
表示服務(wù)器成功處理了請求的狀態(tài)代碼蝌麸。
200(成功) 服務(wù)器已成功處理了請求点寥。 通常,這表示服務(wù)器提供了請求的網(wǎng)頁来吩。 如果針對您的 robots.txt 文件顯示此狀態(tài)开财,則表示 Googlebot 已成功檢索到該文件。
201(已創(chuàng)建) 請求成功并且服務(wù)器創(chuàng)建了新的資源误褪。
202(已接受) 服務(wù)器已接受請求责鳍,但尚未處理。
203(非授權(quán)信息) 服務(wù)器已成功處理了請求兽间,但返回的信息可能來自另一來源历葛。
204(無內(nèi)容) 服務(wù)器成功處理了請求,但沒有返回任何內(nèi)容嘀略。
205(重置內(nèi)容) 服務(wù)器成功處理了請求恤溶,但沒有返回任何內(nèi)容。 與 204 響應(yīng)不同帜羊,此響應(yīng)要求請求者重置文檔視圖(例如咒程,清除表單內(nèi)容以輸入新內(nèi)容)。
206(部分內(nèi)容) 服務(wù)器成功處理了部分 GET 請求讼育。
3xx(重定向)
要完成請求帐姻,需要進(jìn)一步操作。 通常奶段,這些狀態(tài)代碼用來重定向饥瓷。 Google 建議您在每次請求中使用重定向不要超過 5 次。 您可以使用網(wǎng)站管理員工具查看一下 Googlebot 在抓取重定向網(wǎng)頁時是否遇到問題痹籍。 診斷下的網(wǎng) 絡(luò)抓取頁面列出了由于重定向錯誤而導(dǎo)致 Googlebot 無法抓取的網(wǎng)址呢铆。
代碼 說明
300(多種選擇) 針對請求,服務(wù)器可執(zhí)行多種操作蹲缠。 服務(wù)器可根據(jù)請求者(用戶代理)選擇一項(xiàng)操作棺克,或提供操作列表供請求者選擇。
301(永久移動) 請求的網(wǎng)頁已永久移動到新位置线定。 服務(wù)器返回此響應(yīng)(對 GET 或 HEAD 請求的響應(yīng))時娜谊,會自動將請求者轉(zhuǎn)到新位置。 您應(yīng)使用此代碼告訴 Googlebot 某個網(wǎng)頁或網(wǎng)站已永久移動到新位置渔肩。
302(暫 時移動) 服 務(wù)器目前從不同位置的網(wǎng)頁響應(yīng)請求因俐,但請求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請求。 此代碼與響應(yīng) GET 或 HEAD 請求的 301 代碼類似,會自動將請求者轉(zhuǎn)到不同的位置抹剩,但您不應(yīng)使用此代碼來告訴 Googlebot 某個網(wǎng)頁或網(wǎng)站已經(jīng)移動撑帖,因?yàn)?Googlebot 會繼續(xù)抓取原有位置并編入索引。
303(查看其他位置) 請求者應(yīng)當(dāng)對不同的位置使用單獨(dú)的 GET 請求來檢索響應(yīng)時澳眷,服務(wù)器返回此代碼胡嘿。 對于除 HEAD 之外的所有請求,服務(wù)器會自動轉(zhuǎn)到其他位置钳踊。
304(未 修改) 自從上次請求后呐矾,請求的網(wǎng)頁未修改過羔飞。服務(wù)器返回此響應(yīng)時榜掌,不會返回網(wǎng)頁內(nèi)容只厘。如果網(wǎng)頁自請求者上次請求后再也沒有更改過,您應(yīng)當(dāng)將服務(wù)器配置為返回此響 應(yīng)(稱為 If-Modified-Since HTTP 標(biāo)頭)祭埂。 由于服務(wù)器可以告訴 Googlebot 自從上次抓取后網(wǎng)頁沒有更改過面氓,因此可節(jié)省帶寬和開銷 。
305(使用代理) 請求者只能使用代理訪問請求的網(wǎng)頁蛆橡。 如果服務(wù)器返回此響應(yīng)舌界,還表示請求者應(yīng)使用代理。
307(暫 時重定向) 服 務(wù)器目前從不同位置的網(wǎng)頁響應(yīng)請求泰演,但請求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請求呻拌。 此代碼與響應(yīng) GET 和 HEAD 請求的 301 代碼類似,會自動將請求者轉(zhuǎn)到不同的位置睦焕,但您不應(yīng)使用此代碼來告訴 Googlebot 某個頁面或網(wǎng)站已經(jīng)移動藐握,因?yàn)?Googlebot 會繼續(xù)抓取原有位置并編入索引。
4xx(請求錯誤)
這些狀態(tài)代碼表示請求可能出錯复亏,妨礙了服務(wù)器的處理趾娃。
代碼 說明
400(錯誤請求) 服務(wù)器不理解請求的語法。
401(未授權(quán)) 請求要求身份驗(yàn)證缔御。 對于需要登錄的網(wǎng)頁,服務(wù)器可能返回此響應(yīng)妇蛀。
403(禁止) 服務(wù)器拒絕請求耕突。 如果您看到 Googlebot 在嘗試抓取您網(wǎng)站上的有效網(wǎng)頁時收到此狀態(tài)代碼(可以在 Google 網(wǎng)站管理員工具診 斷下的網(wǎng)絡(luò)抓取頁面上看到此信息),可能是您的服務(wù)器或主機(jī)拒絕 Googlebot 訪問评架。
404(未 找到) 服務(wù)器找不到請求的網(wǎng)頁眷茁。 例如,如果請求服務(wù)器上不存在的網(wǎng)頁纵诞,服務(wù)器通常會返回此代碼上祈。如果您的網(wǎng)站上沒有 robots.txt 文件,而您在 Google 網(wǎng)站管理員工具”診斷”標(biāo)簽的 robots.txt 頁上看到此狀態(tài),那么這是正確的狀態(tài)登刺。 但是籽腕,如果您有 robots.txt 文件而又看到此狀態(tài),則說明您的 robots.txt 文件可能命名錯誤或位于錯誤的位置 (該文件應(yīng)當(dāng)位于頂級域名纸俭,名為 robots.txt)皇耗。
如果您看到有關(guān) Googlebot 嘗試抓取的網(wǎng)址的此狀態(tài)(在”診斷”標(biāo)簽的 HTTP 錯誤頁上),則表示 Googlebot 追蹤的可能是另一個頁面的無效鏈接(是舊鏈接或輸入有誤的鏈接)揍很。
405(禁用的方法) 禁用請求中指定的方法郎楼。
406(不可接受) 無法使用請求的內(nèi)容特性響應(yīng)請求的網(wǎng)頁。
407(需要代理授權(quán)) 此狀態(tài)代碼與 401(未授權(quán))類似窒悔,但指定請求者應(yīng)當(dāng)授權(quán)使用代理呜袁。 如果服務(wù)器返回此響應(yīng),還會指明請求者應(yīng)當(dāng)使用的代理简珠。
408(請求超時) 服務(wù)器等候請求時發(fā)生超時阶界。
409(沖突) 服務(wù)器在完成請求時發(fā)生沖突。 服務(wù)器必須在響應(yīng)中包含有關(guān)沖突的信息北救。 服務(wù)器在響應(yīng)與前一個請求相沖突的 PUT 請求時可能會返回此代碼荐操,同時會附上兩個請求的差異列表。
410(已刪除) 如果請求的資源已永久刪除珍策,服務(wù)器就會返回此響應(yīng)托启。 該代碼與 404(未找到)代碼相似,但在資源以前存在而現(xiàn)在不存在的情況下攘宙,有時會用來替代 404 代碼屯耸。 如果資源已永久刪除,您應(yīng)當(dāng)使用 301 指定資源的新位置蹭劈。
411(需要有效長度) 服務(wù)器不接受不含有效內(nèi)容長度標(biāo)頭字段的請求疗绣。
412(未滿足前提條件) 服務(wù)器未滿足請求者在請求中設(shè)置的其中一個前提條件。
413(請求實(shí)體過大) 服務(wù)器無法處理請求铺韧,因?yàn)檎埱髮?shí)體過大多矮,超出服務(wù)器的處理能力。
414(請求的 URI 過長) 請求的 URI(通常為網(wǎng)址)過長哈打,服務(wù)器無法處理塔逃。
415(不支持的媒體類型) 請求的格式不受請求頁面的支持。
416(請求范圍不符合要求) 如果頁面無法提供請求的范圍料仗,則服務(wù)器會返回此狀態(tài)代碼湾盗。
417(未滿足期望要求) 服務(wù)器未滿足”期望”請求標(biāo)頭字段的要求。
5xx(服務(wù)器錯誤)
這些狀態(tài)代碼表示服務(wù)器在嘗試處理請求時發(fā)生內(nèi)部錯誤立轧。 這些錯誤可能是服務(wù)器本身的錯誤格粪,而不是請求出錯躏吊。
代碼 說明
500(服務(wù)器內(nèi)部錯誤) 服務(wù)器遇到錯誤,無法完成請求帐萎。
501(尚未實(shí)施) 服務(wù)器不具備完成請求的功能比伏。 例如,服務(wù)器無法識別請求方法時可能會返回此代碼吓肋。
502(錯誤網(wǎng)關(guān)) 服務(wù)器充當(dāng)網(wǎng)關(guān)或代理凳怨,從上游服務(wù)器收到無效響應(yīng)。
503(服務(wù)不可用) 服務(wù)器目前無法使用(由于超載或停機(jī)維護(hù))是鬼。 通常肤舞,這只是暫時狀態(tài)。
504(網(wǎng)關(guān)超時) 服務(wù)器充當(dāng)網(wǎng)關(guān)或代理均蜜,但沒有及時從上游服務(wù)器收到請求李剖。
505(HTTP 版本不受支持) 服務(wù)器不支持請求中所用的 HTTP 協(xié)議版本。