1. 程式人生 > >HTTP知識點

HTTP知識點

計算機網路是學習計算機的一門重要學科,其中的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的三次握手,為什麼不是兩次或者四次?