3 項 WWW 構建技術,分別是:把 SGML(Standard Generalized Markup Language,標準通用標記語言)做爲頁面的文本標記語言的瀏覽器
HTML(HyperText Markup Language,超文本標記語言);做爲文檔傳遞協議的 HTTP ; 指定文檔所在地址的安全
URL(Uniform Resource Locator,統一資源定位符)服務器
HTTP/0.9 HTTP 於1990 年問世。那時的 HTTP 並無做爲正式的標準被創建。如今的 HTTP 其實含有 HTTP1.0 以前版本的意思,所以被稱爲HTTP/0.9。網絡
HTTP/1.0 HTTP 正式做爲標準被公佈是在 1996 年的 5 月,版本被命名爲HTTP/1.0,並記載於 RFC1945。雖然說是初期標準,但該協議標準至今仍被普遍使用在服務器端。ide
HTTP/1.1 1997 年 1 月公佈的 HTTP/1.1 是目前主流的 HTTP 協議版本。當初的標準是 RFC2068,以後發佈的修訂版 RFC2616 就是當前的最新版本。編碼
HTTP/2.0 主要技術方向加密
應用層:決定了向用戶提供應用服務時通訊的活動。TCP/IP 協議族內預存了各種通用的應用服務。好比,FTP(FileTransfer Protocol,文件傳輸協議)和 DNS(Domain Name System,域名系統)服務就是其中兩類。HTTP 協議也處於該層。spa
傳輸層:傳輸層對上層應用層,提供處於網絡鏈接中的兩臺計算機之間的數據傳輸。在傳輸層有兩個性質不一樣的協議:TCP(Transmission ControlProtocol,傳輸控制協議)和 UDP(User Data Protocol,用戶數據報協議)。操作系統
網絡層:用來處理在網絡上流動的數據包。數據包是網絡傳輸的最小數據單位。該層規定了經過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把數據包傳送給對方。與對方計算機之間經過多臺計算機或網絡設備進行傳輸時,網絡層所起的做用就是在衆多的選項內選擇一條傳輸路線3d
數據鏈路層:用來處理鏈接網絡的硬件部分。包括控制操做系統、硬件的設備驅動、NIC(Network Interface Card,網絡適配器,即網卡),及光纖等物理可見部分(還包括鏈接器等一切傳輸媒介)。硬件上的範疇均在鏈路層的做用範圍以內
利用 TCP/IP 協議族進行網絡通訊時,會經過分層順序與對方進行通訊。發送端從應用層往下走,接收端則往應用層往上走。
舉例來講明,首先做爲發送端的客戶端在應用層(HTTP 協議)發出一個想看某個 Web 頁面的 HTTP 請求。
接着在傳輸層(TCP 協議)把從應用層處收到的數據(HTTP 請求報文)進行分割,並在各個報文上打上標記序號及端口號後轉發給網絡層。
在網絡層(IP 協議),增長做爲通訊目的地的 MAC 地址後轉發給鏈路層。
接收端的服務器在鏈路層接收到數據,按序往上層發送,一直到應用層。當傳輸到應用層,才能算真正接收到由客戶端發送過來的 HTTP請求
發送端在層與層之間傳輸數據時,每通過一層時一定會被打上一個該層所屬的首部信息。反之,接收端在層與層傳輸數據時,每通過一層時會把對應的首部消去。這種把數據信息包裝起來的作法稱爲封裝。
IP 協議的做用是把各類數據包傳送給對方。而要保證確實傳送到對方那裏,則須要知足各種條件。其中兩個重要的條件是 IP 地址和 MAC地址(Media Access Control Address)
IP 地址指明瞭節點被分配到的地址,MAC 地址是指網卡所屬的固定地址。IP 地址能夠和 MAC 地址進行配對。IP 地址可變換,但 MAC地址基本上不會更改。使用 ARP 協議憑藉 MAC 地址進行通訊IP 間的通訊依賴 MAC 地址。
在網絡上,通訊的雙方在同一局域網(LAN)內的狀況是不多的,一般是通過多臺計算機和網絡設備中轉才能鏈接到對方。而在進行中轉時,會利用下一站中轉設備的 MAC地址來搜索下一個中轉目標。這時,會採用 ARP 協議(AddressResolution Protocol)。ARP 是一種用以解析地址的協議,根據通訊方的 IP 地址就能夠反查出對應的 MAC 地址---------這種機制稱爲路由選擇
TCP 位於傳輸層,提供可靠的字節流服務。所謂的字節流服務(Byte Stream Service)是指,爲了方便傳輸,將大塊數據分割成以報文段(segment)爲單位的數據包進行管理
爲了準確無誤地將數據送達目標處,TCP 協議採用了三次握手
握手過程當中使用了 TCP 的標誌(flag) —— SYN(synchronize) 和ACK(acknowledgement)
發送端首先發送一個帶 SYN 標誌的數據包給對方。接收端收到後,回傳一個帶有 SYN/ACK 標誌的數據包以示傳達確認信息。最後,發送端再回傳一個帶 ACK 標誌的數據包,表明「握手」結束。若在握手過程當中某個階段莫名中斷,TCP 協議會再次以相同的順序發送相同的數據包
URL(UniformResource Locator,統一資源定位符)URL 正是使用 Web 瀏覽器等訪問 Web 頁面時須要輸入的網頁地址
URI(統一資源標識符):URI 就是由某個協議方案表示的資源的定位標識符。協議方案是指訪問資源所使用的協議類型名稱
HTTP/1.1 和一部分的 HTTP/1.0 想出了持久鏈接(HTTP Persistent Connections,也稱爲 HTTP keep-alive 或HTTP connection reuse)的方法。持久鏈接的特色是,只要任意一端沒有明確提出斷開鏈接,則保持 TCP 鏈接狀態
持久鏈接使得多數請求以管線化(pipelining)方式發送成爲可能。從前發送請求後需等待並收到響應,才能發送下一個請求。管線化技術出現後,不用等待響應亦可直接發送下一個請求
HTTP 報文大體可分爲報文首部和報文主體兩塊。二者由最初出現的空行(CR+LF)來劃分。一般,並不必定要有報文主體
-報文(message)是 HTTP 通訊中的基本單位,由 8 位組字節流(octet sequence,其中 octet 爲 8 個比特)組成,經過 HTTP 通訊傳輸。
-實體(entity)做爲請求或響應的有效載荷數據(補充項)被傳輸,其內容由實體首部和實體主體組成。
HTTP 報文的主體用於傳輸請求或響應的實體主體。
壓縮傳輸的內容編碼
經常使用的內容編碼有如下幾種
gzip(GNU zip)
compress(UNIX 系統的標準壓縮)
deflate(zlib)
identity(不進行編碼)
分割發送的分塊傳輸編碼
通用首部字段(General Header Fields)
請求報文和響應報文兩方都會使用的首部。
請求首部字段(Request Header Fields)
從客戶端向服務器端發送請求報文時使用的首部。補充了請求的附加
內容、客戶端信息、響應內容相關優先級等信息。
響應首部字段(Response Header Fields)
從服務器端向客戶端返回響應報文時使用的首部。補充了響應的附加
內容,也會要求客戶端附加額外的內容信息。
實體首部字段(Entity Header Fields)
針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更
新時間等與實體有關的信息。
HTTP 主要有這些不足,例舉以下
HTTP+ 加密 + 認證 + 完整性保護
=HTTPS
經過和 SSL(Secure Socket Layer,安全套接層)或TLS(Transport Layer Security,安全層傳輸協議)的組合使用,加密 HTTP 的通訊內容。用 SSL 創建安全通訊線路以後,就能夠在這條線路上進行 HTTP通訊了。與 SSL 組合使用的 HTTP 被稱爲 HTTPS(HTTPSecure,超文本傳輸安全協議)或 HTTP over SSL
報文完整性的方法,但事實上並不便捷、可靠。其中經常使用的是 MD5 和 SHA-1 等散列值校驗的方法