計算機網絡知識總結

1. OSI 七層網絡模型程序員

1.1 物理層算法

      激活、維持、關閉通訊端點之間的機械特性、電氣特性、功能特性以及過程特性。對編碼和信號進行處理,編碼與解碼,以及信號的調試解調。該層爲上層協議提供了一個傳輸數據的可靠的物理媒體。簡單的說,物理層確保原始的數據可在各類物理媒體上傳輸。物理層有兩個重要的設備,中繼器(也叫放大器)和集線器。數據庫

 

1.2 數據鏈路層編程

      數據鏈路層在物理層提供的服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。爲達到這一目的,數據鏈路必須具有一系列相應的功能,主要有:如何將數據組合成數據塊;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率使之與接收方相匹配;以及在兩個網絡實體之間提供數據鏈路通路的創建、維持和釋放的管理。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的做用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。瀏覽器

      有關數據鏈路層的重要知識點:緩存

            (1)數據鏈路層爲網絡層提供可靠的數據傳輸;安全

            (2)基本數據單位爲幀;服務器

            (3)主要的協議:以太網協議;網絡

            (4)兩個重要設備名稱:網橋和交換機。併發

 

1.3 網絡層

      網絡層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括尋址和路由選擇、鏈接的創建、保持和終止等。它提供的服務使傳輸層不須要了解網絡中的數據傳輸和交換技術。簡單來講,網絡層就是「路徑選擇、路由及邏輯尋址」。

      網絡層中涉及衆多的協議,其中包括最重要的協議,也是 TCP/IP 的核心協議—IP 協議。IP 協議很是簡單,僅僅提供不可靠、無鏈接的傳送服務。IP 協議的主要功能有:無鏈接數據報傳輸、數據報路由選擇和差錯控制。與 IP 協議配套使用實現其功能的還有地址解析協議 ARP、逆地址解析協議 RARP、因特網報文協議 ICMP、因特網組管理協議 IGMP。網絡層的重點爲:

      (1)網絡層負責對子網間的數據包進行路由選擇。所以,網絡層還能夠實現擁塞控制、網際互連等功能;

      (2)基本數據單位爲IP數據報;

      (3)包含的主要協議:

            1. IP 協議(因特網互聯協議);

            2. TCMP 協議(因特網控制報文協議);

            3. ARP 協議(地址解析協議);

            4. RARP 協議(逆地址解析協議)。

      (4)重要的設備:路由器。

 

1.4 傳輸層

  第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。

  傳輸層的任務是根據通訊子網的特性,最佳的利用網絡資源,爲兩個端系統的會話層之間,提供創建、維護和取消傳輸鏈接的功能,負責端到端的可靠數據傳輸。在這一層,信息傳送的協議數據單元稱爲段或報文。

  網絡層只是根據網絡地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的端口。

  有關傳輸層的重點:

    (1)傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;

    (2)包含的主要協議:TCP 協議(Transmission Control Protocol,傳輸控制協議)、UDP 協議(User Datagram Protocol,用戶數據報協議);

    (3)重要設備:網關。

 

1.5 會話層

      會話層管理主機之間的會話進程,即負責創建、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。

 

1.6 表示層

      表示層對上層數據或信息進行變換以保證一個主機應用層信息能夠被另外一個主機的應用程序理解。表示層的數據轉換包括數據的加密、壓縮、格式轉換等。

 

1.7 應用層

      爲操做系統或網絡應用程序提供訪問網絡服務的接口。

  會話層、表示層和應用層重點:

    (1)數據傳輸基本單位爲報文;

    (2)包含的主要協議:FTP(文件傳送協議)、Telnet(遠程登陸協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP 協議(Hyper Text Transfer Protocol)。

 

2. IP地址

2.1 網絡地址

      IP 地址由網絡號(包括子網號)和主機號組成,網絡地址的主機號爲全 0,網絡地址表明着整個網絡。

 

2.2 廣播地址

  廣播地址一般稱爲直接廣播地址,是爲了區分受限廣播地址。

      廣播地址與網絡地址的主機號正好相反,廣播地址中,主機號爲全 1。當向某個網絡的廣播地址發送消息時,該網絡內的全部主機都能收到該廣播消息。

 

2.3組播地址

  D類地址就是組播地址。

  先回憶下 A,B,C,D 類地址吧:

  A類地址以 00 開頭,第一個字節做爲網絡號,地址範圍爲:0.0.0.0~127.255.255.255;

  B類地址以 10 開頭,前兩個字節做爲網絡號,地址範圍是:128.0.0.0~191.255.255.255;

  C類地址以 110 開頭,前三個字節做爲網絡號,地址範圍是:192.0.0.0~223.255.255.255。

  D類地址以 1110 開頭,地址範圍是 224.0.0.0~239.255.255.255,D 類地址做爲組播地址(一對多的通訊);

  E類地址以 1111 開頭,地址範圍是 240.0.0.0~255.255.255.255,E 類地址爲保留地址,供之後使用。

      注:只有 A,B,C 類地址有網絡號和主機號之分,D 類地址和 E 類地址沒有劃分網絡號和主機號。

 

2.4 255.255.255.255

  該 IP 地址指的是受限的廣播地址。受限廣播地址與通常廣播地址(直接廣播地址)的區別在於,受限廣播地址只能用於本地網絡,路由器不會轉發以受限廣播地址爲目的地址的分組;通常廣播地址既可在本地廣播,也可跨網段廣播。例如:主機 192.168.1.1/30 上的直接廣播數據包後,另一個網段 192.168.1.5/30 也能收到該數據報;若發送受限廣播數據報,則不能收到。

      注:通常的廣播地址(直接廣播地址)可以經過某些路由器(固然不是全部的路由器),而受限的廣播地址不能經過路由器。

 

2.5 0.0.0.0

      經常使用於尋找本身的 IP 地址,例如在咱們的 RARP,BOOTP 和 DHCP 協議中,若某個未知IP地址的無盤機想要知道本身的 IP 地址,它就以 255.255.255.255 爲目的地址,向本地範圍(具體而言是被各個路由器屏蔽的範圍內)的服務器發送 IP 請求分組。

 

2.6 迴環地址

      127.0.0.0/8 被用做迴環地址,迴環地址表示本機的地址,經常使用於對本機的測試,用的最多的是 127.0.0.1。

 

2.7 A、B、C 類私有地址

  私有地址(private address)也叫專用地址,它們不會在全球使用,只具備本地意義。

  A 類私有地址:10.0.0.0/8,範圍是:10.0.0.0~10.255.255.255

  B 類私有地址:172.16.0.0/12,範圍是:172.16.0.0~172.31.255.255

  C 類私有地址:192.168.0.0/16,範圍是:192.168.0.0~192.168.255.255

 

3. 子網掩碼及網絡劃分

      隨着互連網應用的不斷擴大,原先的 IPv4 的弊端也逐漸暴露出來,即網絡號佔位太多,而主機號位太少,因此其能提供的主機地址也愈來愈稀缺,目前除了使用 NAT 在企業內部利用保留地址自行分配之外,一般都對一個高類別的 IP 地址進行再劃分,以造成多個子網,提供給不一樣規模的用戶羣使用。

  這裏主要是爲了在網絡分段狀況下有效地利用 IP 地址,經過對主機號的高位部分取做爲子網號,從一般的網絡位界限中擴展或壓縮子網掩碼,用來建立某類地址的更多子網。但建立更多的子網時,在每一個子網上的可用主機地址數目會比原先減小。

  什麼是子網掩碼?

  子網掩碼是標誌兩個 IP 地址是否同屬於一個子網的,也是 32 位二進制地址,其每個爲 1 表明該位是網絡位,爲 0 表明主機位。它和 IP 地址同樣也是使用點式十進制來表示的。若是兩個 IP 地址在子網掩碼的按位與的計算下所得結果相同,即代表它們共屬於同一子網中。

  在計算子網掩碼時,咱們要注意 IP 地址中的保留地址,即「 0」地址和廣播地址,它們是指主機地址或網絡地址全爲「 0」或「 1」時的 IP 地址,它們表明着本網絡地址和廣播地址,通常是不能被計算在內的。

  子網掩碼的計算:

  對於無須再劃分紅子網的 IP 地址來講,其子網掩碼很是簡單,即按照其定義便可寫出:如某 B 類 IP 地址爲 10.12.3.0,無須再分割子網,則該 IP 地址的子網掩碼 255.255.0.0。若是它是一個 C 類地址,則其子網掩碼爲 255.255.255.0。其它類推,再也不詳述。下面咱們關鍵要介紹的是一個 IP 地址,還須要將其高位主機位再做爲劃分出的子網網絡號,剩下的是每一個子網的主機號,這時該如何進行每一個子網的掩碼計算。

  下面總結一下有關子網掩碼和網絡劃分常見的考題:

  1)利用子網數來計算

        在求子網掩碼以前必須先搞清楚要劃分的子網數目,以及每一個子網內的所需主機數目。

        (1) 將子網數目轉化爲二進制來表示;

        如欲將 B 類 IP 地址 168.195.0.0 劃分紅 27 個子網:27=11011;

        (2) 取得該二進制的位數,爲 N;

        該二進制爲五位數,N = 5

        (3) 取得該 IP 地址的類子網掩碼,將其主機地址部分的的前 N 位置爲 1 即得出該 IP 地址劃分子網的子網掩碼。

        將 B 類地址的子網掩碼 255.255.0.0 的主機地址前 5 位置爲 1,獲得 255.255.248.0

  2)利用主機數來計算

        如欲將 B 類 IP 地址 168.195.0.0 劃分紅若干子網,每一個子網內有主機 700 臺:

        (1) 將主機數目轉化爲二進制來表示;

        700=1010111100;

        (2) 若是主機數小於或等於 254(注意去掉保留的兩個 IP 地址),則取得該主機的二進制位數,爲 N,這裏確定 N<8。若是大於 254,則 N>8,這就是說主機地址將佔據不止 8 位;

        該二進制爲十位數,N=10;

        (3) 使用 255.255.255.255 來將該類 IP 地址的主機地址位數所有置爲 1,而後從後向前的將 N 位所有置爲 0,即爲子網掩碼值。

        將該 B 類地址的子網掩碼 255.255.0.0 的主機地址所有置爲 1,獲得 255.255.255.255,而後再從後向前將後 10 位置爲 0,即爲:11111111.11111111.11111100.00000000,即 255.255.252.0。這就是該欲劃分紅主機爲 700 臺的 B 類 IP 地址 168.195.0.0 的子網掩碼。

  3)還有一種題型,要你根據每一個網絡的主機數量進行子網地址的規劃和計算子網掩碼。這也可按上述原則進行計算

        好比一個子網有 10 臺主機,那麼對於這個子網須要的 IP 地址是:

        10+1+1+1=13

        注意:加的第一個 1 是指這個網絡鏈接時所需的網關地址,接着的兩個 1 分別是指網絡地址和廣播地址。

        由於 13 小於 16(16 等於 2 的 4 次方),因此主機位爲 4 位。而 256-16=240,因此該子網掩碼爲 255.255.255.240。

        若是一個子網有 14 臺主機,很多人常犯的錯誤是:依然分配具備 16 個地址空間的子網,而忘記了給網關分配地址。這樣就錯誤了,由於14+1+1+1=17,17 大於 16,因此咱們只能分配具備 32 個地址(32 等於 2 的 5 次方)空間的子網。這時子網掩碼爲:255.255.255.224。

 

