卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

http協(xié)議學(xué)習(xí)

Http 協(xié)議學(xué)習(xí)定義: SP代表空格 CR代表回車 即r LF代表換行 即n CRLF代表rn 請求行 消息報(bào)頭 空行(CRLF) 消息體一、請求行請求行組成格式:1、請求方法常用

Http 協(xié)議學(xué)習(xí)

定義: SP代表空格 CR代表回車 即r LF代表換行 即n CRLF代表rn 請求行 消息報(bào)頭 空行(CRLF) 消息體

一、請求行

請求行組成格式:

1、請求方法

常用請求方法有(大寫):

OPTIONS GET HEAD POST PUT DELETE

,

OPTIONS 方法:

該方法允許客戶端判斷與某個(gè)資源相關(guān)的選項(xiàng)或需求或者服務(wù)器的能力 (1) 如果Request-URI 不是星號,OPTIONS 請求只應(yīng)用于與該資源通迅時(shí)的 有效選項(xiàng) (2) 如果Request-URI 是星號(“*”),OPTIONS 請求通常試圖應(yīng)用于服 務(wù)器而不是特定的資源。

GET 方法:

GET 方法即獲取由Request-URI 標(biāo)識的任何信息(以實(shí)體的形式)。如果Request-URI 引用某個(gè)數(shù)據(jù)處理過程,則應(yīng)該以它產(chǎn)生的數(shù)據(jù)作為在響應(yīng)中的實(shí)體,而不是該過程的源代碼文本,除非該過程碰巧輸出該文本。

如果請求消息包括If-Modified-Since 、

If-Unmodified-Since , If-MatchIf-None-Match 或者If-Range 頭部域,則GET 方法的語義變?yōu)椤皸l件GET ”。條件GET 方法請只傳輸在條件頭部域描述情形下的實(shí)體。條件GET 方法試圖通過允許刷新緩存的實(shí)體而不需要多次請求或傳輸客戶端已經(jīng)擁有的數(shù)據(jù)來減少非必要的網(wǎng)絡(luò)使用。

如果請求消息包括Range 頭部域,則GET 方法的語義變?yōu)椤熬植縂ET ”。局部GET 請求只需傳輸實(shí)體的某部分.

Head 方法:

除了服務(wù)器不能在響應(yīng)中返回消息體,HEAD 方法與GET 相同。HEAD 請求的響應(yīng)中的HTTP 頭部中包含的元信息應(yīng)該與GET 請求發(fā)送的響應(yīng)中的信息相同。該方法可用來獲取請求暗示實(shí)體的元信息,而不需要傳輸實(shí)體本身。該方法常用來測試超文本鏈接的有效性、可用性和最近的修改。

,

POST 方法:

POST 方法用來請求原始服務(wù)器接受請求中封裝的實(shí)體作為從屬于請求行中的Request-URI 標(biāo)識的副屬。

POST 設(shè)計(jì)允許完成下列功能的統(tǒng)一方法: * 上傳消息到論壇、新聞組或相似的討論組; * 向數(shù)據(jù)處理過程提供數(shù)據(jù)塊,如遞交表單的結(jié)果; * 通過追加操作來擴(kuò)展數(shù)據(jù)庫。

PUT 方法:

PUT 方法請求以提供的Request-URI 存儲封裝的實(shí)體。如果Request-URI 引用已經(jīng)存在的資源,該封裝實(shí)體應(yīng)該被認(rèn)作原始服務(wù)器存儲的修改版本。如果Request-URI 沒有指向已存在的資源,且該URI 可以被請求的用戶代理定義為新的資源,則原始服務(wù)器可以用該URI 創(chuàng)建資源。

DELETE 方法:

DELETE 方法請求原始服務(wù)器刪除Request-URI 標(biāo)識的資源。原始服務(wù)器可在人為干涉 下(或其它意思)屏閉該方法

2、Request-URI

Request-URI 是統(tǒng)一資源標(biāo)識符,標(biāo)識應(yīng)用到請求上的資源。

Request-URI = "*" | absoluteURI | abs_path | authority

Request-URI 的4 個(gè)選擇取決于請求的特性。星號“*”意思是請求不應(yīng)用到特定的資源,而是服務(wù)器自己,例如

當(dāng)Request-URI 為*時(shí): OPTIONS * HTTP/1.1 當(dāng)Request-URI 為absoluteURI 時(shí): GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

,

Request-URI 最通用的形式用于標(biāo)識原始服務(wù)器或網(wǎng)關(guān)上的資源。在這種情況下,URI 的絕對路徑為abs_path,URI 的網(wǎng)絡(luò)地址(authority )在Host 頭部域中傳送。

例如,客戶端希望直接從原始服務(wù)器上獲取資源,可以創(chuàng)建端口號80的TCP 連接到主機(jī)“www.w3.org ”并發(fā)送消息行:

GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org

3、http 版本

常用的的http 版本為 http/1.0 和 http/1.1

二、消息報(bào)頭

報(bào)頭的格式如下: 報(bào)頭域名: 值CRLF 報(bào)頭域名大小寫不敏感 通用報(bào)頭 請求報(bào)頭 實(shí)體報(bào)頭 :后面有一個(gè)空格,報(bào)頭類似于一個(gè)key/value對 每個(gè)報(bào)頭域結(jié)束后有一個(gè)CRLF(rn) 例如: Host: 127.0.0.1:8080 代表服務(wù)器的IP 地址和端口 Note: 可以自定義報(bào)頭域,添加到報(bào)頭中,服務(wù)器會忽略, 如下添加一行自定義的報(bào)頭域到消息報(bào)頭中: invalid: hello world

,

