HTTP知識點
阿新 • • 發佈:2018-12-09
計算機網路是學習計算機的一門重要學科,其中的HTTP知識更是前端的重要知識,這裡不僅體現在前後端互動會用到,而且一些快取,優化也大多是跟這裡的相關,不過由於我本人在學習這些的知識上還未深入理解,所以這裡只是先記錄我最近所學到的知識,以後有機會深入研究再做補充。
1)理解計算機網路中的一些知識點對於我們後續學習HTTP會有更大的幫助。在計算機網路中,有一個很經典的五層模型:
- 物理層:主要定義物理裝置如何傳輸資料
- 資料鏈路層:在通訊的實體間建立資料鏈路連結
- 網路層:為資料在結點之間的傳輸建立邏輯鏈路
- 傳輸層(tcp,udp...):向用戶提供了可靠的端到端服務,同時向高層遮蔽了下層資料通訊的細節
- 應用層(http,ftp...):為應用軟體提供了很多服務,構建於TCP之上,遮蔽網路傳輸的相關細節
這裡的HTTP就屬於應用層
2)HTTP的發展歷史
- HTTP/0.9:只有一個命令,沒有傳送HEADER等描述資料的資訊,伺服器傳送完畢,就關閉TCP連線
- HTTP/1.0:增加了很多命令,增加了status code和header,多字符集支援、多部分發送、許可權、快取等
- HTTP/1.1:增加了持久連線,pipeline和host和其他一些命令
- HTTP/2.0:所有資料以二進位制的形式傳輸,同一個連線裡傳送多個請求不再需要按照順序來,頭資訊壓縮以及推送等提高效率的功能
3)HTTP與TCP關係:
HTTP只能在瀏覽器和伺服器中其傳送和接受的作用,需要通過TCP來建立連線
4)URI、URL、URN之間的關係
- URI
- 定義:Uniform Resource Identifier,即統一資源識別符號
- 作用:用來唯一標識網際網路上的資訊資源
- URL
- 定義:Uniform Resource Locator,即統一資源定位器
- URN(不深入)
- 定義:永久統一資源定位符
- 作用:在資源移動後還能被找到
- 目前還未有成熟的使用方案
5)HTTP報文
- 分類
- 請求報文
- 響應報文
- 報文格式
- 起始行(注意:請求報文中的methods要與後面的有一個空格)
- 首部
- 主體
(注意:首部和主體之間需要空一行)
與這個話題中的常見考點:
1)輸入一個url背後進行的過程?
2)TCP的三次握手,為什麼不是兩次或者四次?