




已閱讀5頁,還剩14頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2 6Http交互的宏觀運行原理 2 6 1請求 響應協議HTTP協議是基于請求 響應模式的 客戶機向服務器發送請求 RequestRequest 絕大多數的HTTP通信都是由客戶發起的 包含一個作用于服務器上某個資源的請求 例如下載服務器上的文件 請求包含以下內容 請求方法 method 例如 get 統一資源標識符 URI 例如 2 6Http交互的宏觀運行原理 續 服務器向客戶發送響應 ResponseResponse 服務器在收到客戶的請求后 按照客戶的要求對指定資源進行適當處理 例如檢索到客戶所需的文件 并給予相應的響應 響應包含以下內容 一個狀態行 包括 消息的協議版本號 version 一個成功或錯誤的狀態碼 successorerrorcode MIME格式的消息 服務器信息 serverinformation 實體元信息 meta information 還可能會有實體的正文內容 bodycontent 2 6Http交互的宏觀運行原理 續 2 6 2客戶與服務器通信的三種方式 直接通信 DirectCommunicationDirectCommunication 這種方式是一種最簡單的情況 通過用戶代理 UA 和源服務器 O 之間的單個連接來完成 如圖所示 2 6Http交互的宏觀運行原理 續 通過中介的HTTP通信中介有三種常見的形式 代理代理 Proxy 網關網關 Gateway 和隧道隧道 Tunnel Proxy Proxy是一種將請求轉發 forwarding 的代理 agent 接收客戶的請求 在對該請求進行局部或者全部的修改后 將請求轉發給URI所指示的服務器 服務器把響應發回給Proxy Proxy然后把響應再發給客戶端 2 6Http交互的宏觀運行原理 續 通過中介的HTTP通信 續 Gateway Gateway是一種接收 receiving 代理 通常作為兩類服務器 e g Web和Email 的中介 將一類服務器所支持的協議翻譯為另一類服務器所支持的協議 示例 HTTP POP3網關在收到客戶的請求 HTTP協議 時 對其進行轉換 并以其它協議 POP3 的格式提交給POP3服務器 當收到POP3服務器的響應后 將其以HTTP的格式返回給客戶 Tunnel Tunnel是兩個連接之間的中繼系統 與Proxy和Gateway不同 它不對HTTP消息作任何修改 當客戶與服務器的通信需要通過防火墻 firewall 等中介系統時 就可以使用Tunnel 2 6Http交互的宏觀運行原理 續 通過中介的HTTP通信 續 通常 可以以任意的方式來組合各種中介系統 從而構成不同的應用解決方案 如圖所示 在用戶代理 UA 和源服務器 O 之間有三個中介 A B和C 一個通過整個鏈的請求或響應消息必須經過四個獨立的連接 盡管該圖中的連接是線性的 事實上 每個參與者都可能進行多重的 并發的通訊 例如 B還可以從其它許多客戶機接收請求 而不僅僅局限于A 并將這些請求傳送給其它的服務器 而不僅僅局限于C 這些工作可以同時以并發的方式完成 2 6Http交互的宏觀運行原理 續 2 6Http交互的宏觀運行原理 續 使用緩存的HTTP通信在HTTP通信中的任何一個成員 包括 客戶代理 服務器 中介 除隧道外 均可以采用內部的緩存來處理客戶請求 如果HTTP通信鏈中的一個成員已經對某個請求的響應進行了緩存 那么它就不再將該請求向前傳遞 而直接將響應返回給用戶 從而縮短請求 響應鏈 優點 這樣的處理方式能減少請求 響應鏈路上的網絡負載 提高響應速度 在用戶經常提出同樣的請求 或者多個用戶具有類似請求的情況下 該方式非常有用 例如 公司的Intranet上 或者校園網的網絡中心 都可以設置Proxy 對于大家經常下載的公用軟件和資料 可以直接從Proxy上獲得 這樣可以加快下載速度 降低網絡費用 2 6Http交互的宏觀運行原理 續 下圖是針對一個未被UA或A所緩存的請求 而B中曾經對該請求的響應進行過緩存 B之所以會對該請求進行緩存 可能是該用戶或其它用戶在以前提交過同樣的請求 2 7Http交互的內部操作過程 2 7 1基于網絡層的HTTP交互過程HTTP是應用層協議 它從應用的角度規定了客戶和服務器在通信時的消息格式和語義 而它的實現必須建立在其下的網絡層之上 下面 以Socket這一最常用的網絡層編程接口為例來說明客戶和服務器是如何通過網絡層來實現HTTP交互 整個過程包括四個步驟 建立連接 發送請求 發送響應 關閉連接 2 7Http交互的內部操作過程 續 建立連接HTTP服務器始終在HTTP端口守候客戶的連接要求 客戶打開一個套接字 Socket 并把它綁定在一個隨機選擇的端口上 然后通過該套接字向服務器的HTTP端口發出連接要求 當有一個連接要求到達時 服務器生成一個新的套接字 然后產生一個新的過程或線程來處理用戶的請求 2 7Http交互的內部操作過程 續 建立連接 續 2 7Http交互的內部操作過程 續 發送請求在客戶和服務器成功建立連接后 客戶機可以使用Socket接口中的send write等API將請求消息發送出去 而服務器則可以使用Socket接口中的recv read等API來接收請求消息 發送響應服務器在處理完客戶的請求后 要向客戶機發送響應消息 此時可使用Socket接口中的send write等API將響應消息發送出去 而客戶則使用Socket接口中的recv read等API來接收響應消息 注意 將客戶的請求和服務器的響應正確地發送給對方是網絡層的任務 而為了確保客戶和服務器能夠正確地理解對方傳遞的消息則是HTTP這一應用層協議的任務 即需要規定客戶和服務器雙方所發送消息的格式和語義 2 7Http交互的內部操作過程 續 關閉連接在一次請求 響應完畢后 客戶和服務器雙方都可以通過關閉套接字來結束HTTP交互 HTTP 1 0中僅支持非持久連接 因此 在一次請求 響應完畢后 客戶或服務器將通過關閉套接字來結束HTTP交互 在HTTP 1 1中 連接的缺省類型為持久連接 即在客戶與服務器建立連接后 可以發送多個請求和響應 直到客戶或者服務器顯式地關閉該連接 之后 客戶在發送新的請求之前 必須與服務器重新建立連接 使用持久連接具有以下優點 節省宿主機的開銷 減少用戶的等待時間 將減少網絡流量 緩解網絡堵塞 客戶的請求和服務器的響應可以以流水線 pipeline 的方式運作 這樣可以提高連接的使用效率 減少用戶的等待時間 2 7Http交互的內部操作過程 續 2 2一個實際的例子下面 我們給出一個實際的例子 通過分析客戶 服務器在HTTP交互中發送的數據包來進一步說明HTTP作為一個網絡層之上的應用是如何利用TCP IP協議所提供的可靠通信服務的 2 7Http交互的內部操作過程 續 說明 在實際情況下 上述數據包是相互混雜的 此處為了清晰起見 將它們分開列出 2 7Http交互的內部操作過程 續 2 7Http交互的內部操作過程 續 從該例子中可以看出 兩個TCP連接是獨立的 它們在各自的數據傳輸完畢后分別結束 客戶與服務器的交互過程中 除了傳輸的HTML文件和圖像文件是有效負載以外 其它的數據包是為了傳輸文件而發送的額外負載 即使不傳輸任何文件 客戶和服務器之間為了建立和關閉連接至少需要交換7個數據包 這占據HTTP協議開銷中的一大部分 2 7Http交互的內部操作過程 要求 能力宏觀上掌握HTTP協議運作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養魚合作協議書合同
- 甲方解除租賃合同協議書
- 生產安全承包合同協議書
- 餐飲食材配送合同協議書
- 關注女性健康,提升生命質量課件
- 終止合同協議書條件
- 護考培訓開班宣教
- 合同詐騙協議書
- 企業廚師合同協議書范本
- 住家保姆合同協議書
- GB∕T 37370-2019 中國常見色色名和色度特性
- 冀教英語六年級下冊作文范文
- Continual Improvement持續改進程序(中英文)
- 10x2000對稱式三輥卷板機設計機械畢業設計論文
- RCA應用于給藥錯誤事情的分析結果匯報
- 申論答題紙-方格紙模板A4-可打印
- 土石方測量方案完整版
- 律師事務所勞動合同范本2(律師助理和實習律師參照適用
- 施工單位動火申請書內容
- 焊條電弧焊基礎知識二
- 不銹鋼板墻面施工工藝
評論
0/150
提交評論