1、通用報(bào)頭

常用的通用報(bào)頭有如下幾個(gè):

Cache-Control Connection Date Pragma

Cache-Control報(bào)頭:

Connection報(bào)頭:

用于http/1.1中資源的緩存控制 在http1.1中,client 和server 都是默認(rèn)對方支持長鏈接的, 如果client 使用 http1.1協(xié)議,但又不希望使用長鏈接,則需要在header 中指明connection 的值為close ;如果server 方也不想支持長鏈接,則在response 中也需要明確說明connection 的值為close

Date報(bào)頭:

Pragma報(bào)頭:

取值 no-cache,兼容http/1.0的緩存控制 表示http 的請求或響應(yīng)的生成日期 如: Connection: close

,

2、請求報(bào)頭

常用的請求報(bào)頭有如下這些: Accept Accept-Charset Accept-Encoding Accept-Language Host If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Max-Forwards Proxy-Authorization Range Referer TE User-Agent

,

Accept 報(bào)頭: Accept-Charset 報(bào)頭: Accept 域用來指定響應(yīng)可接受的確定媒體類型 例如: Accept: text/html 表示客戶端可接受文本類型文件中的html 類型的文件 表示客戶端可接受的字符集 Accept-Encoding 報(bào)頭:

表示客戶端可接受的編碼內(nèi)容

Accept-Language 報(bào)頭 表示客戶端可接受的語言種類 Host 報(bào)頭 表示web 服務(wù)器的主機(jī)和端口 例如: Host: 127.0.0.1:8080 代表服務(wù)器在本機(jī)的8080端口監(jiān)聽 Host: www.baidu.com 代表服務(wù)器為百度,端口默認(rèn)是80端口 If-Match 報(bào)頭: If-Range 報(bào)頭: If-Range 頭部允許客戶端“短路”第二次請求。非正式地,其意思是,客戶端請求的實(shí)體標(biāo)簽在服務(wù)器中是否匹配 If-Match: entity tag “若實(shí)體沒有修改,給我發(fā)送我缺少的部分,否則,給我發(fā)送完整的新實(shí)體”。

,

Max-Forwards 報(bào)頭: 代表請求被代理中轉(zhuǎn)的最大次數(shù),每被中轉(zhuǎn)一次次數(shù)減一。 Range 報(bào)頭: 代表請求實(shí)體的字節(jié)范圍 例如一個(gè)實(shí)體有1000個(gè)字節(jié),則 Range: bytes=0-999 代表請求整個(gè)實(shí)體 Range: bytes=0-99 代表實(shí)體的前100個(gè)字節(jié) Range: bytes=499- 代表實(shí)體的后500個(gè)字節(jié) 可應(yīng)用于斷點(diǎn)續(xù)傳 Referer 報(bào)頭: 當(dāng)瀏覽器向web 服務(wù)器發(fā)送請求的時(shí)候,一般會帶上Referer ,告訴服 務(wù)器我是從哪個(gè)頁面鏈接過來的,服務(wù)器籍此可以獲得一些信息用于處理。比如從我主頁上鏈接到一個(gè)朋友那里,他的服務(wù)器就能夠從HTTP Referer 中統(tǒng)計(jì)出每天有多少用戶點(diǎn)擊我主頁上的鏈接訪問他的網(wǎng)站。 Referer 其實(shí)應(yīng)該是英文單詞Referrer ,不過拼錯(cuò)的人太多了,所以編 寫標(biāo)準(zhǔn)的人也就將錯(cuò)就錯(cuò)了。 TE 報(bào)頭: 可應(yīng)用于防盜鏈 TE 域指出愿意在響應(yīng)中接受任何擴(kuò)展transfer-coding

,

3、實(shí)體報(bào)頭

常用的實(shí)體報(bào)頭有如下這些: Allow Content-Encoding Content-Language Content-Length Content-Location Content-MD5 Content-Range Content-Type Expires Last-Modified Allow 報(bào)頭: Allow 域列出由Request-URI 標(biāo)識的資源所支持的方法集。該域的用途是

嚴(yán)格提醒接收方與該資源相關(guān)的有效方法 用法舉例: Content-Range 報(bào)頭: Content-Range entity-header 與部分entity-body 一起發(fā)送,以指定該部分 Allow: GET, HEAD, PUT 主體應(yīng)該應(yīng)用到全部entity-body 的哪個(gè)地方。Range Expires 報(bào)頭: Expires 字段聲明了一個(gè)網(wǎng)頁或URL 地址不再被瀏覽器緩存的時(shí)間,一旦 超過了這個(gè)時(shí)間,瀏覽器就應(yīng)該聯(lián)系原始服務(wù)器

,

定義: SP代表空格 CR代表回車 即r LF代表換行 即n CRLF代表rn 響應(yīng)行 消息報(bào)頭 空行(CRLF) 消息體

一 、響應(yīng)行

響應(yīng)行組成格式:

1、http 版本

常用的的http 版本為 http/1.0 和 http/1.1

2、狀態(tài)碼和狀態(tài)碼簡要描述

Status-Code 的首位數(shù)字定義響應(yīng)的類別。最后兩個(gè)數(shù)字沒有任何分類。首位數(shù)字有5個(gè)值:

1xx: 信息性——收到請求,繼續(xù)處理 2xx: 成功性——成功收到、理解并接受行動 3xx: 重定向——必須采取進(jìn)一步行動來完成請求 4xx: 客戶端錯(cuò)誤——請求包含錯(cuò)誤語法或不能完成 5xx: 服務(wù)器錯(cuò)誤——服務(wù)器沒有成功完成顯然有效的請求

標(biāo)簽: