讀《圖解HTTP》總結--第一章

來源:互聯網
上載者:User

標籤:tle   認證   接收   source   使用者數   指令碼   指派   str   lag   

一、第一章:瞭解Web及網路基礎

1.基礎知識    HTTP:(HyperText Transfer Protocol ,超文字傳輸通訊協定 (HTTP))        用戶端:發送請求擷取伺服器資源的web瀏覽器等都可以稱為用戶端        www : World Wide Web  全球資訊網        URL :Uniform  Resource Locator ,統一資源定位器        URI  :Uniform Resource Identifier  統一資源識別項        HTML : HyperText Markup Language 超文字標記語言 (HTML)
2.Web訪問瀏覽器的過程    根據web瀏覽器地址中指定的URL,web瀏覽器從web伺服器端擷取檔案資源等資訊並在web頁面上顯示 出來

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/89/32/wKioL1gMHu3he3MqAADszZ1r4QU397.png-wh_500x0-wm_3-wmp_4-s_3026861466.png" title="01-01.png" alt="wKioL1gMHu3he3MqAADszZ1r4QU397.png-wh_50" />

3.網路基礎TCP/IP協議

3.1通常使用網路(互連網)都是在TCP/IP協議的基礎上運作的,而HTTP屬於它內部的一個子集。本書僅介紹理解HTTP所需掌握的TCP/IP協議概要。3.2 TCP/IP協議:    電腦與網路裝置要互相通訊,雙方就必須基於相同的方法。比如如何探測到通訊目標、由哪一邊先發起通訊、使用哪種語言進行通訊、怎樣結束通訊等規則都需要事先確定。不同的硬體、作業系統之間的通訊,所有的這一切都需要一種規則。而我們把這種規則稱為協議protocol.    TCP/IP就是把互連網相關聯的協議集合起來的總稱。TCP/IP是在IP協議的通訊過程中,使用到協議的統稱。3.3 TCP/IP的分層管理    TCP/IP協議裡最重要的一點就是分層。TCP/IP協議按層次分別為以下4層:應用程式層、傳輸層、網路層和資料連結層。    分層的優點:如果互連網只由一個協議統籌,某個地方需要改變設計時,就必須把所有部分整體替換掉。而分層之後只需把變動的層替換掉即可。值得一提的是層次化後,設計也變的相對簡單了。處於應用程式層的應用可以只考慮指派給自己的任務,而不需要弄清對方在地球上的哪個地方、對方的傳輸線路是怎樣的、能否確保傳輸送達等問題。    TCP/IP協議各層的作用如下:        應用程式層: 應用程式層決定了系那個使用者提供應用服務時通訊的活動。             TCP/IP 協議內預存了各類通用的應用服務。比如FTP(File TransferProtocol       檔案傳輸通訊協定)、DNS(Domain Name System 網域名稱系統) ,HTTP協議也處於應用程式層中。                      傳輸層: 傳輸層是對上層應用程式層,提供處於網路連接中的兩台電腦之間的資料轉送。             在傳輸層有兩個性質不同的協議:TCP (Transmission Control Protocol ,         傳輸控制通訊協定),和UDP(User  Data  Protocol , 使用者資料包通訊協定).            網路層: (又名網路互連層)             網路層用來處理在網路上流動的資料包。資料包是網路傳輸的最小資料單位。該層       規定了通過怎樣的路徑到達對方電腦,並把資料包傳送給對方           資料連結層: (又名鏈路層,網路介面層)                            用來處理串連網路的硬體部分。包括控制作業系統、硬體的裝置驅動、NIC            (Network Interface Card ,網路介面卡,即網卡)及光纖等物理可見部分。硬體上的            範疇均在鏈路層的作用範圍之內。3.4 TCP/IP 通訊傳輸串流        傳輸圖解如下:

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/89/36/wKiom1gMT3KhuVnyAAAdz54t75I921.png-wh_500x0-wm_3-wmp_4-s_3794158363.png" title="01-02.png" alt="wKiom1gMT3KhuVnyAAAdz54t75I921.png-wh_50" />

    利用TCP/IP協議進行網路通訊時,會通過分層順序與對方進行通訊。發送端從應用程式層往下走,接收端則往應用程式層網上走。    用HTTP舉例說明:    一、發送端    1.首先作為發送端的用戶端在應用程式層(HTTP協議)發出某個想看的web頁面的HTTP請求;    2.接著為了傳輸方便,在傳輸層(TCP協議)把應用程式層處收到的資料(HTTP請求報文)進行分割,並在各個報文上打上標記序號及連接埠號碼後轉寄給網路層;    3.在網路層(IP協議),增加作為通訊目的地的MAC地址後轉寄給鏈路層。這樣一來,發送網路的通訊請求就準備齊全了。    二、接收端    4.在服務端的伺服器在鏈路層收到資料,按順序往上層發送,一直到應用程式層。當傳輸到 應用程式層,才能算真正接收到由用戶端發送過來的HTTP請求。       總結:發送端在層與層之間傳輸資料時,沒經過一層時必備打上一個該層所屬的首部資訊。反之,接收端在層與層傳輸資料時,沒經過一層時會把對應的首部消去。    這種把資料資訊封裝起來的做法稱為封裝。

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/89/37/wKiom1gMctOBoC6gAABMFOfwHXA519.png-wh_500x0-wm_3-wmp_4-s_25578926.png" title="01-03.png" alt="wKiom1gMctOBoC6gAABMFOfwHXA519.png-wh_50" />


