一、HTTP碼應(yīng)碼
響應(yīng)碼由三位十進(jìn)制數(shù)字組成,它們出現(xiàn)在由HTTP服務(wù)器發(fā)送的響應(yīng)的第一行。
響應(yīng)碼分五種類型,由它們的第一位數(shù)字表示:
1.1xx:信息,請(qǐng)求收到,繼續(xù)處理
2.2xx:成功,行為被成功地接受、理解和采納
3.3xx:重定向,為了完成請(qǐng)求,必須進(jìn)一步執(zhí)行的動(dòng)作
4.4xx:客戶端錯(cuò)誤,請(qǐng)求包含語法錯(cuò)誤或者請(qǐng)求無法實(shí)現(xiàn)
5.5xx:服務(wù)器錯(cuò)誤,服務(wù)器不能實(shí)現(xiàn)一種明顯無效的請(qǐng)求
下表顯示每個(gè)響應(yīng)碼及其含義:
100 繼續(xù)
101 分組交換協(xié)
200 OK
201 被創(chuàng)建
202 被采納
203 非授權(quán)信息
204 無內(nèi)容
205 重置內(nèi)容
206 部分內(nèi)容
300 多選項(xiàng)
301 永久地傳送
302 找到
303 參見其他
304 未改動(dòng)
305 使用代理
307 暫時(shí)重定向
400 錯(cuò)誤請(qǐng)求
401 未授權(quán)
402 要求付費(fèi)
403 禁止
404 未找到
405 不允許的方法
406 不被采納
407 要求代理授權(quán)
408 請(qǐng)求超時(shí)
409 沖突
410 過期的
411 要求的長(zhǎng)度
412 前提不成立
413 請(qǐng)求實(shí)例太大
414 請(qǐng)求URI太大
415 不支持的媒體類型
416 無法滿足的請(qǐng)求范圍
417 失敗的預(yù)期
500 內(nèi)部服務(wù)器錯(cuò)誤
501 未被使用
502 網(wǎng)關(guān)錯(cuò)誤
503 不可用的服務(wù)
504 網(wǎng)關(guān)超時(shí)
505 HTTP版本未被支持
二、HTTP頭標(biāo)
頭標(biāo)由主鍵/值對(duì)組成。它們描述客戶端或者服務(wù)器的屬性、被傳輸?shù)馁Y源以及應(yīng)該實(shí)現(xiàn)連接。
四種不同類型的頭標(biāo):
1.通用頭標(biāo):即可用于請(qǐng)求,也可用于響應(yīng),是作為一個(gè)整體而不是特定資源與事務(wù)相關(guān)聯(lián)。
2.請(qǐng)求頭標(biāo):允許客戶端傳遞關(guān)于自身的信息和希望的響應(yīng)形式。
3.響應(yīng)頭標(biāo):服務(wù)器和于傳遞自身信息的響應(yīng)。
4.實(shí)體頭標(biāo):定義被傳送資源的信息。即可用于請(qǐng)求,也可用于響應(yīng)。
頭標(biāo)格式:<name>:<value><CRLF>
下表描述在HTTP/1.1中用到的頭標(biāo)
Accept 定義客戶端可以處理的媒體類型,按優(yōu)先級(jí)排序;
在一個(gè)以逗號(hào)為分隔的列表中,可以定義多種類型和使用通配符。例如:Accept: image/jpeg,image/png,*/*
Accept-Charset 定義客戶端可以處理的字符集,按優(yōu)先級(jí)排序;
在一個(gè)以逗號(hào)為分隔的列表中,可以定義多種類型和使用通配符。例如:Accept-Charset: iso-8859-1,*,utf-8
Accept-Encoding 定義客戶端可以理解的編碼機(jī)制。例如:Accept-Encoding:gzip,compress
Accept-Language 定義客戶端樂于接受的自然語言列表。例如:Accept-Language: en,de
Accept-Ranges 一個(gè)響應(yīng)頭標(biāo),它允許服務(wù)器指明:將在給定的偏移和長(zhǎng)度處,為資源組成部分的接受請(qǐng)求。
該頭標(biāo)的值被理解為請(qǐng)求范圍的度量單位。例如Accept-Ranges: bytes或Accept-Ranges: none
Age 允許服務(wù)器規(guī)定自服務(wù)器生成該響應(yīng)以來所經(jīng)過的時(shí)間長(zhǎng)度,以秒為單位。
該頭標(biāo)主要用于緩存響應(yīng)。例如:Age: 30
Allow 一個(gè)響應(yīng)頭標(biāo),它定義一個(gè)由位于請(qǐng)求URI中的次源所支持的HTTP方法列表。例如:Allow: GET,PUT
aUTHORIZATION 一個(gè)響應(yīng)頭標(biāo),用于定義訪問一種資源所必需的授權(quán)(域和被編碼的用戶ID與口令)。
例如:Authorization: Basic YXV0aG9yOnBoaWw=
Cache-Control 一個(gè)用于定義緩存指令的通用頭標(biāo)。例如:Cache-Control: max-age=30
Connection 一個(gè)用于表明是否保存socket連接為開放的通用頭標(biāo)。例如:Connection: close或Connection: keep-alive
Content-Base 一種定義基本URI的實(shí)體頭標(biāo),為了在實(shí)體范圍內(nèi)解析相對(duì)URLs。
如果沒有定義Content-Base頭標(biāo)解析相對(duì)URLs,使用Content-Location URI(存在且絕對(duì))或使用URI請(qǐng)求。
例如:Content-Base: Http://www.myweb.com
Content-Encoding 一種介質(zhì)類型修飾符,標(biāo)明一個(gè)實(shí)體是如何編碼的。例如:Content-Encoding: zip
Content-Language 用于指定在輸入流中數(shù)據(jù)的自然語言類型。例如:Content-Language: en
Content-Length 指定包含于請(qǐng)求或響應(yīng)中數(shù)據(jù)的字節(jié)長(zhǎng)度。例如:Content-Length:382
Content-Location 指定包含于請(qǐng)求或響應(yīng)中的資源定位(URI)。
如果是一絕。對(duì)URL它也作為被解析實(shí)體的相對(duì)URL的出發(fā)點(diǎn)。
例如:Content-Location:
http://www.myweb.com/newsContent-MD5 實(shí)體的一種MD5摘要,用作校驗(yàn)和。
發(fā)送方和接受方都計(jì)算MD5摘要,接受方將其計(jì)算的值與此頭標(biāo)中傳遞的值進(jìn)行比較。
例如:Content-MD5: <base64 of 128 MD5 digest>
Content-Range 隨部分實(shí)體一同發(fā)送;標(biāo)明被插入字節(jié)的低位與高位字節(jié)偏移,也標(biāo)明此實(shí)體的總長(zhǎng)度。
例如:Content-Range: 1001-2000/5000
Contern-Type 標(biāo)明發(fā)送或者接收的實(shí)體的MIME類型。例如:Content-Type: text/html
Date 發(fā)送HTTP消息的日期。例如:Date: Mon,10PR 18:42:51 GMT
ETag 一種實(shí)體頭標(biāo),它向被發(fā)送的資源分派一個(gè)唯一的標(biāo)識(shí)符。
對(duì)于可以使用多種URL請(qǐng)求的資源,ETag可以用于確定實(shí)際被發(fā)送的資源是否為同一資源。
例如:ETag: "208f-419e-30f8dc99"
Expires 指定實(shí)體的有效期。例如:Expires: Mon,05 Dec 2008 12:00:00 GMT
Form 一種請(qǐng)求頭標(biāo),給定控制用戶代理的人工用戶的電子郵件地址。例如:From: webmaster@myweb.com
Host 被請(qǐng)求資源的主機(jī)名。對(duì)于使用HTTP/1.1的請(qǐng)求而言,此域是強(qiáng)制性的。例如:Host: www.myweb.com
If-Modified-Since 如果包含了GET請(qǐng)求,導(dǎo)致該請(qǐng)求條件性地依賴于資源上次修改日期。
如果出現(xiàn)了此頭標(biāo),并且自指定日期以來,此資源已被修改,應(yīng)該反回一個(gè)304響應(yīng)代碼。
例如:If-Modified-Since: Mon,10PR 18:42:51 GMT
If-Match 如果包含于一個(gè)請(qǐng)求,指定一個(gè)或者多個(gè)實(shí)體標(biāo)記。只發(fā)送其ETag與列表中標(biāo)記區(qū)配的資源。
例如:If-Match: "208f-419e-308dc99"
If-None-Match 如果包含一個(gè)請(qǐng)求,指定一個(gè)或者多個(gè)實(shí)體標(biāo)記。資源的ETag不與列表中的任何一個(gè)條件匹配,操作才執(zhí)行。
例如:If-None-Match: "208f-419e-308dc99"
If-Range 指定資源的一個(gè)實(shí)體標(biāo)記,客戶端已經(jīng)擁有此資源的一個(gè)拷貝。必須與Range頭標(biāo)一同使用。
如果此實(shí)體自上次被客戶端檢索以來,還不曾修改過,那么服務(wù)器只發(fā)送指定的范圍,否則它將發(fā)送整個(gè)資源。
例如:Range: byte=0-499<CRLF>If-Range:"208f-419e-30f8dc99"
If-Unmodified-Since 只有自指定的日期以來,被請(qǐng)求的實(shí)體還不曾被修改過,才會(huì)返回此實(shí)體。
例如:If-Unmodified-Since:Mon,10PR 18:42:51 GMT
Last-Modified 指定被請(qǐng)求資源上次被修改的日期和時(shí)間。例如:Last-Modified: Mon,10PR 18:42:51 GMT
Location 對(duì)于一個(gè)已經(jīng)移動(dòng)的資源,用于重定向請(qǐng)求者至另一個(gè)位置。
與狀態(tài)編碼302(暫時(shí)移動(dòng))或者301(永久性移動(dòng))配合使用。
例如:Location:
http://www2.myweb.com/index.jspMax-Forwards 一個(gè)用于TRACE方法的請(qǐng)求頭標(biāo),以指定代理或網(wǎng)關(guān)的最大數(shù)目,該請(qǐng)求通過網(wǎng)關(guān)才得以路由。
在通過請(qǐng)求傳遞之前,代理或網(wǎng)關(guān)應(yīng)該減少此數(shù)目。例如:Max-Forwards: 3
Pragma 一個(gè)通用頭標(biāo),它發(fā)送實(shí)現(xiàn)相關(guān)的信息。例如:Pragma: no-cache
Proxy-Authenticate 類似于WWW-Authenticate,便是有意請(qǐng)求只來自請(qǐng)求鏈(代理)的下一個(gè)服務(wù)器的認(rèn)證。
例如:Proxy-Authenticate: Basic realm-admin
Proxy-Proxy-Authorization 類似于授權(quán),但并非有意傳遞任何比在即時(shí)服務(wù)器鏈中更進(jìn)一步的內(nèi)容。
例如:Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=
Public 列表顯示服務(wù)器所支持的方法集。例如:Public: OPTIONS,MGET,MHEAD,GET,HEAD
Range 指定一種度量單位和一個(gè)部分被請(qǐng)求資源的偏移范圍。例如:Range: bytes=206-5513
Refener 一種請(qǐng)求頭標(biāo)域,標(biāo)明產(chǎn)生請(qǐng)求的初始資源。對(duì)于HTML表單,它包含此表單的Web頁面的地址。
例如:Refener:
http://www.myweb.com/news/search.htmlRetry-After 一種響應(yīng)頭標(biāo)域,由服務(wù)器與狀態(tài)編碼503(無法提供服務(wù))配合發(fā)送,以標(biāo)明再次請(qǐng)求之前應(yīng)該等待多長(zhǎng)時(shí)間。
此時(shí)間即可以是一種日期,也可以是一種秒單位。例如:Retry-After: 18
Server 一種標(biāo)明Web服務(wù)器軟件及其版本號(hào)的頭標(biāo)。例如:Server: Apache/2.0.46(Win32)
Transfer-Encoding 一種通用頭標(biāo),標(biāo)明對(duì)應(yīng)被接受方反向的消息體實(shí)施變換的類型。例如:Transfer-Encoding: chunked
Upgrade 允許服務(wù)器指定一種新的協(xié)議或者新的協(xié)議版本,與響應(yīng)編碼101(切換協(xié)議)配合使用。
例如:Upgrade: HTTP/2.0
User-Agent 定義用于產(chǎn)生請(qǐng)求的軟件類型(典型的如Web瀏覽器)。
例如:User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT; DigExt)
Vary 一個(gè)響應(yīng)頭標(biāo),用于表示使用服務(wù)器驅(qū)動(dòng)的協(xié)商從可用的響應(yīng)表示中選擇響應(yīng)實(shí)體。例如:Vary: *
Via 一個(gè)包含所有中間主機(jī)和協(xié)議的通用頭標(biāo),用于滿足請(qǐng)求。例如:Via: 1.0 fred.com, 1.1 wilma.com
Warning 用于提供關(guān)于響應(yīng)狀態(tài)補(bǔ)充信息的響應(yīng)頭標(biāo)。例如:Warning: 99 www.myweb.com Piano needs tuning
www-Authenticate 一個(gè)提示用戶代理提供用戶名和口令的響應(yīng)頭標(biāo),與狀態(tài)編碼401(未授權(quán))配合使用。響應(yīng)一個(gè)授權(quán)頭標(biāo)。
例如:www-Authenticate: Basic realm=zxm.mgmt
引用:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=663161