4. ARP/RARP 協議

  地址解析協議,即 ARP(Address Resolution Protocol),是根據 IP 地址獲取物理地址的一個 TCP/IP 協議。主機發送信息時將包含目標 IP 地址的 ARP 請求廣播到網絡上的全部主機,並接收返回消息,以此肯定目標的物理地址;收到返回消息後將該 IP 地址和物理地址存入本機 ARP 緩存中並保留必定時間,下次請求時直接查詢 ARP 緩存以節約資源。地址解析協議是創建在網絡中各個主機互相信任的基礎上的,網絡上的主機能夠自主發送 ARP 應答消息,其餘主機收到應答報文時不會檢測該報文的真實性就會將其記入本機 ARP 緩存;由此攻擊者就能夠向某一主機發送僞 ARP 應答報文,使其發送的信息沒法到達預期的主機或到達錯誤的主機,這就構成了一個 ARP 欺騙。ARP 命令可用於查詢本機 ARP 緩存中 IP 地址和 MAC 地址的對應關係、添加或刪除靜態對應關係等。

  ARP 工做流程舉例:

  主機 A 的 IP 地址爲 192.168.1.1,MAC 地址爲 0A-11-22-33-44-01;

  主機 B 的 IP 地址爲 192.168.1.2,MAC 地址爲 0A-11-22-33-44-02;

  當主機 A 要與主機 B 通訊時,地址解析協議能夠將主機 B 的 IP 地址(192.168.1.2)解析成主機 B 的 MAC 地址,如下爲工做流程:

        (1)根據主機 A 上的路由表內容,IP 肯定用於訪問主機 B 的轉發 IP 地址是 192.168.1.2。而後 A 主機在本身的本地 ARP 緩存中檢查主機 B 的匹配 MAC 地址。

        (2)若是主機 A 在 ARP 緩存中沒有找到映射,它將詢問 192.168.1.2 的硬件地址,從而將 ARP 請求幀廣播到本地網絡上的全部主機。源主機 A 的 IP 地址和 MAC 地址都包括在 ARP 請求中。本地網絡上的每臺主機都接收到 ARP 請求而且檢查是否與本身的 IP 地址匹配。若是主機發現請求的 IP 地址與本身的 IP 地址不匹配,它將丟棄 ARP 請求。

        (3)主機 B 肯定 ARP 請求中的 IP 地址與本身的 IP 地址匹配,則將主機 A 的 IP 地址和 MAC 地址映射添加到本地 ARP 緩存中。

        (4)主機 B 將包含其 MAC 地址的 ARP 回覆消息直接發送回主機 A。

        (5)當主機 A 收到從主機 B 發來的 ARP 回覆消息時,會用主機 B 的 IP 和 MAC 地址映射更新 ARP 緩存。本機緩存是有生存期的,生存期結束後,將再次重複上面的過程。主機 B 的 MAC 地址一旦肯定,主機 A 就能向主機 B 發送 IP 通訊了。

  逆地址解析協議,即 RARP,功能和 ARP 協議相對,其將局域網中某個主機的物理地址轉換爲 IP 地址,好比局域網中有一臺主機只知道物理地址而不知道 IP 地址,那麼能夠經過 RARP 協議發出徵求自身 IP 地址的廣播請求,而後由 RARP 服務器負責回答。

  RARP 協議工做流程:

        (1)給主機發送一個本地的 RARP 廣播,在此廣播包中,聲明本身的 MAC 地址而且請求任何收到此請求的 RARP 服務器分配一個 IP 地址;

        (2)本地網段上的 RARP 服務器收到此請求後,檢查其 RARP 列表,查找該 MAC 地址對應的 IP 地址;

        (3)若是存在,RARP 服務器就給源主機發送一個響應數據包並將此 IP 地址提供給對方主機使用;

        (4)若是不存在,RARP 服務器對此不作任何的響應;

        (5)源主機收到從 RARP 服務器的響應信息,就利用獲得的 IP 地址進行通信;若是一直沒有收到 RARP 服務器的響應信息,表示初始化失敗。

 

