網路概論 第8章 HTTP通訊協定
大 綱 8-1 HTTP的運作 8-2 Web的進一步探討 8-3 HTTP未來的發展
8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 提出要求/回應對話溝通
8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 陽春的HTTP/0.9 8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 陽春的HTTP/0.9 主要是用來傳送超文件檔案,因此只支援傳送文字檔,用上述的方式一次傳送一個HTML檔案。 訊息沒有什麼格式,用戶端只須送出一列GET指令並指明檔案的路徑,在找不到檔案時回覆一個HTML檔在用戶端顯示錯誤訊息。 伺服器與用戶端之間沒有溝通方式
8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 強化溝通的HTTP/1.0 8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 強化溝通的HTTP/1.0 確定伺服器與瀏覽器間訊息交換的機制,並增加交換資訊的溝通能力。 詳細定義Request及Response訊息表頭及內容格式,包含: (1)Request與Response訊息的使用方式。 (2)提供雙方交換資訊的方法 (Method):GET、HEAD、POST等三個指令,以及PUT、DELETE、LINK、UNLINK等四個附加的指令。 (3)編列回應狀態碼,讓伺服器能夠詳細回覆處理的情形。 提供快取功能 加入在電子郵件上的MIME (Multipurpose Internet Mail Exchange) 規格,支援多樣化格式的檔案。
8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 強化溝通的HTTP/1.0
8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 普遍的標準HTTP/1.1 加強快取 (Cache) 功能 傳送頻寬的控制 8-1 HTTP的運作 8-1-1 基本原理與訊息傳遞 普遍的標準HTTP/1.1 加強快取 (Cache) 功能 傳送頻寬的控制 改善連線管理機制 增加摘要式驗證 狀態管理 內容協調
8-1 HTTP的運作 8-1-2 快取機制 下載的資源未變,則不需再從伺服器傳送。 降低頻寬浪費、網路擁塞及伺服器的負載。 8-1 HTTP的運作 8-1-2 快取機制 下載的資源未變,則不需再從伺服器傳送。 降低頻寬浪費、網路擁塞及伺服器的負載。 伺服器網頁的有效期限,提供給瀏覽器判斷是否至快取讀取網頁。 Cache control指令協調雙方執行快取功能。 Entity標籤解決時間同步問題,避免快取誤判。 條件式的要求 用戶端以”If-Modified-Since”訊息提出需求。 伺服器端,若網頁未更新:只回應未變更狀態,不回傳網頁。 若網頁已更新:回傳OK狀態及網頁內容。
8-1 HTTP的運作 8-1-2 快取機制 條件式的要求(Conditional Request)
8-1 HTTP的運作 8-1-3 連線管理機制 持續性連線
8-1 HTTP的運作 8-1-3 連線管理機制 多管線傳遞資訊
8-1 HTTP的運作 8-1-4 安全與驗證 狀態管理--Cookies(HTTP協定的延伸規格) 瞭解用戶端目前使用服務狀態的關鍵 8-1 HTTP的運作 8-1-4 安全與驗證 狀態管理--Cookies(HTTP協定的延伸規格) 瞭解用戶端目前使用服務狀態的關鍵 Cookies置於用戶端,伺服器可透過瀏覽器瞭解用戶端目前的狀態。(例如網路購物的購物車) 以URI限制伺服器讀取用戶端的Cookies內容 Cookies內容多為敏感性資料,故隱含有個人私密及安全性問題。
8-1 HTTP的運作 8-1-4 安全與驗證 摘要式驗證 8-1 HTTP的運作 8-1-4 安全與驗證 摘要式驗證 HTTP/1.0的存取控制使用基本驗證(挑戰/回應),但是帳號密碼在網路傳送卻未加密。 伺服器對於用戶端的驗證利用每次不同且只使用一次的數值(nonce值,MD5格式) 使用者輸入帳號密碼後,瀏覽器計算出一個MD5值傳回給伺服器驗證。 伺服器的nonce值隨時間不同,驗證過的用戶端再來存取資源時,瀏覽器只要重新計算一次MD5數值給伺服器,不需要使用者再輸入帳號密碼。 不需傳送帳號密碼就能驗證用戶資格
8-1 HTTP的運作 8-1-4 安全與驗證 摘要式驗證
8-2 Web的進一步探討 8-2-1 網站伺服器(Web Server) 管理網頁資源的主機 將URL與本地端檔案系統對應 執行至少一個網頁伺服器程式與瀏覽器溝通 網頁伺服器程式接受HTTP要求並回應給請求者 相同溝通語言(HTTP)連結不同的伺服器與瀏覽器 網頁服務軟體:Apache(NCSA、Apache軟體基金會)、IIS(微軟)、Sun ONE(昇陽)…等。
8-2 Web的進一步探討 8-2-1 網站伺服器(Web Server) 管理網頁資源的主機
8-2 Web的進一步探討 8-2-1 網站伺服器(Web Server) 虛擬主機 現在的伺服器可以設定多個主機名稱 (Host Name),也就是一部主機若有多個網站,可以分別設為不同的網址,這與DNS通訊協定有關,我們在介紹DNS時會詳細說明,目前只要知道有這麼回事,就像一個人可以有許多外號暱稱一樣。因此,以GET之後是要讀哪個網站的index.htm檔案呢?所以HTTP/1.1在Request表頭增加了主機名稱 (HOST) 的欄位,用來指明是要讀哪個網站的檔案。
8-2 Web的進一步探討 8-2-1 網站伺服器(Web Server) 虛擬主機
8-2 Web的進一步探討 8-2-2 代理伺服器 我們在快取機制裡有提到,在需求/回應的訊息交換路徑上,可能有許多中間的設備轉送訊息,其中一個重要的設備就是代理伺服器 (Proxy Server) 了,它位在用戶端與伺服器之間,執行一個稱為代理程式的軟體,且伺服器內配備有相當大的硬碟空間做為暫存網頁之用。
8-2 Web的進一步探討 8-2-3 內容散布網路 內容散布網路 (Content Distribution Networks) 是在1998年由美國一群研究生,觀察網際網路流量模式分析後,因應這種需要而誕生的,它是架構在目前網際網路實體上的一種邏輯性的覆蓋式網路 (Overlay Networks, ONs)。
8-3 HTTP未來的發展 下一代的HTTP協定(HTTP-NG,HTTP Next Generation) 主要目標有: 8-3 HTTP未來的發展 下一代的HTTP協定(HTTP-NG,HTTP Next Generation) 主要目標有: 建立簡單及模組化的三層架構 (Message Transport、Remote Invocation、Web Application) 充分支援Web的各類擴充應用 提升通訊協定本身在網路傳輸的效能及彈性化的訊息傳送等