http權威指南-讀書筆記-1

資源

Web服務器是Web資源的容器。Web資源是Web內容的源頭。內容資源既能夠是靜態的Html,圖片,js也能夠是動態的腳本程序生成的內容。html

媒體類型

Web服務器會爲因此Http對象類型附加一個MIME類型,當Web瀏覽器從服務器中取回一個對象時,會先查看其相關的MIME的類型,查看是否能夠處理這個對象,瀏覽器能處理常見的數百種對象類型,例如,顯示圖片,播放音樂或者使用外部的軟件來處理特殊的格式web

MIME類型是一種文本標記,表示【主要對象/子類型】,中間經過斜槓來區分瀏覽器

  • html格式爲text/html緩存

  • 普通的ascii文本文檔爲text/plain性能優化

  • jpeg圖片爲image/jpeg類型服務器

  • gif圖片爲image/gif類型app

  • 潘哥的QuickTime視頻文件爲video/quicktime類型框架

  • 微軟的PowerPoint演示文件爲application/vnd.ms-powerpoint類型tcp

URI(統一資源標識符)

主要用來在互聯網上標識資源存在的路徑爲知的,相似顯示生活中的地址同樣
URI又分爲URL和URNide

URL 統一資源定位符,URL描述了一臺特定的服務器上某資源的特定位置。

cd923a5a-87b4-4883-bebf-ba12b2e56dbc.jpg
通常URL都遵循以下格式

  • URL第一部分稱爲方案,說明訪問資源使用的協議類型,例如:http://

  • 第二部分給出在互聯網上的位置,例如:www.joes-hardware.com

  • 剩下的部分指定了在該服務器上的某個資源,例如:/specials/saw-blade.gif

URN統一資源名,做爲特定的名稱訪問特定的內容,與資源地址無關,URN處於試驗階段,本文大部分試驗URL來作說明。

事務

一個HTTP事務由一條訪問請求命令和響應結果組成,簡單理解就是一次請求的往返。
圖片描述

方法

http支持幾種不一樣的請求命令,這些命令統稱爲http方法(http method),某個請求都包含一個方法,這些請求會告訴服務器執行什麼類型的動做。
常見的http方法

  • GET方法 從服務器向客戶端發送命名資源

  • PUT 未來自客戶端的數據存儲到一個命名服務器資源中去

  • DELETE 從服務器刪除命名資源

  • POST 將客戶端的發送的數據發送到一個服務器的網關應用程序(即PHP)

  • HEAD 僅發送命名資源響應中的HTTP頭部

狀態碼

每條http響應報文返回都會攜帶一個響應狀態碼,告知客戶端這次請求服務端處理的狀態
常見http的狀態碼
200 OK,請求成功,返回資源
302 Redirect(重定向),到其餘地方獲取數據資源
404 Not Found(招不到),沒法找到該資源

解釋性短語,每一個狀態碼都會附帶一條解釋性的文本短語,該短語主要用於描述而已

常見短語,下列短語不同,可是都是200的狀態描述

  • 200 ok

  • 200 Document attached

  • 200 Success

  • All`s cool, dude

Web頁面由多個對象組成

即一個Web頁面統稱由多個資源組成,即一個Web頁面有html、js、圖片、視頻等, 因此一個Web頁面不是簡單的當個資源,而是多個資源的集合

圖片描述

報文

http報文由純文本構成,不是二進制碼,因此很是方便人們閱讀(前提是學習http協議)

圖片描述
客戶端向服務器發送的http報文稱爲請求報文
從服務器想客戶端發送的http報文稱爲響應報文
除了上面兩種,沒有其餘的了
http請求報文和響應報文很相似,都包括下面三個部分

  • 起始行

    報文的第一行就是起始行,在`請求報文`中說明要作什麼,在`響應報文`中說明出現了什麼狀況
  • 首部字段

    起始行後面接零個或多個字段,每一個字段都帶有一個名字和值,造成鍵值對形式(key:value),首部由一個空行結束
  • 主體

    空行以後就是可選的報文主體了,包含了全部的數據類型。`請求主體`中包含了要發給服務器的數據,`響應主體`中裝載了要返回給客戶端的數據。
    起始行和首部字段都是由文本形式且都是結構化的數據,而主體不同,能夠包含`二進制`數據(例如圖片、視頻、音頻、程序),主體也能夠包含文本

簡單報文實例

下圖是一個簡單的報文請求實例,能夠看到請求報文中的請求中的請求起始行,請求首部,和響應報文中的響應起始行,響應首部和響應主體。

注意,這個請求報文使用的get方式,因此沒有請求主體!
注意,響應報文中Content-type: text/html即告訴瀏覽器該返回數據的主要對象(text)和子類型(html)

圖片描述

關於tcpip

tcpip的篇章很大,http權威只是簡單說了幾點,這裏就說下tcpip的特色,更多資料要查詢專門講tcpip的書籍

  • 無差錯的數據傳輸

  • 按序傳輸(數據老是按照發發送的順序到達)

  • 未分段的數據流(能夠在任意時刻以任意尺寸將數據發送出去)

http的協議版本

  • HTTP/0.9
    只支持GET方法,不支持多媒體MIME類型,各類HTTP首部或版本號,只是爲了實現獲取簡單HTML對象而已

  • HTTP/1.0
    第一個普遍使用的HTTP版本,新增了版本號,各類HTTP首部、額外的方法,及多媒體處理等

  • HTTP/1.0+(非官方的標準)
    新增了keep-alive鏈接,虛擬主機,代理鏈接支持

  • HTTP/1.1
    1.1的版本修正了HTTP設計的各類缺陷,引入重要的性能優化等,當前互聯網主流的版本

  • HTTP-NG(又名HTTP/2.0)
    繼1.1原型的建議,重點關注性能及強大的服務邏輯遠程執行框架,將來再說

Web的結構組件

上面說的都是兩個Web應用程序(客戶端瀏覽器和服務端Web服務器)兩者相互發報文來實現基本事務處理。其實在互聯網上要和不少Web應用程序交互,還有其餘的應用程序

  • 代理
    位於客戶端和服務器之間的http中間實體

  • 緩存
    http倉庫,使常常被訪問的網頁能夠保存在離客戶端更近的地方

  • 網關
    鏈接其餘應用程序的特殊Web服務器

  • 隧道
    對http報文進行盲裝發的特殊代理

  • Agent代理髮起自動http請求的半智能web客戶端

相關文章
相關標籤/搜索