HTTP 1.1狀態(tài)代碼及含義_第1頁
HTTP 1.1狀態(tài)代碼及含義_第2頁
HTTP 1.1狀態(tài)代碼及含義_第3頁
HTTP 1.1狀態(tài)代碼及含義_第4頁
HTTP 1.1狀態(tài)代碼及含義_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第頁下表顯示了常見的HTTP1.1狀態(tài)代碼以及它們對(duì)應(yīng)的狀態(tài)信息和含義。應(yīng)當(dāng)慎重地使用那些只有HTTP1.1支持的狀態(tài)代碼,因?yàn)樵S多瀏覽器還只能夠支持HTTP1.0。如果你使用了HTTP1.1特有的狀態(tài)代碼,最好能夠檢查一下請(qǐng)求的HTTP版本號(hào)。狀態(tài)代碼狀態(tài)信息含義100Continue初始的請(qǐng)求已經(jīng)承受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余局部?!睭TTP1.1新〕101SwitchingProtocols效勞器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議〔HTTP1.1新〕200OK一切正常,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面。201Created效勞器已經(jīng)創(chuàng)立了文檔,Location頭給出了它的URL。202Accepted已經(jīng)承受請(qǐng)求,但處理尚未完成。203Non-AuthoritativeInformation文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確,因?yàn)槭褂玫氖俏臋n的拷貝〔HTTP1.1新〕。204NoContent沒有新文檔,瀏覽器應(yīng)該繼續(xù)顯示原來的文檔。如果用戶定期地刷新頁面,而Servlet可以確定用戶文檔足夠新,這個(gè)狀態(tài)代碼是很有用的。205ResetContent沒有新的內(nèi)容,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來強(qiáng)制瀏覽器去除表單輸入內(nèi)容〔HTTP1.1新〕。206PartialContent客戶發(fā)送了一個(gè)帶有Range頭的GET請(qǐng)求,效勞器完成了它〔HTTP1.1新〕。300MultipleChoices客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如果效勞器要提出優(yōu)先選擇,那么應(yīng)該在Location應(yīng)答頭指明。301MovedPermanently客戶請(qǐng)求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應(yīng)該自動(dòng)地訪問新的URL。302Found“MovedTemporatily〞。出現(xiàn)該狀態(tài)代碼時(shí),瀏覽器能夠自動(dòng)訪問新的URL,因此它是一個(gè)很有用的狀態(tài)代碼。注意這個(gè)狀態(tài)代碼有時(shí)候可以和301替換使用。例如,如果瀏覽器錯(cuò)誤地請(qǐng)求〔缺少了后面的斜杠〕,有的效勞器返回301,有的那么返回302。嚴(yán)格地說,我們只能假定只有當(dāng)原來的請(qǐng)求是GET時(shí)瀏覽器才會(huì)自動(dòng)重定向。請(qǐng)參見307。303SeeOther類似于301/302,不同之處在于,如果原來的請(qǐng)求是POST,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過GET提取〔HTTP1.1新〕。304NotModified客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求〔一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔〕。效勞器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。305UseProxy客戶請(qǐng)求的文檔應(yīng)該通過Location頭所指明的代理效勞器提取〔HTTP1.1新〕。307TemporaryRedirect和302〔Found〕一樣。許多瀏覽器會(huì)錯(cuò)誤地響應(yīng)302應(yīng)答進(jìn)展重定向,即使原來的請(qǐng)求是POST,即使它實(shí)際上只能在POST請(qǐng)求的應(yīng)答是303時(shí)才能重定向。由于這個(gè)原因,HTTP1.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)求的重定向。〔HTTP1.1新〕400BadRequest請(qǐng)求出現(xiàn)語法錯(cuò)誤。401Unauthorized客戶試圖未經(jīng)授權(quán)訪問受密碼保護(hù)的頁面。應(yīng)答中會(huì)包含一個(gè)頭,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框,然后在填寫適宜的Authorization頭后再次發(fā)出請(qǐng)求。403Forbidden資源不可用。效勞器理解客戶的請(qǐng)求,但拒絕處理它。通常由于效勞器上文件或目錄的權(quán)限設(shè)置導(dǎo)致。404NotFound無法找到指定位置的資源。這也是一個(gè)常用的應(yīng)答。405MethodNotAllowed請(qǐng)求方法〔GET、POST、HEAD、DELETE、PUT、TRACE等〕對(duì)指定的資源不適用?!睭TTP1.1新〕406NotAcceptable指定的資源已經(jīng)找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容〔HTTP1.1新〕。407ProxyAuthenticationRequired類似于401,表示客戶必須先經(jīng)過代理效勞器的授權(quán)?!睭TTP1.1新〕408RequestTimeout在效勞器許可的等待時(shí)間內(nèi),客戶一直沒有發(fā)出任何請(qǐng)求??蛻艨梢栽谝院笾貜?fù)同一請(qǐng)求?!睭TTP1.1新〕409Conflict通常和PUT請(qǐng)求有關(guān)。由于請(qǐng)求和資源的當(dāng)前狀態(tài)相沖突,因此請(qǐng)求不能成功。〔HTTP1.1新〕410Gone所請(qǐng)求的文檔已經(jīng)不再可用,而且效勞器不知道應(yīng)該重定向到哪一個(gè)地址。它和404的不同在于,返回407表示文檔永久地離開了指定的位置,而404表示由于未知的原因文檔不可用?!睭TTP1.1新〕411LengthRequired效勞器不能處理請(qǐng)求,除非客戶發(fā)送一個(gè)Content-Length頭。〔HTTP1.1新〕412PreconditionFailed請(qǐng)求頭中指定的一些前提條件失敗〔HTTP1.1新〕。413RequestEntityTooLarge目標(biāo)文檔的大小超過效勞器當(dāng)前愿意處理的大小。如果效勞器認(rèn)為自己能夠稍后再處理該請(qǐng)求,那么應(yīng)該提供一個(gè)Retry-After頭〔HTTP1.1新〕。414RequestURITooLongURI太長〔HTTP1.1新〕。416RequestedRangeNotSatisfiable效勞器不能滿足客戶在請(qǐng)求中指定的Range頭?!睭TTP1.1新〕500InternalServerError效勞器遇到了意料不到的情況,不能完成客戶的請(qǐng)求。501NotImplemented效勞器不支持實(shí)現(xiàn)請(qǐng)求所需要的功能。例如,客戶發(fā)出了一個(gè)效勞器不支持的PUT請(qǐng)求。502BadGateway效勞器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問下一個(gè)效勞器,但該效勞器返回了非法的應(yīng)答。503ServiceUnavailable效勞器由于維護(hù)或者負(fù)載過重未能應(yīng)答。例如,Servlet可能在數(shù)據(jù)庫連接池已滿的情況下返回503。效勞器返回503時(shí)可以提供一個(gè)Retry-After頭。504GatewayTimeout由作為代理或網(wǎng)關(guān)的效勞器使用,表示不能及時(shí)地從遠(yuǎn)程效勞器獲得應(yīng)答?!睭TTP1.1新〕505HTTPVersionNotSupported效勞器不支持請(qǐng)求中所指明的HTTP版本?!睭TTP1.1新〕HTTP的早期版本為HTTP/0.9,它適用于各種數(shù)據(jù)信息的簡潔快速協(xié)議,但是其遠(yuǎn)不能滿足日益開展各種應(yīng)用的需要。但HTTP/0.9作為HTTP協(xié)議具有典型的無狀態(tài)性:每個(gè)事務(wù)都是獨(dú)立進(jìn)展處理的,當(dāng)一個(gè)事務(wù)開場就在客戶與效勞器之間建立一個(gè)連接,當(dāng)事務(wù)完畢時(shí)就釋放這個(gè)連接。HTTP/0.9包含