5. 路由選擇協議

      常見的路由選擇協議有:RIP 協議、OSPF 協議。

  RIP 協議 :底層是貝爾曼福特算法,它選擇路由的度量標準(metric)是跳數,最大跳數是 15 跳,若是大於 15 跳,它就會丟棄數據包。

      OSPF 協議 :Open Shortest Path First 開放式最短路徑優先,底層是迪傑斯特拉算法,是鏈路狀態路由選擇協議,它選擇路由的度量標準是帶寬,延遲。

 

6. TCP/IP 協議

  TCP/IP 協議是 Internet 最基本的協議、Internet 國際互聯網絡的基礎,由網絡層的 IP 協議和傳輸層的 TCP 協議組成。通俗而言:TCP 負責發現傳輸的問題,一有問題就發出信號,要求從新傳輸,直到全部數據安全正確地傳輸到目的地。而 IP 是給因特網的每一臺聯網設備規定一個地址。

  IP 層接收由更低層(網絡接口層例如以太網設備驅動程序)發來的數據包,並把該數據包發送到更高層---TCP 或 UDP 層;相反,IP 層也把從 TCP 或 UDP 層接收來的數據包傳送到更低層。IP 數據包是不可靠的,由於 IP 並無作任何事情來確認數據包是否按順序發送的或者有沒有被破壞,IP 數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。

   TCP 是面向鏈接的通訊協議,經過三次握手創建鏈接,通信完成時要拆除鏈接,因爲 TCP 是面向鏈接的因此只能用於端到端的通信。TCP 提供的是一種可靠的數據流服務,採用「帶重傳的確定確認」技術來實現傳輸的可靠性。TCP 還採用一種稱爲「滑動窗口」的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。

  TCP 報文首部格式:

  TCP 協議的三次握手和四次揮手: 

  注:seq:"sequance"序列號;ack:"acknowledge"確認號;SYN:"synchronize"請求同步標誌;;ACK:"acknowledge"確認標誌";FIN:"Finally"結束標誌。

  TCP 鏈接創建過程:首先 Client 端發送鏈接請求報文,Server 端接受鏈接後回覆 ACK 報文,併爲此次鏈接分配資源。Client 端接收到 ACK 報文後也向 Server 端發送 ACK 報文,並分配資源,這樣 TCP 鏈接就創建了。

  TCP 鏈接斷開過程:假設 Client 端發起中斷鏈接請求,也就是發送 FIN 報文。Server 端接到 FIN 報文後,意思是說"我 Client 端沒有數據要發給你了",可是若是你還有數據沒有發送完成,則沒必要急着關閉 Socket,能夠繼續發送數據。因此你先發送 ACK,"告訴 Client 端,你的請求我收到了,可是我還沒準備好,請你繼續等個人消息"。這個時候 Client 端就進入 FIN_WAIT 狀態,繼續等待 Server 端的 FIN 報文。當 Server 端肯定數據已發送完成,則向 Client 端發送 FIN 報文,"告訴 Client 端,好了,我這邊數據發完了,準備好關閉鏈接了"。Client 端收到 FIN 報文後,"就知道能夠關閉鏈接了,可是他仍是不相信網絡,怕 Server 端不知道要關閉,因此發送 ACK 後進入 TIME_WAIT 狀態,若是 Server 端沒有收到 ACK 則能夠重傳。「,Server 端收到 ACK 後,"就知道能夠斷開鏈接了"。Client 端等待了 2MSL 後依然沒有收到回覆,則證實 Server 端已正常關閉,那好,我 Client 端也能夠關閉鏈接了。Ok,TCP 鏈接就這樣關閉了!

  爲何要三次揮手?

  在只有兩次「握手」的情形下,假設 Client 想跟 Server 創建鏈接,可是卻由於中途鏈接請求的數據報丟失了,故 Client 端不得不從新發送一遍;這個時候 Server 端僅收到一個鏈接請求,所以能夠正常的創建鏈接。可是,有時候 Client 端從新發送請求不是由於數據報丟失了,而是有可能數據傳輸過程由於網絡併發量很大在某結點被阻塞了,這種情形下 Server 端將前後收到 2 次請求,並持續等待兩個 Client 請求向他發送數據...問題就在這裏,Cient 端實際上只有一次請求,而 Server 端卻有 2 個響應,極端的狀況可能因爲 Client 端屢次從新發送請求數據而致使 Server 端最後創建了 N 多個響應在等待,於是形成極大的資源浪費!因此,「三次握手」頗有必要!

  爲何要四次揮手?

  試想一下,假如如今你是客戶端你想斷開跟 Server 的全部鏈接該怎麼作?第一步,你本身先中止向 Server 端發送數據,並等待 Server 的回覆。但事情尚未完,雖然你自身不往 Server 發送數據了,可是由於大家以前已經創建好平等的鏈接了,因此此時他也有主動權向你發送數據;故 Server 端還得終止主動向你發送數據,並等待你的確認。其實,說白了就是保證雙方的一個合約的完整執行!

  使用 TCP 的協議:FTP(文件傳輸協議)、Telnet(遠程登陸協議)、SMTP(簡單郵件傳輸協議)、POP3(和SMTP相對,用於接收郵件)、HTTP 協議等。

 

