日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Http protocal

發(fā)布時間:2023/12/19 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 Http protocal 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://tools.ietf.org/html/rfc2616

1. 狀態(tài)碼:status code

1xxx:信息--請求被接收,繼續(xù)下一步處理 2xxx:成功--請求行為被成功接收、理解和接受 3xxx:重定向--需要進(jìn)一步的處理來完成請求 4xxx:客戶端錯誤--請求包含錯誤的語法或者無法處理 5xxx:服務(wù)器錯誤--服務(wù)器無法處理合理的請求 100:CONTINUE 請求已接受,請繼續(xù)發(fā)送信息, 101:Switch Protocal 協(xié)議轉(zhuǎn)換,Upgrade 更先進(jìn)的協(xié)議 200:OK GET 請求的資源對象;HEAD 對應(yīng)請求資源的 entity-header 字段,不包含消息體;POST;請求行為的結(jié)果消息體;TRACE: 包含請求消息的消息體 201:Created 請求處理完成,資源已創(chuàng)建。 202:(Accepted)請求接收,處理還未完成,使得客戶端及時了解資源請求狀況,監(jiān)視進(jìn)度 203: 204:No Content 請求處理完成,但是不需要返回消息體 205:Reset Content 服務(wù)器完成請求,客戶端刷新view 206:Partial Content 回復(fù)包含 Range或者If-Range請求頭的GET請求 300:Mutiple Choices,服務(wù)器返回包含可用資源列表的消息體供客戶端選擇,如果客戶端一開始就有傾向,則需要在頭信息 Location添加特殊URI信息,客戶端可以使用此信息自動選擇。 301:Move Permanently,請求資源永久重定向,服務(wù)器使用Location返回重定向URI,對于GET HEAD請求,客戶端不能自動重定向請求 302:Found 臨時重定向,其它同上 303:See Other,資源在其它路徑,可以通過GET獲取 304:Not Modify 客戶端已緩存資源,并且服務(wù)器端為左更改,緩存可以繼續(xù)使用 305:Use Proxy 必須使用代理反問資源,服務(wù)器使用Location返回代理資源路徑 306:Unused 未使用 307:Temporary Redirect 400:Bad Request,語法錯誤,服務(wù)器無法處理 401:Unauthorized 未授權(quán),需要請求信息包含 authentication: basic digest access authentication 402:未使用 403:Forbidden,理解請求,拒絕服務(wù), 404:Not Found 405:Method Not Allowed 請求方法不允許,服務(wù)器返回allow:允許的方法頭信息 406:Not Acceptable 無法滿足所有的消息頭要求;返回消息體,包含所能提供的資源表現(xiàn)形式的列表,允許用戶手動進(jìn)行選擇。 407:Proxy Authentication Required 代理權(quán)限驗證,代理返回Proxy-Authenticate:驗證說明,客戶端重新發(fā)送帶有Proxy-Authorization頭信息 408:Request Time Out: 409:Conflict 請求資源沖突,例如多客戶段請求修改MVVC控制的資源 。。。 500:Internal Server Error 服務(wù)器內(nèi)部錯誤 501:Not Implementd 未實現(xiàn)能完成請求的方法功能 502:Bad Gateway 網(wǎng)關(guān)錯誤 503:Service Unavalible 當(dāng)前服務(wù)不可用,可以擇機retry 504:Gateway Timeout 505:Http Version Not Supported entity-body:= Content-Encoding(Content-Type(data)) 沒有默認(rèn)的encoding

2. 消息類型:content-type

任何http/1.1消息,如果包含消息體,則必須在消息頭上包含一個Content-type,如果未設(shè)置,接收方會嘗試通過檢查消息內(nèi)容,或者根據(jù)url攜帶的資源名稱擴展來判斷消息類型。如果還是無法確定,則使用application/octet-stream

3. 消息長度:entity-length

entity-length 是指編碼之前的消息體長度,transfer-length 是指編碼之后的消息體長度。

4. 長連接:keepalive

持久化的http連接:http/1.1產(chǎn)生并默認(rèn) 頻繁的tcp連接:增加性能開銷。網(wǎng)絡(luò)負(fù)擔(dān),內(nèi)存消耗及時效性浪費 節(jié)省端點(routers、hosts(clients、servers、proxies、gateways、tunnels、caches))cpu消耗 TCP control block memory used saved in hosts 節(jié)省主機TCP控制塊內(nèi)存消耗 pipelined操作,可以連續(xù)發(fā)送請求,而不必等待每一個回復(fù)。較小的elapsed time,使的單條TCP連接使用更有效率。 減少頻繁tcp握手連接,關(guān)閉產(chǎn)生的報文對網(wǎng)絡(luò)的影響,因為不需要每一次的握手建立連接,減少了后續(xù)請求延遲。 錯誤信息反饋不需要關(guān)閉當(dāng)前TCP連接,再重新打開連接發(fā)送。發(fā)送錯誤信息后,連接依然維持 Connection:close 關(guān)閉連接,如果客戶端指向發(fā)送單次請求,然后關(guān)閉連接,則需要在頭信息里添加Connection:close。 持久化連接發(fā)送的消息必須寫到消息長度

5. Pipeline:客戶端順序發(fā)送請求,服務(wù)器按相同的順序發(fā)送回復(fù)。

pipeline消息只能建立在持久TCP連接上,并做好重發(fā)準(zhǔn)備,如果服務(wù)器沒有回復(fù)pipeline請求的所有消息,客戶端也應(yīng)該重發(fā)請求。 pipeline的請求必須是冪等的,

