多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > HTTP報文

HTTP報文

來源:程序員人生   發布時間:2016-07-14 08:09:22 閱讀次數:2899次

1.報文流

http報文是在http利用程序之間發送的數據塊。

報文活動方向:

#1:報文流入源端服務器報文流入源服務器,工作完成以后,會流回用戶的Agent代理中。

#2:報文向下游活動:不論是要求報文還是響應報文,所有報文都會向下游活動。

2.報文組成部份


3部份組成報文:

#1:起始行:報文描寫。ASCII文本。

#2:首部:屬性描寫。ASCII文本。與起始行分隔符為CRLF(ASCII碼13 、ASCII碼10)

#3:主體:可選,數據主體。包括文本或2進制數據,也能夠為空。

2.1.報文語法

http報文可以分為倆類:要求報文、響應報文。


#1:要求報文的格式:

<method> <request-URL> <version> <headers> <entity-body>
#2:響應報文的格式:

<version> <status> <reason-phrase> <headers> <entity-body>

#方法(method):

客戶端希望服務器對資源履行的動作。如:GET、HEAD、POST...

GET:經常使用,通經常使用于要求服務器發送某個資源。


HEAD:服務器只返回首部,不會返回實體的主體部份。使用HEAD可以:1.在不獲得資源的情況下了解資源;2.查看響應的狀態碼,看看對象是不是存在;3.測試資源是不是被修改了


PUT:服務器寫入文檔。讓服務器用要求的主體部份來創建或替換1個由所要求的URL命名的新文檔。


POST:服務器發送數據,通常支持html的表單。


TRACE:要求報文不能帶有實體的主體部份。TRACE要求會在目的服務器端發起1個“環回”診斷。要求可能要穿過防火墻、代理、網關或其他1些利用程序。目的服務器會彈回1條TRACE響應,并在響應主體上攜帶收到的原始要求報文。目的是查看所有中間http利用程序組成的要求/響應鏈上,原始報文是不是被修改或損壞。


OPTION:要求服務器告知其支持的各種功能。


DELETE:要求服務器刪除指定URL所指定的資源。



#要求(equest-URL):

命名了所要求資源,或URL路徑組件的完善URL

#版本(version):

報文所使用的HTTP版本。

格式:HTTP/<major>.<minor>

note:主要版本號(major)和次要版本號(minor)都是整數。

#狀態碼(status):

3位數,描寫要求進程所產生的情況。

100~199:信息性狀態碼

200~299:成功狀態碼

300~399:重定向狀態碼

400~499:客戶端毛病狀態碼

500~599:服務端毛病狀態碼