Simple-Request&Simple-Responsed的報(bào)文構(gòu)造。但是客戶無法使用內(nèi)容協(xié)商,所以效勞器也無法返回實(shí)體的媒體類型。

1982年,TimBerners-Lee提出了HTTP/1.0,在此后的不斷豐富和開展中,HTTP/1.0成為最重要的面向事務(wù)的應(yīng)用層協(xié)議。該協(xié)議對(duì)每一次請(qǐng)求/響應(yīng),建立并撤除一次連接。其特點(diǎn)是簡單、易于管理,所以它符合了大家的需要,得到了廣泛的應(yīng)用。其缺點(diǎn)是仍會(huì)發(fā)生以下問題:對(duì)用戶請(qǐng)求響應(yīng)慢、網(wǎng)絡(luò)擁塞嚴(yán)重、平安性等。

2019年形成的HTTP/1.1,也就是現(xiàn)在普遍使用的協(xié)議,在持續(xù)連接操作機(jī)制中實(shí)現(xiàn)流水方式,即客戶端需要對(duì)同一效勞器發(fā)出多個(gè)請(qǐng)求時(shí),其實(shí)現(xiàn)在多數(shù)的網(wǎng)頁都是有多局部組成〔比方多張圖片〕,可用流水線方式加快速度,流水機(jī)制就是指連續(xù)發(fā)出多個(gè)請(qǐng)求并等到這些請(qǐng)求發(fā)送完畢,再等待響應(yīng)。這樣就大大節(jié)省了單獨(dú)請(qǐng)求對(duì)響應(yīng)的等待時(shí)間,使我們得到更快速的瀏覽。