6. proxy:

對于代理,是分別和客戶端和服務(wù)器建立了持久的連接, 客戶端,服務(wù)器,代理需要能夠從不同的連接關(guān)閉事件中恢復(fù)。 客戶端需要重新打開連接,發(fā)送丟失的請求 服務(wù)端一個連接需要至少回復(fù)一個請求,在回復(fù)所有請求前,不應(yīng)該關(guān)閉連接 客戶端需要限制同時連接到服務(wù)器的請求N,一般限制為N=2個;代理則至多使用2N個連接 TCP流控制機制 flow control mechanism

7. 監(jiān)控連接錯誤信息:

當(dāng)接收到錯誤信息后,應(yīng)該立馬終止消息傳送; 當(dāng)以 chunk 編碼發(fā)送時,應(yīng)該發(fā)送一條長度為0的chunk,結(jié)合 empty trailer 來告知接收方消息的結(jié)束。 當(dāng)Content-length 頭信息存在時,客戶端需要立馬關(guān)閉連接

8. status:100

作用:用作客戶端在發(fā)送消息體之前,請求判斷消息接收端是否愿意接收消息(根據(jù)請求頭信息) 操作:客戶端需發(fā)送 Expect: 100-continue 附注:如果不需要發(fā)送消息體,則不要發(fā)送此頭信息 服務(wù)器端接收到包含 Expect: 100-continue 頭信息的請求時,需要立馬回復(fù)status 100,并繼續(xù)讀取消息,或者回復(fù)最終的消息狀態(tài)碼(之后可能終止連接或者接受并丟棄消息)。 一般來說,服務(wù)器不要回復(fù)100給未發(fā)送Expect: 100-continue頭信息的請求,及來自http/1.0版本的請求。 例外: http/1.1為了compatibility with RFC2068,對于put、post請求,服務(wù)器會添加100 回復(fù),以減少內(nèi)置等待100客戶端的處理延遲。 服務(wù)器: 服務(wù)器在接收到部分或者全部消息體時,可能會回復(fù)100。 服務(wù)器發(fā)送完100后,也必須最終發(fā)送最終處理狀態(tài)。 服務(wù)器接收完消息前,不能關(guān)閉連接 代理: 代理在能夠確定轉(zhuǎn)發(fā)服務(wù)器為http/1.1,或者不知道轉(zhuǎn)發(fā)服務(wù)器協(xié)議版本時,必須完整轉(zhuǎn)發(fā)包包含Expect: 100-continue頭信息的請求。 代理在能夠確定轉(zhuǎn)發(fā)服務(wù)器為http/1.0時,不能轉(zhuǎn)發(fā)此請求,并回復(fù)417狀態(tài)(expection field) 代理應(yīng)該緩存最近轉(zhuǎn)發(fā)的服務(wù)器的協(xié)議版本信息。 代理不應(yīng)該想使用http/1.0版本發(fā)送的未帶Expect: 100-continue頭信息的請求回復(fù)100狀態(tài)碼;

9. http/1.1 host 頭信息需求。

Options:為了在請求前獲取url請求路徑上的相關(guān)信息 200回復(fù),需要在頭信息中包含所有的服務(wù)器端對于請求資源支持的信息;Content-length需求。 Max-Forwards:指定到達(dá)請求臉上的某個代理,獲取相應(yīng)的信息,當(dāng)收到options請求時,代理需要檢查Max-Forwards字段,當(dāng)為0時,不能在轉(zhuǎn)發(fā)此消息,而需要返回自己的通訊選項信息。當(dāng)大于0,直接轉(zhuǎn)發(fā)請求。 不能中途添加此頭信息。 “conditional GET” if the request message includes an IfModified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field: 傳送滿足頭信息if條件的資源,減少網(wǎng)路傳輸 “partial GET” if the request message includes a Range header field. 獲取部分資源請求。 Head方法除了服務(wù)器回復(fù)信息不能包含消息體外,其它與GET一樣 PUT:存在更新,不存在創(chuàng)建 資源創(chuàng)建-》201,資源更新-》200 | 204 接收方不能忽略任何無法解析的Content-*頭信息,并且需要回復(fù)501(not implemented) 對比與POST,PUT請求的資源非常明確,如果需要處理額外的資源,需要服務(wù)器返回重定向 DELETE: 刪除資源,明確資源刪除回復(fù)200,204 if no response entity,請求接收,為執(zhí)行完,返回202(Accepted) TRACE: 測試,診斷路徑host,收到方需要將請求信息當(dāng)作消息體(Content-type:message/http)返回200 TRACE請求不能包含消息體 不能緩存 CONNECT: 代理建立通道使用 referer:告知從哪個地址鏈接過來的 Http:半雙工,單向流動,

其它:

輪訓(xùn):間隔的發(fā)送請求,獲取信息;處理低信息率情景,會浪費太多連接。 長輪訓(xùn):客戶端保持請求連接特定時間,直到請求的信息可用,或者到達(dá)超時時間,然后再重新發(fā)起連接。缺乏標(biāo)準(zhǔn)實現(xiàn)。 流化技術(shù):客戶端發(fā)送一個請求,服務(wù)端發(fā)送并維護(hù)一個持續(xù)更新和保持打開(設(shè)定時間)的響應(yīng)。pingpong;防火墻和代理影響。 TCP:全雙工。 websocket:自然的全雙工,雙向,單套接字連接。單一請求。

總結(jié)

以上是生活随笔為你收集整理的Http protocal的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。