狀態碼
狀態碼 緣由短語 含義
100 Continue 收到要求的起始部份,客戶端應當繼續要求
101 Switching Protocols 服務器正根據客戶真個唆使將協議切換成Update首部列出的協議
200 OK 服務器已成功處理要求
201 Created 對需要服務器創建對象的要求來講,資源已創建終了
202 Accepted 要求已接收,但服務器還沒有處理
203 Non-Acthoritative Information 服務器已將事務成功處理,只是實體首部包括的信息不是來自原始服務器,而是來自資源的副本
204 No Content 響應報文包括1些首部和1個狀態行,但不包括實體的主體內容。
205 Reset Content 閱讀器應當充值當前頁面上的html表單
206 Partial Content 部份要求成功
300 Multiple Choices 客戶端要求了實際指向多個資源的URL。這個代碼合適1個選項類表1起返回的,然后用戶就能夠選擇他希望使用的選項。
301 Moved Permanently 要求的URL已移走。響應中應當包括1個Location URL,說明資源現在所處的位置。
302 Found 類似于301
303 See Other 告知客戶端應當用另外一個URL獲得資源。這個新的URL位于響應報文的Location首部
304 Not Modified 客戶端可以通過它們所包括的要求首部發起條件要求。這個代碼說明資源未產生變化。
305 Use Proxy 必須通過代理訪問資源,代理的位置是在Location首部中給出的。
306 (未用) 這個狀態碼當前并未使用
307 Temporary Redirect 類似于301
400 Bad request 告知客戶端它發送了1條異常要求
401 Unauthorized 與適當的首部1起返回,在客戶端取得資源訪問權之前,請它進行身份認證。
402 Payment Required 未使用
403 Forbidden 服務器謝絕了要求
404 Not Found 服務器沒法找到所要求的URL
405 Method Not Allow 要求中有1個所要求的URI不支持的方法。響應中應當包括1個Allow首部,以告知客戶端所要求的資源支持哪些方法。
406 Not Acceptable 客戶端可以指定1些參數來講明希望接受哪些類型的實體。服務器沒有資源與客戶端可接受的URL匹配時可以使用此代碼
407 Proxy Authentication Required 類似于401,但用于需要進行資源認證的代理服務器
408 Request Timeout 如果客戶端完成其要求時花費的時間太長,服務器可以回送這個狀態碼并關閉連接
409 Confict 發出的要求在資源上造成了1些沖突
410 Gone 服務器曾持有這些資源以外,與404類似
411 Lengh Required 服務器要求要求報文中包括Content-Lengh首部時會使用這個代碼。發起的要求中若沒有,服務器是不會接受此資源要求的。
412 Precondition Failed 如果客戶端發起了1個條件要求,如果服務器沒法滿足其中的某個條件,就返回這個響應碼。
413 Request Entity Too Large 客戶端發送的實體主體部份比服務器能夠或希望處理的要大
414 Request URI Too Long 客戶端發送的要求所攜帶的要求URL超過了服務器能夠或希望處理的長度
415 Unsupported Media Type 服務器沒法理解或不支持客戶端所發送的實體的內容類型
416 Request Range Not Statisfiable 要求報文要求的是某范圍內的指定資源,但這個范圍無效,或未得到滿足
417 Expectation Fail 要求的Expect首部所包括了1個預期內容,但服務器沒法滿足
500 Internet Server Error 服務器遇到了1個毛病,使其沒法為要求提供服務
501 Not Implement 服務器沒法滿足客戶端要求的某個功能
502 Bad Gateway 作為代理或網管使用的服務器遇到了來自響應鏈中上游的沒法響應
503 Service Unavailable 服務器目前沒法為要求提供服務,但過1段時間就能夠恢復服務
504 Gateway Timeout 類似于408,但響應來自網關或代理,此網關或代理在等待另外一臺服務器的響應時出現了超時
505 HTTP Version Not Support 服務器收到的要求是以它不支持或不愿支持的協議版本表示的

#緣由短語(reson-phrase):

數字狀態碼的可讀版本,包括行終止序列之前的所有文本。

緣由短語只對人類成心義。(HTTP/1.0 200 NOT OK) 和 (HTTP/1.0 200 OK)中緣由短語不1樣,但都當作成功唆使處理。

#首部(headers):

0個或多個。

格式:{首部名}{:}{可選空格}{值}{CRLF}

通用首部:要求、響應報文都可使用的。

要求首部:要求報文特有。

響應首部:響應報文特有。

實體首部:用于應對實體的主體部份。

擴大首部:非標準的首部,由程序開發者創建。

