結(jié)合openstack swift的文檔和代碼,現(xiàn)在基本上理解了swift處理上傳下載一個文件的流程。也想通了整個集群怎么擴容的問題,和錯誤處理(更換磁盤、機器的上架下架)。
在上述所說的幾種情況的大概流程是知道了,也知道了代碼的結(jié)構(gòu)。但對細(xì)節(jié)的處理還不是很明白。在代碼中,有的很多對http返回狀態(tài)的詳解,之前只知道404,503,..。
還有就是代碼里面的devices的parts_wanted存在小于0的狀況,但現(xiàn)在還不知道在何種情況下會出現(xiàn)小于0?
在系統(tǒng)和代碼結(jié)構(gòu)的理解基礎(chǔ)上,要對更細(xì)節(jié)的代碼實現(xiàn)讀懂。
原文地址:http://www.chinahtml.com/1006/127570310118872.html
如果某項請求發(fā)送到您的服務(wù)器要求顯示您網(wǎng)站上的某個網(wǎng)頁(例如,用戶通過瀏覽器訪問您的網(wǎng)頁或 Googlebot 抓取網(wǎng)頁時),服務(wù)器將會返回 HTTP 狀態(tài)代碼以響應(yīng)請求。
此狀態(tài)代碼提供關(guān)于請求狀態(tài)的信息, 告訴 Googlebot 關(guān)于您的網(wǎng)站和請求的網(wǎng)頁的信息。
一些常見的狀態(tài)代碼包括:
200– 服務(wù)器成功返回網(wǎng)頁
404– 請求的網(wǎng)頁不存在
503– 服務(wù)器暫時不可用
下面提供 HTTP 狀態(tài)代碼的完整列表。 點擊鏈接可了解詳情。 您也可以訪問有關(guān) HTTP 狀態(tài)代碼的W3C 網(wǎng)頁以獲得更多信息。
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ù)請求者(用戶代理)選擇一項操作,或提供操作列表供請求者選擇。
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)移動,因為 Googlebot
會繼續(xù)抓取原有位置并編入索引。
303(查看其他位置)請求者應(yīng)當(dāng)對不同的位置使用單獨的 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)移動,因為 Googlebot
會繼續(xù)抓取原有位置并編入索引。
4xx(請求錯誤)
這些狀態(tài)代碼表示請求可能出錯,妨礙了服務(wù)器的處理。
代碼說明
400(錯誤請求)服務(wù)器不理解請求的語法。
401(未授權(quán))請求要求身份驗證。 對于需要登錄的網(wǎng)頁,服務(wù)器可能返回此響應(yīng)。
403(禁止)服務(wù)器拒絕請求。 如果您看到 Googlebot 在嘗試抓取您網(wǎng)站上的有效網(wǎng)頁時收到此狀態(tài)代碼(可以在 Google 網(wǎng)站管理員工具診 斷下的網(wǎng)絡(luò)抓取頁面上看到此信息),可能是您的服務(wù)器或主機拒絕 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(請求實體過大)服務(wù)器無法處理請求,因為請求實體過大,超出服務(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(尚未實施)服務(wù)器不具備完成請求的功能。 例如,服務(wù)器無法識別請求方法時可能會返回此代碼。
502(錯誤網(wǎng)關(guān))服務(wù)器充當(dāng)網(wǎng)關(guān)或代理,從上游服務(wù)器收到無效響應(yīng)。
503(服務(wù)不可用)服務(wù)器目前無法使用(由于超載或停機維護(hù))。 通常,這只是暫時狀態(tài)。
504(網(wǎng)關(guān)超時)服務(wù)器充當(dāng)網(wǎng)關(guān)或代理,但沒有及時從上游服務(wù)器收到請求。
505(HTTP 版本不受支持)服務(wù)器不支持請求中所用的 HTTP 協(xié)議版本。
如果某項請求發(fā)送到您的服務(wù)器要求顯示您網(wǎng)站上的某個網(wǎng)頁(例如,用戶通過瀏覽器訪問您的網(wǎng)頁或 Googlebot 抓取網(wǎng)頁時),服務(wù)器將會返回 HTTP 狀態(tài)代碼以響應(yīng)請求。
此狀態(tài)代碼提供關(guān)于請求狀態(tài)的信息, 告訴 Googlebot 關(guān)于您的網(wǎng)站和請求的網(wǎng)頁的信息。
一些常見的狀態(tài)代碼包括:
200– 服務(wù)器成功返回網(wǎng)頁
404– 請求的網(wǎng)頁不存在
503– 服務(wù)器暫時不可用
下面提供 HTTP 狀態(tài)代碼的完整列表。 點擊鏈接可了解詳情。 您也可以訪問有關(guān) HTTP 狀態(tài)代碼的W3C 網(wǎng)頁以獲得更多信息。
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ù)請求者(用戶代理)選擇一項操作,或提供操作列表供請求者選擇。
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)移動,因為 Googlebot
會繼續(xù)抓取原有位置并編入索引。
303(查看其他位置)請求者應(yīng)當(dāng)對不同的位置使用單獨的 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)移動,因為 Googlebot
會繼續(xù)抓取原有位置并編入索引。
4xx(請求錯誤)
這些狀態(tài)代碼表示請求可能出錯,妨礙了服務(wù)器的處理。
代碼說明
400(錯誤請求)服務(wù)器不理解請求的語法。
401(未授權(quán))請求要求身份驗證。 對于需要登錄的網(wǎng)頁,服務(wù)器可能返回此響應(yīng)。
403(禁止)服務(wù)器拒絕請求。 如果您看到 Googlebot 在嘗試抓取您網(wǎng)站上的有效網(wǎng)頁時收到此狀態(tài)代碼(可以在 Google 網(wǎng)站管理員工具診 斷下的網(wǎng)絡(luò)抓取頁面上看到此信息),可能是您的服務(wù)器或主機拒絕 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(請求實體過大)服務(wù)器無法處理請求,因為請求實體過大,超出服務(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(尚未實施)服務(wù)器不具備完成請求的功能。 例如,服務(wù)器無法識別請求方法時可能會返回此代碼。
502(錯誤網(wǎng)關(guān))服務(wù)器充當(dāng)網(wǎng)關(guān)或代理,從上游服務(wù)器收到無效響應(yīng)。
503(服務(wù)不可用)服務(wù)器目前無法使用(由于超載或停機維護(hù))。 通常,這只是暫時狀態(tài)。
504(網(wǎng)關(guān)超時)服務(wù)器充當(dāng)網(wǎng)關(guān)或代理,但沒有及時從上游服務(wù)器收到請求。
505(HTTP 版本不受支持)服務(wù)器不支持請求中所用的 HTTP 協(xié)議版本。