深入http協議原理
阿新 • • 發佈:2018-12-11
對於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
- 永久統一資源定位符
- 在資源移動之後還能被找到
- 目前還沒有非常成熟的使用方案