4. 與HTTP關係密切的協議:IP、TCP和DNS

4.1 IP協議4.1.1負責傳輸的IP協議    按層次分,IP(Internet Protocol)網際協議位於網路層。幾乎所有使用網路的系統都會使用到IP協議。TCP/IP協議中的IP指的就是網際協議,協議名稱中佔據了一半位置,其重要性可見一斑。    IP協議的作用就是把各種資料包傳送給對方,而要保證確實傳送到對方那裡,則需要滿足各類條件。其中兩個重要的條件就是IP地址和MAC地址(Media Aceess Contral Address)    4.1.2. IP地址與MAC地址關係:    IP地址指明了節點被分配到的地址,MAC地址是指網卡所屬的固定地址。IP地址可以和MAC地址進行配對。IP地址可變,但MAC地址基本上不會更改。  4.1.3 IP地址間使用ARP協議憑藉MAC地址進行通訊    IP間的通訊依賴MAC地址。在網路上,通訊的雙方在同一區域網路(LAN)內的情況很少,通常是經過多台電腦和網路裝置中轉才能串連到對方。而在進行中轉時,會利用下一站中轉裝置的MAC地址來搜尋下一個中轉目標。這時會採用ARP協議(Address Resolution Protocol).ARP是一種用以解析地址的協議,根據通訊方的IP地址就可以反查處對應的MAC地址。
4.2 確保可靠性的TCP協議4.2.1 按層次分,TCP位於傳輸層,提供可靠的位元組流服務。      所謂的位元組流服務(Byte Stream Service)是指,為了方便傳輸,將大塊資料分割成以報文段為單位的資料包進行管理,而可靠的傳輸服務是指,能夠把資料準確可靠的傳給對方。簡而言之,TCP協議為了更容易傳送大資料才把資料分割,而且TCP協議能夠確認資料最終是否送達對方。4.2.2 確保資料能到達目標      為了能夠準確無誤的將資料送達目標處,TCP協議採用了三向交握策略。用TCP協議把資料包送出去後,TCP不會對傳送後的情況置之不理,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標誌(flag) ---SYN (synchronize) 和ACK (acknowledgement)

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/35/wKioL1gMhmvAfHwLAAA_VRlyOuE098.png-wh_500x0-wm_3-wmp_4-s_3846835316.png" title="01-04.png" alt="wKioL1gMhmvAfHwLAAA_VRlyOuE098.png-wh_50" />

       發送端首先發送一個帶SYN標誌的資料包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的資料包   以示傳達確認資訊。最後發送端再回傳一個帶ACK標誌的資料包,代表"握手"結束。       若在握手過程中某個階段莫名中斷,TCP協議會再次以相同的順序發送相同的資料包。(除了三次   握手以外,TCP協議還有其他手段來保證通訊的可靠性)
