瀏覽網(wǎng)頁(yè)錯(cuò)誤信息全揭秘
瀏覽網(wǎng)頁(yè)錯(cuò)誤信息全揭秘
網(wǎng)上沖浪時(shí),時(shí)常會(huì)出現(xiàn)網(wǎng)頁(yè)打不開(kāi)等情況,默認(rèn)情況下IE 5.0或以上版本在收到任何HTTP錯(cuò)誤的時(shí)候會(huì)顯示由服務(wù)器返回的HTTP錯(cuò)誤信息的友好HTTP錯(cuò)誤信息(見(jiàn)圖1)。如果顯示的友好HTTP錯(cuò)誤信息是英文的話,這些提示令初學(xué)者摸不著頭腦,相信你閱讀完這篇文章,會(huì)對(duì)這些錯(cuò)誤信息有個(gè)全面的了解。
一、友好HTTP錯(cuò)誤信息逐個(gè)數(shù)
100 Continue:初始的請(qǐng)求已經(jīng)接受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分。
101 Switching Protocols:服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議。
200 OK:一切正常,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面。如果不用SetStatus設(shè)置狀態(tài)代碼,Servlet默認(rèn)使用202狀態(tài)代碼。
201 Created 服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL。
202 Accepted:已經(jīng)接受請(qǐng)求,但處理尚未完成。
203 Non-Authoritative Information:文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確,因?yàn)槭褂玫氖俏臋n的拷貝。
204 No Content:沒(méi)有新文檔,瀏覽器應(yīng)該繼續(xù)顯示原來(lái)的文檔。如果用戶定期地刷新頁(yè)面,而Servlet可以確定用戶文檔足夠新,這個(gè)狀態(tài)代碼是很有用的。
205 Reset Content:沒(méi)有新的內(nèi)容,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來(lái)強(qiáng)制瀏覽器清除表單輸入內(nèi)容。
206 Partial Content:客戶發(fā)送了一個(gè)帶有Range頭的GET請(qǐng)求,服務(wù)器完成了它。
300 Multiple Choices:客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在Location應(yīng)答頭指明。
301 Moved Permanently:客戶請(qǐng)求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應(yīng)該自動(dòng)地訪問(wèn)新的URL。
302 Found:類似于301,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的。注意,在HTTP1.0中對(duì)應(yīng)的狀態(tài)信息是“Moved Temporatily”,而HttpServletResponse中相應(yīng)的常量是SC_MOVED_TEMPORARILY,而不是SC_FOUND。出現(xiàn)該狀態(tài)代碼時(shí),瀏覽器能夠自動(dòng)訪問(wèn)新的URL,因此它是一個(gè)很有用的狀態(tài)代碼。為此,Servlet提供了一個(gè)專用的方法,即sendRedirect。使用response.sendRedirect(url)比使用response.setStatus(response.SC_MOVED_TEMPORARILY)和response.setHeader("Location",url)更好。注意這個(gè)狀態(tài)代碼有時(shí)候可以和301替換使用。
303 See Other:類似于301/302,不同之處在于,如果原來(lái)的請(qǐng)求是POST,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過(guò)GET提取。
304 Not Modified:客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來(lái)緩沖的文檔還可以繼續(xù)使用。
305 Use Proxy:客戶請(qǐng)求的文檔應(yīng)該通過(guò)Location頭所指明的代理服務(wù)器提取。
307 Temporary Redirect:和302(Found)相同。許多瀏覽器會(huì)錯(cuò)誤地響應(yīng)302應(yīng)答進(jìn)行重定向,即使原來(lái)的請(qǐng)求是POST,即使它實(shí)際上只能在POST請(qǐng)求的應(yīng)答是303時(shí)才能重定向。由于這個(gè)原因,HTTP 1.1新增了307,以便更加清除地區(qū)分幾個(gè)狀態(tài)代碼:當(dāng)出現(xiàn)303應(yīng)答時(shí),瀏覽器可以跟隨重定向的GET和POST請(qǐng)求如果是307應(yīng)答,則瀏覽器只能跟隨對(duì)GET請(qǐng)求的重定向。注意:HttpServletResponse中沒(méi)有為該狀態(tài)代碼提供相應(yīng)的常量。
400 Bad Request:請(qǐng)求出現(xiàn)語(yǔ)法錯(cuò)誤。
401 Unauthorized:客戶試圖未經(jīng)授權(quán)訪問(wèn)受密碼保護(hù)的頁(yè)面。應(yīng)答中會(huì)包含一個(gè)WWW-Authenticate頭,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框,然后在填寫(xiě)合適的Authorization頭后再次發(fā)出請(qǐng)求。
403 Forbidden:資源不可用。服務(wù)器理解客戶的請(qǐng)求,但拒絕處理它。通常由于服務(wù)器上文件或目錄的權(quán)限設(shè)置導(dǎo)致。
404 Not Found:無(wú)法找到指定位置的資源。這也是一個(gè)常用的應(yīng)答,HttpServletResponse專門(mén)提供了相應(yīng)的方法:sendError(message)。
405 Method Not Allowed:請(qǐng)求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)對(duì)指定的資源不適用。
406 Not Acceptable:指定的資源已經(jīng)找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容。
407 Proxy Authentication Required:類似于401,表示客戶必須先經(jīng)過(guò)代理服務(wù)器的授權(quán)。
408 Request Timeout:在服務(wù)器許可的等待時(shí)間內(nèi),客戶一直沒(méi)有發(fā)出任何請(qǐng)求??蛻艨梢栽谝院笾貜?fù)同一請(qǐng)求。
409 Conflict:通常和PUT請(qǐng)求有關(guān)。由于請(qǐng)求和資源的當(dāng)前狀態(tài)相沖突,因此請(qǐng)求不能成功。
410 Gone:所請(qǐng)求的文檔已經(jīng)不再可用,而且服務(wù)器不知道應(yīng)該重定向到哪一個(gè)地址。它和404的不同在于,返回407表示文檔永久地離開(kāi)了指定的位置,而404表示由于未知的原因文檔不可用。
411 Length Required:服務(wù)器不能處理請(qǐng)求,除非客戶發(fā)送一個(gè)Content-Length頭。
412 Precondition Failed:請(qǐng)求頭中指定的一些前提條件失敗。
413 Request Entity Too Large:目標(biāo)文檔的大小超過(guò)服務(wù)器當(dāng)前愿意處理的大小。如果服務(wù)器認(rèn)為自己能夠稍后再處理該請(qǐng)求,則應(yīng)該提供一個(gè)Retry-After頭。
414 Request URI Too Long:URI太長(zhǎng)。
416 Requested Range Not Satisfiable:服務(wù)器不能滿足客戶在請(qǐng)求中指定的Range頭。
500 Internal Server Error:服務(wù)器遇到了意料不到的情況,不能完成客戶的請(qǐng)求。
501 Not Implemented:服務(wù)器不支持實(shí)現(xiàn)請(qǐng)求所需要的功能。例如,客戶發(fā)出了一個(gè)服務(wù)器不支持的PUT請(qǐng)求。
502 Bad Gateway:服務(wù)器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問(wèn)下一個(gè)服務(wù)器,但該服務(wù)器返回了非法的應(yīng)答。
503 Service Unavailable:服務(wù)器由于維護(hù)或者負(fù)載過(guò)重未能應(yīng)答。例如,Servlet可能在數(shù)據(jù)庫(kù)連接池已滿的情況下返回503。服務(wù)器返回503時(shí)可以提供一個(gè)Retry-After頭。
504 Gateway Timeout:由作為代理或網(wǎng)關(guān)的服務(wù)器使用,表示不能及時(shí)地從遠(yuǎn)程服務(wù)器獲得應(yīng)答。
505 HTTP Version Not Supported:服務(wù)器不支持請(qǐng)求中所指明的HTTP版本。
二、自定義HTTP錯(cuò)誤信息
在Internet Explorer 4中,當(dāng)Wininet.dll無(wú)法解決請(qǐng)求時(shí),它顯示一個(gè)嵌入式HTML錯(cuò)誤信息和一個(gè)非描述性定義,例如:“Navigation Canceled”(導(dǎo)航已取消)或“Unable to retrieve Webpage in Offline mode”(在脫機(jī)模式下無(wú)法檢索網(wǎng)頁(yè))。這些錯(cuò)誤信息是Shdocvw.dll文件的資源(res:)。資源是指程序出于顯示目的所使用的HTML代碼,它嵌入在動(dòng)態(tài)鏈接庫(kù)(DLL)文件中。在Internet Explorer 5或更高版本中,這些錯(cuò)誤信息是作為Shdoclc.dll文件的資源存儲(chǔ)的。當(dāng)收到錯(cuò)誤信息時(shí),它被相應(yīng)的HTML模板取代,此模板可能包含以下任意類型的信息:
?有關(guān)此問(wèn)題的信息。
?有關(guān)如何更正或解決此問(wèn)題的信息。
?指向前一頁(yè)的鏈接。
?指向Internet Explorer支持頁(yè)的鏈接。
?指向同一頁(yè)的鏈接,以便您能嘗試重新連接到該頁(yè)。
?指向緩存中的頁(yè)面副本的鏈接(如果創(chuàng)建了應(yīng)用程序編程接口API)。
友好HTTP狀態(tài)錯(cuò)誤信息存儲(chǔ)在以下注冊(cè)表項(xiàng)中:HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\ErrorThresholds(見(jiàn)圖2)。
Internet Explorer 5和更高版本為以下友好錯(cuò)誤信息提供了HTML模板替換項(xiàng):400.403.404.405.406.408.409.410.500.501和505。每個(gè)錯(cuò)誤都有一個(gè)名稱值對(duì)(例如“404”,128)。第一個(gè)值為錯(cuò)誤代碼。第二個(gè)值是表示字節(jié)大小的值,Internet Explorer 5或更高版本使用該值來(lái)檢測(cè)何時(shí)用自己的信息替換錯(cuò)誤信息。因此,當(dāng)Internet Explorer 5版的Wininet.dll文件得到HTTP錯(cuò)誤信息時(shí),Wininet.dll文件將確定HTML錯(cuò)誤中附帶的HTTP內(nèi)容是否為正確設(shè)計(jì)的Web頁(yè)。這是在頁(yè)面大小的基礎(chǔ)上進(jìn)行的。它在注冊(cè)表中對(duì)每個(gè)錯(cuò)誤的閾值進(jìn)行評(píng)估。如果Web頁(yè)太小,該Web頁(yè)將被拒絕,并顯示友好HTTP狀態(tài)Web頁(yè)。
要禁用友好 HTTP 狀態(tài)錯(cuò)誤信息,請(qǐng)按照以下步驟操作:依次選擇“開(kāi)始→設(shè)置→控制面板→Internet選項(xiàng)→高級(jí)”,單擊“顯示友好 HTTP 錯(cuò)誤信息”復(fù)選框以清除,單擊“確定”按鈕(見(jiàn)圖3)。
小提示:關(guān)閉友好HTTP錯(cuò)誤信息只能禁用由服務(wù)器返回的HTTP錯(cuò)誤信息的友好HTTP錯(cuò)誤信息(上面列出的)。其他的友好錯(cuò)誤信息無(wú)法禁用。例如,當(dāng)Internet Explorer找不到服務(wù)器時(shí)會(huì)出現(xiàn)DNS錯(cuò)誤信息。在上述情況中,沒(méi)有可替換的頁(yè)面,因此Internet Explorer 5或更高版本始終顯示友好的“頁(yè)面無(wú)法顯示”錯(cuò)誤信息。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [臺(tái)式機(jī)] IE無(wú)法瀏覽網(wǎng)頁(yè)的常見(jiàn)原因及解決方法 2010-02-25
- [臺(tái)式機(jī)] 無(wú)法瀏覽網(wǎng)頁(yè)十招解決問(wèn)題 2010-02-24
( 發(fā)表人:admin )