首部名 類型 基本語法 例子 注釋
Accept 要求首部   Accept: text/*, image/*
Accept: text/*, image/gif, image/jpeg; q=1
用于通知服務器可以接受哪些媒體類型。為了避免服務器有多重版本的媒體類型,還可以在首部字段中包括1個質量值(q值)列表,用于告知服務器它優選哪一種媒體類型。
”*“是用于通配媒體類型,比如”*/*“表示所有類型,”image/*“表示所有圖片類型
Accept-Charset 要求首部 Accept-Charset:(charset | *) [";" "q" "= " qvalue] Accept-Charset: iso-latin⑴ 通知服務器它可以接受哪些字符集或哪些事優選字符集。當有多種字符集是,可以通過質量值告知服務器哪一個字符集是優選的。
如果沒有"*",那末值字段中沒有設置的所有字符集的q值都默許為0,這不包括指定的字符,它的默許值為1。
Accept-Encoding 要求首部 Accept-Encoding: (content-coding | "*") [";" "q" "=" qvalue] Accept-Encoding: gzip
Accept-Encoding: compress; q=0.5, gzip; q=1
客戶端告知服務器它可以接受哪些編碼方式。
Accept-Language 要求首部 Accept-Language: (((1*8ALPHA["-"1*8ALPHA] | "*")) [";" "q" "=" qvalue]) Accept-Language: en
Accept-Language: en;q=0.7, en-gb;q=0.5
通知服務器可接受或優選哪些語言。
Authorization 要求首部 Authorization: Authorization-scheme #Authorization-param Authorization: Basic YnJpYW4tdG90dHk6T3ch 由客戶端發送的,用于向服務器回應自己的身份驗證信息。收到401狀態碼,要求在要求中包括這個首部。
From 要求首部 From: mailbos From: dawn@163.com 說明要求來自何方。
Host 要求首部 Host: host [":" port] Host: www.dawn.com:80 提供客戶端想要訪問的哪臺機器的因特網主機名和端口號。
If-Modified-Since 要求首部 If-Modified-Since: HTTP-date If-Modified-Since: Thu, 03 Oct 1997 17:15:00 GMT 用于發起條件要求。客戶端可以GET方法去要求服務器上的資源,而響應則取決于客戶端上次要求此資源以后,該資源是不是被修改過。如果沒有被修改過,服務器會回送1條304狀態碼,則不會回送此資源。
If-Unmodified-Since 要求首部 If-Unmodified-Since: HTTP-date If-Unmodified-Since: Thu, 03 Oct 1997 17:15:00 GMT 用于發起條件要求。客戶端可以GET方法去要求服務器上的資源,而響應則取決于客戶端上次要求此資源以后,該資源是不是被修改過。如果沒有被修改過,才會回送此資源。
Expect 要求首部 Expect: ("100-continue" | expectation-extension) Expect: 100-continue 告知服務器他們需求某種行動。與狀態碼100密切相干
If-Match 要求首部 If-Match: ("*" | entity-tag) If-Match: "11e92a⑷57b⑶1345aa" 服務器將對照If-Match首部的實體標記與資源當前的實體標記,如果匹配,就將對象返回。
If-None-Match 要求首部 If-None-Match: ("*" | entity-tag) If-None-Match: "11e92a⑷57b⑶1345aa" 服務器將對照If-Match首部的實體標記與資源當前的實體標記,如果不匹配,就將對象返
If-Range 要求首部 If-Range: (HTTP-date | entity-tag) If-Range: "11e92a⑷57b⑶1345aa"
If-Range: Thu, 03 Oct 1997 17:15:00 GMT
利用程序具有某范圍內資源的副本,它對范圍進行再校驗,如果范圍無效,要獲得新的資源,在這類情況下使用這個首部。
Max-Forwards 要求首部 Max-Forwards: 1*DIGIT Max-Forwards: 5 與TRACE1并使用,以指定要求所經過的代理或其他中間節點的最大數目。
Pragma 要求首部 Pragma: pragma-directive Pragma: no-cache Pragma首部用于隨報文傳送1些指令,這些指令幾近可以包括任何內容,但通常會用這些指令來控制緩存的行動。
Proxy-Authorization 要求首部 Proxy-Authorization: credentials Proxy-Authorization: Basic YnJpYW4tdG90dHk6T3ch 客戶端用于響應Proxy-Authenticate質詢。
Referer 要求首部 Referer: (absoluteURL | relativeURL) Referer: http://www.dawn.com/index.html 客戶端要求中加入此首部,可使服務器知道客戶端是從哪里取得其要求的URL。閱讀器所做的工作相當簡單。如果在主頁A上點擊1個鏈接,進入主頁B,閱讀器就會在要求中插入1個帶有值A的Refer首部。只有你點擊鏈接的時候閱讀器才會插入Refer首部,自己輸入的URL中不會包括此首部。
TE 要求首部 TE: ("trailers" | (transfer-extension[accept-params])) TE:
TE: chunked
用于說明客戶端能否處理位于分塊編碼的響應拖掛中的首部。如果這個值為空,就只接受分塊傳輸比啊那末。特定標記"trailers"說明分塊響應中可以接受Trailer首部。
User-Agent 要求首部 User-Agent: (product | comment) User-Agent: Mozilla/4.0 (Compatible; MSIE 5.5; Windows NT 5.0) 值是利用程序的名稱,可能還會有1個描寫性注釋。
Client-ip 擴大要求首部 Client-ip: ip-address Client-ip: 209.1.33.49 是1些比較老的客戶端和代理使用的擴大首部,用于傳輸運行客戶端程序的計算機IP地址。不安全。
Cookie 擴大要求首部   Cookie: ink=IUOKy59BC708378908CFF
89OE5573998A115
用于客戶端辨認和跟蹤的擴大首部。
Cookie2 擴大要求首部   Cookie2: $version="1" 用于客戶端辨認和跟蹤的擴大首部。Cookie2用于辨認要求發起者能夠理解哪一種類型的Cookie。
UA-(CPU, Disp, OS, Color, Pixels) 擴大要求首部 "UA" "-" ("CPU" | "Disp" | "OS" | "Color" | "Pixels") ":" (cpu | screensize | os-name | display-color-depth) UA-CPU: X86
UA-Disp: 640, 480, 8
UA-OS: windows 95
UA-Color: color8
UA-Pixels: 640 X 480
提供了客戶端機器的相干信息,以燕服務器更好地進行內容選擇。
UA-CPU(客戶真個CPU)、UA-Disp(客戶端顯示器的尺寸和色采深度)、UA-OS(客戶端機器的操作系統)、UA-Color(客戶端顯示器的色采深度)、UA-Pixels(客戶端顯示器的尺寸)
X-Forwarded-for 擴大要求首部 X-Forwarded-for: addr X-Forwarded-for: 64.95.76.161 很多代理服務器(如Squid)會用這個首部來講明某條要求都被轉發了給誰。
         
Accept-Range 響應首部 Accept-Range: range-unit | none Accept-Range: none
Accept-Range: bytes
告知客戶端是不是接受要求資源的某個范圍。
Age 響應首部 Age: delta-seconds Age: 60 告知接受端響應已產生了多少時間,HTTP/1.1緩存必須發送的每條響應中都包括1個Age首部
Allow 響應首部 Allow: #Method Allow: GET, HEAD 通知客戶端可以對特定資源使用那些HTTP方法,發送405響應,服務器必須包括Allow首部
Location 響應首部 Location: absoluteURL Location: http://www.dawn.com/ 服務器通過此首部將客戶端導向某個資源的地址,這個資源可能在客戶端最后1次要求后被移動過,也多是在對要求的響應中創建的。
Proxy-Authenticate 響應首部 Proxy-Authenticate: challenge Proxy-Authenticate: Basic realm="Super Scret Corporate FinancialDocument" 代理通過這個首部來質詢發送要求的客戶端,要求其對本身進行認證。如果1臺HTTP/1.1代理服務器發送1條407響應,就必須包括此首部。
Public 響應首部 Public: HTTP-method Public: OPTIONS, GET, HEAD, TRACE, POST 服務器告知客戶端它支持哪些方法。
Retry-After 響應首部 Retry-After: (HTTP-date | delta-seconds) Retry-After: Thu, 03 Oct 1997 17:15:00 GMT
Retry-After: 120
告知客戶端甚么時候重新發送某資源的要求。此首部可以與503狀態碼配合使用,給出客戶端可以重試其要求的具體日期。服務器還可以在將客戶端重定向到資源時,通過這個首部通知客戶端在對重定向的資源發送要求之前需要等待的時間。對創建動態資源的服務器來講,這個首部非常有用。
Server 響應首部 Server: (product | comment) Server: Microsoft-Internet-Information-Server/1.0
Server: Websitepro/1.1f (s/n wpo-07d0)
Server: apache/1.2b6 via proxy gateway CERN-HTTPD/3.0 libwww/2.13
它為服務器提供了1種向客戶端標識自己的方式。它的值就是服務器名字和1個可U型那的服務器注釋。
Title 響應首部 Title: document-title Title: CNN Interactive 主要用于HTML頁面,這些HTML頁面有著服務器可使用的明確的標題標記。
Vary 響應首部 Vary: ("*" | field-name) Vary: User-Agent 通知客戶端,在服務器真個協商中會使用那些來自客戶端要求的首部。值是1個首部列表。
Warning 響應首部 Warning: warning-value Warning: 113 給出更多與要求進程中所產生情況相干的信息。HTTP/1.1規范中定義了幾種正告代碼:
101-響應過時了-響應報文已過期;
111-再驗證失敗-緩存沒法抵達原始服務器造成了再驗證失敗;
112-斷開連接操作-緩存到網絡的連接被刪除;
113-摸索性過期-新鮮性摸索過期時間大于24小時,就返回;
199-雜項正告-報文中可能包括為用戶提供的額外信息,系統不能自動響應;
214-使用了轉換-中間利用程序履行了任何會改變響應內容編碼的轉換;
299-持久雜項正告-毛病中可能包括1個主體部份,為用戶提供了更多的信息,系統不能進行任何自動回應。
WWW-Authenticate 響應首部 WWW-Authenticate: chanllenge WWW-Authenticate: Basic realm="Your Private Travel Profile" 用于401響應,向客戶端發布1個質詢認證方案。
Set-Cookie 擴大響應首部 Set-Cookie: command Set-Cookie: lastorder=00183; path=/orders
Set-Cookie: private_id=519; secure
是Cookie首部的搭檔
Set-Cookie2 擴大響應首部 Set-Cookie2: command Set-Cookie2: ID="29046"; Domain=".joes-hardware.com"
Set-Cookie2: color=blue
對Set-Cookie首部的擴大。
X-Cache 擴大響應首部   X-Cache: HIT Squid(代理服務器)用此首部通知客戶端某個資源是不是可用。
         
Content-Base 實體首部 Content-Base: absoluteURL Content-Base: http://www.dawn.com/ 響應主體中解析的URL指定的基礎URL。
Content-Encoding 實體首部 Content-Encoding: content-coding Content-Encoding: gzip
Content-Encoding: compress, gzip
告知客戶端,服務器對內容履行過哪一種或哪些類型的編碼,編碼可使內容在發送響應前進行緊縮,有了這個信息,客戶端就能夠對報文進行解碼。
Content-Language 實體首部 Content-Language: language-tag Content-Language: en
Content-Language: en, fr
告知客戶端,應當理解哪一種自然語言。
Content-Length 實體首部 Content-Length: 1*DIGIT Content-Length: 2417 實體主體部份的長度。
Content-Location 實體首部 Content-Location: (absoluteURL | relativeURL) Content-Location: http://www.dawn.com/index.html 與報文的實體部份相對應的URL。
Content-MD5 實體首部 Content-MD5: md5-digest Content-MD5: Q2h1Y2sgSW51ZwDIAXR5IQ== 報文主體的MD5摘要。通過這個值可以端到端地檢查數據,在檢查傳輸進程中是不是對數據進行了無意的修改時非常有用。
Content-Range 實體首部   Content-Range: bytes 500⑼99 / 5400 要求傳輸某范圍內的文檔時,產生的結果有此首部給出。提供要求實體的原始實體內的范圍,還給出了全部實體的長度。”*“代表未知。
Content-Type 實體首部 Content-Type: media-type Content-Type: text/html; charset=ios-latin⑴ 報文中的對象的媒體類型。
ETag 實體首部 ETag: entity-tag ETag: "11e92a⑷57b⑶1345aa"
ETag: W/"11e92a⑷57b⑶134b5aa"
為報文中包括的實體提供實體標記。
Expires 實體首部 Expires: HTTP-date Expires: Thu, 03 Oct 1997 17:15:00 GMT 響應失效的日期時間。客戶端可以緩存1份副本,在這個時間到期之前,不用去詢問服務器它是不是有效。
Last-Modified 實體首部 Last-Modified: HTTP-date Last-Modified: Thu, 03 Oct 1997 17:15:00 GMT 提供這個實體最后1次被修改的相干信息。Last-Modified不應當是未來的時間,如果它比Date首部中發送的值還遲,HTTP/1.1服務器就會將Last-Modified時間重置。
Range
實體首部
Range: bytes=500⑴500
說明報文所包括實體的范圍。
         
Cache-Control 通用首部   Cache-Control: no-cache 用于傳輸對象的緩存信息。
Connection 通用首部 Connection: connection-token Connection:close 用于擴大keep-alive連接的HTTP/1.1客戶端,keep-alive連接用于控制信息。close意味著響應結束后,連接會被關閉。
Date 通用首部 Date: HTTP-date Date: Tue, 3 Oct 1997 02:15:31 GMT 報文創建的日期時間。緩存可使用這個首部來判斷相應的新鮮度。
Proxy-Connection 通用首部 Proxy-Connection: (connection-token) Proxy-Connection: close 在客戶端和代理之間可以用它來指定與連接(主要是keep-alive連接)有關的選項。它其實不是標準的首部,標準委員會把他當作1個臨時首部,但它得到了閱讀器和代理的廣泛使用。
Trailer 通用首部 Trailer: field-name Trailer: Content-Length 用于說明報文拖掛中提供了哪些首部。
Transfer-Encoding 通用首部 Transfer-Encoding: transfer-coding Transfer-Encoding: chunked 如果需要通過某些編碼來安全地傳送HTTP報文主體,報文中就要包括Transfer-Encoding首部。它的值是1個對報文主體履行過的編碼的列表。
Upgrade 通用首部 Upgrade; protocol Upgrade: HTTP/1.1 此首部為報文發送者提供了1種手段,使其指定另外一種可能完全不同協議并將此意愿向外廣播。服務器發送101狀態碼響應時,必須包括此首部。
Via 通用首部 Via: (received-protocol received-by [comment]) Via: 1.1 joes-hard-ware.com ( Joes-Server/1.0) 用于在報文經過代理和網關時對其進行跟蹤。如果報文是通過量個中間利用程序傳輸的,那末每一個利用程序都會向其Via字符串中附加1些內容,必須通過HTTP/1.1代理和網關來插入Via首部。
MIME-Version 擴大通用首部 MIME-Version: DIGIT "." DIGIT MIME-Version: 1 . 0 MIME是HTTP的近親。雖然倆者存在根本區分,但有些HTTP服務器確切構造了1些在MIME規范下一樣有效的報文,這類情況下,就需要提供此首部
X-Pad 擴大通用首部 X-Pad: pad-text X-Pad: bogosity 用于解決某些閱讀器中與響應首部長度相干的bug。
X-Serial-Number 擴大通用首部 X-Serial-Number: serialno X-Serial-Number: 010014056 擴大首部,較老的HTTP利用程序會向報文中插入許可軟件的序列號。

#實體的主體部份(entity-body):

包括1個由任意數據組成的數據塊。是http報文的負荷,可以承載很多類型的數字數據:圖片、視頻、HTML文檔、軟件利用程序、信譽卡事務、電子郵件等。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国内精品视频 在线播放 | 亚洲精品性夜夜夜 | 欧美一级在线观看视频 | 牛和人交videos欧美 | 黄色的网站免费观看 | 国产亚洲人成网站在线观看不卡 | 亚洲不卡视频在线观看 | 毛片网站网址 | 性欧美另类高清videos | 亚洲精品资源 | 亚洲高清视频免费 | 伊人国产在线视频 | 亚洲黄色大全 | 午夜视频免费看 | 一级做受毛片免费大片 | 免费毛片网 | 色综合欧美综合天天综合 | 欧美精品黑人性xxxx | 福利精品在线 | 精品伊人 | 伊人黄色 | 国产高清一级毛片在线不卡 | 欧美视频xxxx | 我想看一级毛片 | www啪| 国产成+人欧美+综合在线观看 | 精品国产理论在线观看不卡 | 日本欧美亚洲 | 视频一区二区中文字幕 | 亚洲黄色中文字幕 | 春色视频www免费视频观看 | 劲爆欧美第一页 | 日韩性大片免费 | 欧美黑人ⅹxxx片 | 欧美13一14sexvideo欧 | 亚洲ass| 久久大香伊焦在人线免费 | 免费看h | 亚洲国产精品综合欧美 | 精品99一区二区三区麻豆 | 亚洲精品国产第一区二区三区 |