另外,HTTP/1.1效勞器端處理請(qǐng)求時(shí)按照收到的順序進(jìn)展,這就保證了傳輸?shù)恼_性。當(dāng)然,效勞器端在發(fā)生連接中斷時(shí),會(huì)自動(dòng)的重傳請(qǐng)求,保證數(shù)據(jù)的完整性。

HTTP/1.1還提供了身份認(rèn)證、狀態(tài)管理和Cache緩存等機(jī)制。這里,我想特別提一下關(guān)于HTTP/1.1中的Cache緩存機(jī)制對(duì)HTTP/1.0的缺乏之處的改良,它嚴(yán)格全面,既可以減少時(shí)間延遲、又節(jié)省了帶寬。HTTP/1.1采用了內(nèi)容協(xié)商機(jī)制,選擇最適宜的用戶的內(nèi)容表現(xiàn)形式。

現(xiàn)在,很多地方都有用到的虛擬主機(jī)技術(shù)在HTTP/1.1中也可以實(shí)現(xiàn)。所謂的虛擬主機(jī)技術(shù),就是同一主機(jī)地址實(shí)際對(duì)應(yīng)多臺(tái)主機(jī)。通俗的講,當(dāng)你同時(shí)在一個(gè)網(wǎng)站申請(qǐng)兩個(gè)主頁時(shí),用協(xié)議分析儀可以發(fā)現(xiàn)其實(shí)這兩個(gè)主頁對(duì)應(yīng)的是同一個(gè)IP地址。這樣用多臺(tái)完全一樣的機(jī)器形成WWW效勞器就可以提高處理的吞吐量。

傳統(tǒng)的解決方案是改造域名效勞器使其可以根據(jù)一定的算法將同一域名解釋成不同的IP地址。分別對(duì)應(yīng)虛擬主機(jī)的每臺(tái)機(jī)器,其缺點(diǎn)是要求每臺(tái)機(jī)器占用完全獨(dú)立的IP地址,這與IP地址的缺乏是相矛盾的。

HTTP/1.1提供的解決方案在HTTP協(xié)議自身中參加了指定不同主機(jī)的功能,從而多臺(tái)主機(jī)可以共享一個(gè)IP地址,既提高了性能又便于管理。

因?yàn)镠TTP/1.1是Internet現(xiàn)行的標(biāo)準(zhǔn)協(xié)議,這里詳細(xì)介紹其相關(guān)語法。

首先,HTTP/1.1格式可寫為:

