圖解http學習筆記1.網絡基礎

網絡基礎

http介紹

在web browser(網頁瀏覽器)的地址欄中輸入URL後,web browser會去從web服務器獲取文件資源等信息,然後顯示web頁面。像這種通過獲取服務器資源的web browser都可以稱爲client(客戶端)。

HTTP(HyperText Transfer Protocol,超文本傳輸協議)。web是建立在HTTP協議上通信的。

WWW(World Wide Web,萬維網),三項構建技術:把SGML(Standard Generalized Markup Language,標準通用標記語言)作爲頁面的文本標記語言的HTML(HyperText Markup Language,超文本標記語言);作爲文檔傳遞協議的HTTP;作爲文檔所在地址的URL(Uniform Resource Locator,統一資源定位符)。

TCP/IP基礎

通常使用的網絡是在TCP/IP協議族的基礎上運作的,HTTP是其內部一個子集。

TCP/IP協議族

計算機與網絡設備相互通信需基於相同的方法。不同的硬件,操作系統之間的通信,所有的一切都需要一種規則。這種規則被稱爲protocol(協議)。

把與互聯網相關聯的協議集合起來的總稱就是TCP/IP。

TCP/IP的分層管理

TCP/IP協議按層次分爲4層:應用層,傳輸層,網絡層,數據鏈路層。

TCP/IP層次化後,每當修改後只需要改變相應的層即可。

各層次作用:

  1. 應用層

決定了向用戶提供應用服務時通信的活動

TCP/IP協議族內預存了各類通用的應用服務。如FTP(File Transfer Protocol,文件傳輸協議)和DNS(Domain Name System 域名系統)

HTTP協議也屬於該層

  1. 傳輸層

傳輸層對上層應用層,提供處於網絡連接中的兩臺計算機之間的數據傳輸。

在傳輸層有兩個性質不同的協議:TCP(Transmission Control Protocol, 傳輸控制協議)和UDP(User Data protocol,用戶數據報協議)

  1. 網絡層(網絡互連層)

網絡層處理在網絡上流動的數據包。數據包是網絡傳輸的最小數據單位。該層規定了傳輸路徑。

與對方計算機之間通過多臺計算機或網絡設備進行傳輸時,網絡層所起作用:在衆多的選項內選擇一條傳輸路線。

  1. 鏈路層(數據鏈路層/網絡接口層)

用來處理連接網絡的硬件部分。包括控制操作系統、硬件的設備驅動、NIC(Network Interface Card,網絡適配器,即網卡)、光纖等物理可見部分(還包括連接器等一切傳輸媒介)。硬件上的範疇都在鏈路層的作用範圍內

TCP/IP通信傳輸流

利用TCP/IP協議族進行網絡通信時,會通過分層順序與對方進行通信。發送端從應用層往下走,接收端則往應用層上走。

HTTP爲例:作爲發送端的客戶端在應用層(HTTP協議)發出一個想看某個Web頁面的HTTP請求,在傳輸層(TCP協議)把應用層處收到的數據(HTTP請求報文)進行分割,並在各個報文上打上標記序號及端口號後轉發給網絡層。在網絡層(IP協議)增加作爲通信目的地的MAC地址後轉發給鏈路層。接受端的服務器在鏈路層接收到數據,按序往上層發送直到應用層。當傳輸到應用層,才能算接收到由客戶端發送過來的HTTP請求。

發送端在層與層之間傳輸數據時,每經過一層會被打上一個該層所屬的首部信息。反之接受時,消去。

這種把數據信息包裝起來的做法稱爲封裝(encapsulate)。

IP、TCP、DNS

負責傳輸的IP協議

按層次分,IP(Internet Protocol)網際協議位於網絡層。幾乎所有使用網絡的系統都會用到IP協議。TCP/IP協議族中的IP指的就是網際協議。

IP協議的作用是把各種數據包傳送給對方。爲保證確實傳送到對方那裏,則需要滿足各類條件。最重要的條件是IP地址和MAC地址(Media Access Control Address).

IP地址指明瞭節點被分配到的地址,MAC地址是指網卡所屬的固定地址。IP地址可以和MAC地址配對,IP地址可以變化,MAC地址基本上不會更改。

使用ARP協議憑藉MAC地址進行通信

IP間的通信依賴MAC地址。不在同一局域網中(LAN),通信通常是通過多臺計算機和網絡設備中專才能連接到對方。進行中轉時,會利用下一站中轉設備的MAC的地址來搜索下一個中轉目標。這裏會採用ARP協議(Address Resolution Protocol).ARP是一種用以解析地址的協議,根據通信方的IP地址就可以反查出對應的MAC地址。