4.3 負責網域名稱解析的DNS服務
    DNS (Domain Name System )服務是和HTTP協議一樣位於應用程式層的協議。它提供網域名稱到IP地址之間 的解析服務.DNS分為正向解析(網域名稱--->IP)和逆向解析(IP ---->DNS ).


4.4 各種協議與HTTP協議的關係()

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/89/35/wKioL1gMjBCjtKkoAAIRJ7FiqLo255.jpg-wh_500x0-wm_3-wmp_4-s_1590520987.jpg" title="301157290582869607.jpg" alt="wKioL1gMjBCjtKkoAAIRJ7FiqLo255.jpg-wh_50" />



5.URI 和URL

    與URI(統一資源識別項)相比,我們更熟悉URL(Uniform Resource Locator ,統一資源定位器)。 5.1 統一資源識別項  URI    URI : Uniform Resource Identifer  統一資源識別項       Uniform :規定統一格式可方便處理多種不同類型的資源,而不用根據上下文環境來識別資源指    定的訪問方式。另外,加入新增的協議方案(如http:或ftp:)也更容易。           Resource :資源的定義是"可標識的任何東西"。除了文檔檔案、映像或服務(例如當天的天氣  預報)等能夠區別於其它類型的,全部可作為資源。另外資源可以是單一的,也可以是多數的集合體。           Indentifer :表示可標識對象。也成為標識符。          綜上所述,URI就是由某個協議方案表示的資源定位標識符。協議方案是直接存取資源所使用的協議類型名稱。採用HTTP協議時,協議方案就是http。除此之外,還有ftp、mailto、telnet、file等。   URI用字串標識某一互連網資源,而URL表示資源的地點(互連網上所處的位置)。可見URL是URI的子集
5.2 URI格式    表示指定的URI,要使用涵蓋全部必要資訊的絕對URI、絕對URL以及相對URL。        相對URL:是指從瀏覽器中基本URI處指定的URL,形如/image/logo.gif        絕對URL格式:

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/89/35/wKioL1gMmgeydEGUAAAyvAAXh5E506.png-wh_500x0-wm_3-wmp_4-s_571377936.png" title="01-05.png" alt="wKioL1gMmgeydEGUAAAyvAAXh5E506.png-wh_50" />

5.2.1  協議(方案名)    使用http:或https: 等協議方案名擷取訪問資源時要指定協議類型。(不區分大小寫,最後加冒號(:)) 也可以使用data:或者javascript:這類指定資料或指令碼程式的方案名
5.2.2  登入資訊(認證)    此項為可選項。指定使用者名稱和密碼作為伺服器端擷取資源時必要的登入資訊。(身份認證)    5.2.3  伺服器位址    使用絕對的URI必須指定待訪問的伺服器位址。地址可以是ip(IPV4、IPV6)或者可解析的網域名稱        5.2.4  伺服器連接埠號碼    指定伺服器串連的網路連接埠號碼。此項也是可選項。若使用者省略則自動使用預設連接埠號碼。    5.2.5  帶層次的檔案路徑    指定伺服器上的檔案路徑來定位特指的資源。這與Unix系統的檔案目錄結構類似。    5.2.6  查詢字串     (可選項)針對已制定的檔案路徑內的資源,可以使用查詢字串傳入任意參數。    5.2.7  片段標識符     (可選項)使用片段標識符通常可標記出已擷取資源中的子資源(文檔內的某個位置)。但是在RFC中並沒 有明確規定其使用方法。

讀《圖解HTTP》總結--第一章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.