[img:8d94cc43ef][/img:8d94cc43ef]

其中請(qǐng)求方法是請(qǐng)求一定的Web頁面的程序或用于特定的URL??蛇x用以下幾種:

GET:請(qǐng)求指定的頁面信息,并返回實(shí)體主體。

HEAD:只請(qǐng)求頁面的首部。

POST:請(qǐng)求效勞器承受所指定的文檔作為對(duì)所標(biāo)識(shí)的URI的新的附屬實(shí)體。

PUT:從客戶端向效勞器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。

DELETE:請(qǐng)求效勞器刪除指定的頁面。

OPTIONS:允許客戶端查看效勞器的性能。

TRACE:請(qǐng)求效勞器在響應(yīng)中的實(shí)體主體局部返回所得到的內(nèi)容。

PATCH:實(shí)體中包含一個(gè)表,表中說明與該URI所表示的原內(nèi)容的區(qū)別。

MOVE:請(qǐng)求效勞器將指定的頁面移至另一個(gè)網(wǎng)絡(luò)地址。

COPY:請(qǐng)求效勞器將指定的頁面拷貝至另一個(gè)網(wǎng)絡(luò)地址。

LINK:請(qǐng)求效勞器建立鏈接關(guān)系。

UNLINK:斷開鏈接關(guān)系。

WRAPPED:允許客戶端發(fā)送經(jīng)過封裝的請(qǐng)求。

Extension-mothed:在不改動(dòng)協(xié)議的前提下,可增加另外的方法。

比方:

GET/index.htmlHTTP/1.1

Accept:text/plain/*純ASCII碼文本文件*/

Accept:text/html/*HTML文本文件*/

User-Agent:Mozilla/4.5(WinNT)

說明瀏覽器使用Get方法請(qǐng)求文檔/index.html。瀏覽器那么只允許接收純ASCII碼文本文件和HTML文本文件,其使用的引擎是Mozilla/4.5〔Netscape〕。

當(dāng)效勞器響應(yīng)時(shí),其狀態(tài)行的信息為HTTP的版本號(hào),狀態(tài)碼,及解釋狀態(tài)碼的簡單說明?,F(xiàn)將5類狀態(tài)碼詳細(xì)列出:

①客戶方錯(cuò)誤

100繼續(xù)

101交換協(xié)議

②成功

200OK

201已創(chuàng)立

202接收

203非認(rèn)證信息

204無內(nèi)容

205重置內(nèi)容

206局部內(nèi)容

③重定向

300多路選擇

301永久轉(zhuǎn)移

302暫時(shí)轉(zhuǎn)移

303參見其它

304未修改〔NotModified〕

305使用代理

④客戶方錯(cuò)誤

400錯(cuò)誤請(qǐng)求〔BadRequest〕

401未認(rèn)證

402需要付費(fèi)

403制止〔Forbidden〕

404未找到〔NotFound〕

405方法不允許

406不承受

407需要代理認(rèn)證

408請(qǐng)求超時(shí)

409沖突

410失敗

411需要長度

412條件失敗

413請(qǐng)求實(shí)體太大

414請(qǐng)求URI太長

415不支持媒體類型

⑤效勞器錯(cuò)誤

500效勞器內(nèi)部錯(cuò)誤

501未實(shí)現(xiàn)〔NotImplemented〕

502網(wǎng)關(guān)失敗

504網(wǎng)關(guān)超時(shí)

505HTTP版本不支持

比方:〔在?TELNET……?一文中用telnet登陸80端口,一樣的方法用在HTTP/1.1中,會(huì)發(fā)現(xiàn)沒有顯示,下面補(bǔ)充說明之〕

telnet80

HEAD/HTTP/1.1

host:/*本行為輸入內(nèi)容*/

HTTP/1.1501MethodNotImplemented

Date:Web,01Nov200007:12:29GMT/*當(dāng)前的日期/時(shí)間*/

Server:Apache/1.3.12(Unix)/*Web效勞器信息*/