沒有人可以全面掌握互聯網中的傳輸狀況

在到達通信目標前的中轉過程中,哪些計算機和路由器等網絡設備只能獲悉很初略的傳輸路線。

這種機制成爲路由選擇(routing)。

確保可靠性的TCP協議

按層次分,TCP位於傳輸層,提供可靠的字節流服務。

字節流服務(Byte Stream Service)是指,爲傳輸方便,將大塊數據分割成以報文段(segment)爲單位的數據包進行管理。而可靠的傳輸服務是指,把數據準確可靠地傳給對方。

確保數據能到達目標

爲準確將數據傳送到目標,TCP協議採用了三次握手策略(three-way handshaking).用TCP協議把數據包送出去後,TCP一定會向對方確認是否成功送達。握手過程中使用了TCP的標誌(flag)——SYN(synchronize)和ACK(acknowledgement)

發送端首先發送一個帶SYN標誌的數據包給對方。接收到後回傳一個帶有SYN/ACK標誌的數據包已示傳達確認信息,發送端再回傳一個帶ACK標誌的數據包,代表結束。

若在握手過程中某個截斷中斷,TCP寫一個會再次以相同的數序發送相同的數據包。

除上述,TCP還有其他手段來保證通信的可靠性。

負責域名解析的DNS服務

DNS(Domain Name System)服務是和HTTP協議一樣位於應用層的協議。它提供域名到IP地址之間的解析服務。

計算機既可以被賦予地址,也可以被賦予主機名和域名。

通常使用主機名或域名來訪問對方的計算機,而不是直接使用IP地址訪問。前者更容易記憶。

DNS協議提供通過域名查找IP地址,或逆向從IP地址反查域名的服務。

各種協議與HTTP協議的關係

URI和URL

URI(統一資源標識符),URL(Uniform Resource Locator,統一資源定位符)。URL正是使用web瀏覽器風訪問Web頁面時需要輸入的網頁地址。如http://www.baidu.com/

URI

URI(Uniform Resource Identifier)。RFC2396的定義

  1. Uniform

規定統一的格式可方便處理多種不同類型的資源,而不是根據上下文環境來識別資源指定訪問方式。

加入新增的協議方式(http:ftp:)也更容易

  1. Resource

資源定義是“可標識的任何東西”。除了文檔文件、圖像或服務(如天氣預報)等能夠區別於其他類型的,全都可作爲資源。另外,資源不僅可以是單一的,也可以是多數的集合體。

  1. Identifier

表示可標識的對象,也稱爲標識符。。

URI就是由某個協議方案表示的定位標識符。協議方案是指訪問資源所使用的協議類型名稱。

採用HTTP協議時,協議方案就是http,除此之外還有ftp,mailto,telnet,file等等。

URI用字符串標識某一互聯網資源,URL表示資源的地址(互聯網上所處的位置)。

URI格式

表示指定的URI,要使用涵蓋全部必要信息的絕對URI、絕對URL以及相對URL。(相對URL指從瀏覽器中基本URI處指定的URL,形如/image/logo.gif)

絕對URI格式:

  1. 協議方案名

使用http:和https:等協議方案名獲取資源是要指定協議類型。不區分大小寫,最後付一個冒號(:)。

也可以使用data:或javascript:這類指定數據或腳本程序的方案名。

  1. 登錄信息(認證)

指定用戶名和密碼作爲從服務器端獲取資源時必要的登錄信息(身份認證),可選

  1. 服務器地址

使用絕對URI必須指定帶訪問的服務器。地址可以是DNS可解析的名稱,也可以是IPv4地址名,或者是IPv6地址名(如[0:0:0:0:0:0:0:1])

  1. 服務器端口號

指定服務器連接的網絡端口號。可選,省略則使用默認端口號

  1. 帶層次的文件路徑

指定服務器上的文件路徑來定位特指的資源。與UNIX系統的文件目錄結構相似。

  1. 查詢字符串

針對已指定的文件路徑內的資源,可以任意參數使用查詢字符串傳入。可選

  1. 片段標識符

使用片段標識符通常可標記已獲取資源中的子資源(文檔內的某個位置)。RFC中未給出明確使用方法。可選


並不是所有方法都符合RFC

RFC(Request for Comments,徵求修正意見書),用來制定HTTP協議技術標準

不按照RFC標準執行,有可能無法通信。

但也存在某些應用程序應客戶端或服務器不同,將自成一套的標準進行了擴展的情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章