HTTP權威指南Ch1-HTTP概述 筆記

第一章 HTTP概述
1.1 HTTP-因特網的多媒體信使
HTTP 是一種可靠的數據傳輸協議
研究HTTP是如何傳輸Web流量的
1.2 Web客戶端和服務器
HTTP客戶端和HTTP服務器共同構成了萬維網的基本組件
1.3 資源
Web服務器是Web資源的宿主,資源有靜態的的動態生成的
每種資源都打上了名為MIME的類型的數據格式標簽,表示一種主要的對象類型和一個特定的子類型
每個資源都有一個名字,稱為URI,有URL和URN兩種形式
1.4 事務
一個HTTP事務由一條請求命令和一個響應結果組成,這種通信通過名為HTTP報文的格式化數據塊進行
請求命令包含5種常見的HTTP方法,告訴服務器要執行什么操作。響應報文包含一些常見的狀態碼
完成一項任務通常需要發布多個HTTP事務
1.5 報文
HTTP報文包含請求報文和響應報文,都是純文本,不是二進制代碼,方便人讀寫。良可擴展性和可調式性
HTTP報文包含三部分:起始行(做什么,出現什么情況),首部字段(參數),主體(發送/返回數據)。起始行和首部字段都是文本形式且都是結構化的,而主體可以包含任何二進制數據(圖片,視頻,音軌,軟件等)
1.6 連接
HTTP是一個應用層協議,它把聯網的細節交給了通用,可靠的的因特網傳輸協議TCP/IP,自身不關心網絡通信的具體細節
TCP 連接建立后,就使得客戶端和服務器間報文的交換不會丟失,不會被破壞,也不會再接受時出現錯序。
客戶端向服務器發送報文之前,需要用網際協議(IP)地址和端口號在客戶端和服務器間建立一條TCP/IP連接。通過域名服務(DNS)的機制方便的將主機名轉換為IP地址。
Telnet可以很好模擬HTTP客戶端,但是不能作為服務器使用,netcat工具可以更方便的操縱基于UDP和TCP的流量
1.7 協議版本
HTTP/0.9只支持GET方法,有很多嚴重的設計缺陷;HTTP/1.0版本才開始廣泛使用,但規范從未得到良好的說明;HTTP/1.0+增加了各種特性,成為非官方的事實標準;HTTP/1.1校正了HTTP設計中的結構缺陷,是當前使用版本;目前HTTP/2.0草案正在審核中
1.8 Web的結構組件
代理代表用戶訪問服務器,可能會對請求進行修改之后轉發,可以對請求和響應進行過濾。一般作為轉發所有Web流量的可信任中間節點使用。參見第6章
Web緩存或代理緩存是一種特殊的HTTP代理服務器,可以將代理傳送的常用文檔復制保存起來,客戶端從附近的緩存下載文檔會比從遠程的Web服務器下載快很多。參見第7章
網關是一種特殊的服務器,通常用于將HTTP流量轉換成其他的協議。參見第8章
隧道是建立起來后,會在兩條連接之間對原始數據進行盲轉發的HTTP應用程序,轉發時不會窺探數據。常見用途是通過HTTP連接承載加密的安全套接字層流量。
Agent代理是代表用戶發起HTTP請求的客戶端程序,所有發布Web請求的應用程序都是HTTP Agent代理,如Web瀏覽器,爬蟲等。參見第9章