Allow:GET,HEAD,OPTION,TRACE/*支持的方法類型*/

Connection:close

Connect-Type:Text/html;charset=iso-8859-1/*連接的媒體類型*/

<!DOCTYPEHTMLPUBLIG"-//IETF//DTDHTML2.0//EN">

<HTML><HEAD>

<TITLE>501Method

NotImplemented</TITLE>

</HEAD><BODY>

<H1>MethodNotImplemented</H1>

headto/inde

x.htmlnotsupported.<P>

Invalidmethodinrequesthead/htp/1.1<P>

<HR>

<ADDRESS>

Apache/1.3.12ServeratPort80</ADDRESS>

</BODY></HTML>

關(guān)于實(shí)體頭部的內(nèi)容還可以有:

LastModified:請(qǐng)求文檔的最近修改時(shí)間。

Expires:請(qǐng)求文檔的過期時(shí)間。

Connect-length:文檔數(shù)據(jù)的長度。

:通知客戶端需要的認(rèn)證信息。

Connect-encoding:說明有無使用壓縮技術(shù)。

Transfer-encoding:說明采用的編碼變換類型。

隨著Internet的開展,下一代的HTTP協(xié)議HTTP-ng已經(jīng)在醞釀之中,它將會(huì)提供更好的平安性、更快的速度,其改良要點(diǎn)為:模塊化強(qiáng)、網(wǎng)絡(luò)效率高、平安性更好、構(gòu)造更簡單。HTTP協(xié)議是我們網(wǎng)絡(luò)中必不可少的重要協(xié)議。那么下面我們就來對(duì)這方面的問題進(jìn)展一下深入講解。那么我們就針對(duì)GET方法實(shí)現(xiàn)HTTP協(xié)議的具體操作進(jìn)展一下分析。HTTP協(xié)議用于在Internet上發(fā)送和接收消息?HTTP協(xié)議是一種請(qǐng)求-應(yīng)答式的協(xié)議??客戶端發(fā)送一個(gè)請(qǐng)求,效勞器返回該請(qǐng)求的應(yīng)答,所有的請(qǐng)求與應(yīng)答都是HTTP包?HTTP協(xié)議使用可靠的TCP連接,默認(rèn)端口是80?HTTP的第一個(gè)版本是HTTP/0.9,后來開展到了HTTP/1.0,現(xiàn)在最新的版本是HTTP/1.1?HTTP/1.1由RFC2616定義?

在HTTP中,Client/Server之間的會(huì)話總是由客戶端通過建立連接和發(fā)送HTTP請(qǐng)求包初始化,效勞器不會(huì)主動(dòng)聯(lián)系客戶端或要求與客戶端建立連接?瀏覽器和效勞器都可以隨時(shí)中斷連接,例如,在瀏覽網(wǎng)頁時(shí)你可以隨時(shí)點(diǎn)擊“停頓"按鈕中斷當(dāng)前的文件下載過程,關(guān)閉與Web效勞器的HTTP連接?

1HTTP請(qǐng)求包

HTTP請(qǐng)求包(GET?POST等請(qǐng)求方法)由三個(gè)局部構(gòu)成,分別是:方法-URI-協(xié)議/版本,請(qǐng)求頭,請(qǐng)求正文?下面是一個(gè)HTTP協(xié)議請(qǐng)求包(GET)的例子:

1.GET/index.jspHTTP/1.1

2.Accept-Language:zh-cn

3.Connection:Keep-Alive

4.Host:06

5.Content-Length:37

6.userName=new_andy&password=new_andy

請(qǐng)求包的第一行是方法-URI-協(xié)議/版本:

GET就是請(qǐng)求方法,根據(jù)HTTP標(biāo)準(zhǔn),HTTP協(xié)議請(qǐng)求可以使用多種請(qǐng)求方法?HTTP1.1支持七種請(qǐng)求方法:GET?POST?HEAD?OPTIONS?PUT?DELETE和TRACE等,常用的為請(qǐng)求方法是GET和POST?

/ind

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論