7. UDP 協議

  UDP 用戶數據報協議,是面向無鏈接的通信協議,UDP 數據包括目的端口號和源端口號信息,因爲通信不須要鏈接,因此能夠實現廣播發送。UDP 通信時不須要接收方確認,屬於不可靠的傳輸,可能會出現丟包現象,實際應用中要求程序員編程驗證。

  UDP 與 TCP 位於同一層,但它無論數據包的順序、錯誤或重發。所以,UDP 不被應用於那些使用虛電路的面向鏈接的服務,UDP 主要用於那些面向查詢---應答的服務,例如 NFS。相對於 FTP 或 Telnet,這些服務須要交換的信息量較小。

      每一個 UDP 報文分 UDP 報頭和 UDP 數據區兩部分。報頭由四個 16 位長(2 字節)字段組成,分別說明該報文的源端口、目的端口、報文長度以及校驗值。UDP 報頭由 4 個域組成,其中每一個域各佔用 2 個字節,具體以下:
  

      (1)源端口號;

  (2)目標端口號;

  (3)數據報長度;

  (4)校驗值。

  使用 UDP 協議包括:TFTP(簡單文件傳輸協議)、SNMP(簡單網絡管理協議)、DNS(域名解析協議)、NFS、BOOTP。

  TCP 與 UDP 的區別:TCP 是面向鏈接的,可靠的字節流服務;UDP 是面向無鏈接的,不可靠的數據報服務。

 

