HTTP第三篇 HTTP 報文內的HTTP 信息

概念:

用於 HTTP 協議交互的信息被稱爲 HTTP 報文。請求端(客戶端)的 HTTP 報文叫做請求報文,響應端(服
務器端)的叫做響應報文。HTTP 報文本身是由多行(用 CR+LF 作換行符)數據構成的字符串文本。
 
HTTP 報文大致可分爲報文首部和報文主體兩塊。兩者由最初出現的空行(CR+LF)來劃分。通常,並不一
定要有報文主體。
 
首部字段:包含表示請求和響應的各種條件和屬性的各類首部。
 
報文主體:作爲請求或響應傳輸的有效載荷數據(內容)。
 
1.請求報文及響應報文的結構:
 
        
 
2.請求報文(上)和響應報文(下)的實例
 
        
 
 
3.編碼提升傳輸速率
     (1)HTTP 在傳輸數據時可以按照數據原貌直接傳輸,但也可以在傳輸過程中通過編碼提升傳輸速率。通過在傳
輸時編碼,能有效地處理大量的訪問請求。但是,編碼的操作需要計算機來完成,因此會消耗更多的 CPU
資源。常用的內容編碼有以下幾種。
        ①gzipGNU zip
        ②compressUNIX 系統的標準壓縮)
        ③deflatezlib
        ④identity(不進行編碼)
 
   (2)分割發送的分塊傳輸編碼   
         在 HTTP 通信過程中,請求的編碼實體資源尚未全部傳輸完成之前,瀏覽器無法顯示請求頁面。在傳輸大容 量數據時,通過把數據分割成多塊,能夠讓瀏覽器逐步顯示頁面。 這種把實體主體分塊的功能稱爲分塊傳輸編碼(Chunked Transfer Coding)。使用分塊傳輸編碼的實體主體會由接收的客戶端負責解碼,恢復到編碼前的實體主體。
 
         

4.內容協商返回最合適的內容

           同一個 Web 網站有可能存在着多份相同內容的頁面。比如英語版和中文版的 Web 頁面,它們內容上雖相 同,但使用的語言卻不同。 當瀏覽器的默認語言爲英語或中文,訪問相同 URI Web 頁面時,則會顯示對應的英語版或中文版的 Web 頁面。這樣的機制稱爲內容協商(Content Negotiation)。
           內容協商機制是指客戶端和服務器端就響應的資源內容進行交涉,然後提供給客戶端最爲適合的資源。內容
協商會以響應資源的語言、字符集、編碼方式等作爲判斷的基準。
           包含在請求報文中的某些首部字段(如下)就是判斷的基準。
               ① Accept
               ② Accept-Charset
               ③ Accept-Encoding
               ④ Accept-Language
               ⑤ Content-Language
            
          內容協商技術有以下 3 種類型。
              ①服務器驅動協商(Server-driven Negotiation
          由服務器端進行內容協商。以請求的首部字段爲參考,在服務器端自動處理。但對用戶來說,以瀏覽器發送 的信息作爲判定的依據,並不一定能篩選出最優內容。
              ②客戶端驅動協商(Agent-driven Negotiation
          由客戶端進行內容協商的方式。用戶從瀏覽器顯示的可選項列表中手動選擇。還可以利用 JavaScript 腳本在 Web 頁面上自動進行上述選擇。比如按 OS 的類型或瀏覽器類型,自行切換成 PC 版頁面或手機版頁面。
              ③透明協商(Transparent Negotiation
          是服務器驅動和客戶端驅動的結合體,是由服務器端和客戶端各自進行內容協商的一種方法。       
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章