1. 程式人生 > >深入http協議原理

深入http協議原理

對於Web開發者而言,掌握HTTP協議是技術成長的必經之路。只有夯實HTTP基礎,才可能在Web這條路上走的更遠。

網路協議分層

經典五層模型

圖片描述

  • 應用層

為應用軟體提供了很多服務構建於TCP協議之上遮蔽網路傳輸相關細節

  • 傳輸層

向用戶提供可靠的端到端(End-to-End)服務傳輸層向高層遮蔽了下層資料通訊的細節

  • 網路層

網路層為資料在結點之間傳輸建立邏輯鏈路

  • 資料鏈路層

資料鏈路層在通訊的實體間建立資料鏈路連線

  • 物理層

物理層主要作用是定義物理裝置如何傳輸資料

Http協議發展歷史

http/0.9

  • 只有一個命令GET
  • 沒有HEADER等描述資料的資訊
  • 伺服器傳送完畢,就關閉TCP連線

http/1.0

  • 增加了很多命令
  • 增加status code和header
  • 多字符集支援、多部分發送、許可權、快取等

http/1.1

  • 持久連線
  • pipeline
  • 增加host和其他一些命令

http2

  • 所有資料以二進位制傳輸
  • 同一個連線裡面傳送多個請求不再需要按照順序來
  • 頭資訊壓縮以及推送等提高效率的功能

HTTP的三次握手

圖片描述

URI、URL、URN

URI

  • Uniform Resource Identifier/統一資源標誌符

URL

  • Uniform Resource Locator/統一資源定位器
  • http://user:[email protected]:80/path?query=string#hash(此類格式的都叫做URL,比如ftp協議)

URN

  • 永久統一資源定位符
  • 在資源移動之後還能被找到
  • 目前還沒有非常成熟的使用方案