8. DNS 協議

  DNS 是域名系統(DomainNameSystem)的縮寫,該系統用於命名組織到域層次結構中的計算機和網絡服務,能夠簡單地理解爲將 URL 轉換爲 IP 地址。域名是由圓點分開一串單詞或縮寫組成的,每個域名都對應一個唯一的 IP 地址,在 Internet 上域名與 IP 地址之間是一一對應的,DNS 就是進行域名解析的服務器。DNS 命名用於 Internet 等 TCP/IP 網絡中,經過用戶友好的名稱查找計算機和服務。

 

9. NAT 協議

  NAT 網絡地址轉換(Network Address Translation)屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化爲合法 IP 地址的轉換技術,它被普遍應用於各類類型 Internet 接入方式和各類類型的網絡中。緣由很簡單,NAT 不只完美地解決了 lP 地址不足的問題,並且還可以有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。

 

10. DHCP 協議

  DHCP 動態主機設置協議(Dynamic Host Configuration Protocol)是一個局域網的網絡協議,使用 UDP 協議工做,主要有兩個用途:給內部網絡或網絡服務供應商自動分配 IP 地址,給用戶或者內部網絡管理員做爲對全部計算機做中央管理的手段。

 

11. HTTP 協議

  超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最爲普遍的一種網絡協議。全部的 WWW 文件都必須遵照這個標準。

  HTTP 協議包括的請求:

        GET:請求讀取由 URL 所標誌的信息。

        POST:給服務器添加信息(如註釋)。

        PUT:在給定的 URL 下存儲一個文檔。

        DELETE:刪除給定的 URL 所標誌的資源。

      HTTP 中, POST 與 GET 的區別:

        1)Get 是從服務器上獲取數據,Post 是向服務器傳送數據。

        2)Get 是把參數數據隊列加到提交表單的 Action 屬性所指向的 URL 中,值和表單內各個字段一一對應,在 URL 中能夠看到。

        3)Get 傳送的數據量小,不能大於 2KB;Post 傳送的數據量較大,通常被默認爲不受限制。

        4)根據 HTTP 規範,GET 用於信息獲取,並且應該是安全的和冪等的。

  I. 所謂安全的意味着該操做用於獲取信息而非修改信息。換句話說,GET 請求通常不該產生反作用。就是說,它僅僅是獲取資源信息,就像數據庫查詢同樣,不會修改,增長數據,不會影響資源的狀態。

    II. 冪等的意味着對同一 URL 的多個請求應該返回一樣的結果。

 

 一個舉例

  在瀏覽器中輸入 www.baidu.com  後執行的所有過程

  如今假設若是咱們在客戶端(客戶端)瀏覽器中輸入 http://www.baidu.com,而 baidu.com 爲要訪問的服務器(服務器),下面詳細分析客戶端爲了訪問服務器而執行的一系列關於協議的操做:

  1)客戶端瀏覽器經過 DNS 解析到 www.baidu.com 的 IP 地址 220.181.27.48,經過這個 IP 地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個 HTTP 會話到 220.161.27.48,而後經過 TCP 進行封裝數據包,輸入到網絡層。

  2)在客戶端的傳輸層,把 HTTP 會話請求分紅報文段,添加源和目的端口,如服務器使用 80 端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如 5000,與服務器進行交換,服務器把相應的請求返回給客戶端的 5000 端口。而後使用 IP 層的 IP 地址查找目的端。

  3)客戶端的網絡層不用關係應用層或者傳輸層的東西,主要作的是經過查找路由表肯定如何到達服務器,期間可能通過多個路由器,這些都是由路由器來完成的工做,不做過多的描述,無非就是經過查找路由表決定經過那個路徑到達服務器。

  4)客戶端的鏈路層,包經過鏈路層發送到路由器,經過鄰居協議查找給定 IP 地址的 MAC 地址,而後發送 ARP 請求查找目的地址,若是獲得迴應後就可使用 ARP 的請求應答交換的 IP 數據包如今就能夠傳輸了,而後發送 IP 數據包到達服務器的地址。