計算機的網絡體系及協議模型介紹

目錄

1、網絡協議介紹

1.1、定義

1.2、基本作用

1.3、協議的主要內容

2、網絡協議分層

2.1、協議分層原因

2.2、網絡協議分層的缺點

2.3、OSI協議和TCP/IP協議的聯系

3、TCP/IP 協議族

3.1、定義介紹

3.2、組成

1、應用層

2、運輸層

3、網絡層

3.3、底層流程

4、TCP連接

4.1、TCP的握手機制

4.2、TCP的三次、四次連接

4.3、TCP首部格式

1、源端口/目的端口

2、序號(sequence number)

3、確認號(acknowledgement number)

4、標志位ACK

5、同步標志位SYN

6、終止標志位FIN

4.4、三次握手過程介紹

4.5、第三次握手原因

4.6、四次揮手過程

5、Http和Https

5.1、http的定義

5.2、區別和聯系

5.3、常用HTTP狀態碼


前言

????????網絡協議是網絡上所有設備(網絡服務器、計算機及交換機、路由器、防火墻等)之間通信規則的集合,它規定了通信時信息必須采用的格式和這些格式的意義。

????????大多數網絡都采用分層的體系結構,每一層都建立在它的下層之上,向它的上一層提供一定的服務,而把如何實現這一服務的細節對上一層加以屏蔽。

如下圖所示:


1、網絡協議介紹

1.1、定義

????????在計算機網絡要做到有條不紊地交換數據,就必須遵守一些事先約定好的規則, 比如交換數據的格式、是否需要發送一個應答信息。這些規則被稱為網絡協議。

本質就是數據傳輸的規則標準

1.2、基本作用

  • 規定通信雙方如何建立連接、如何傳遞數據、如何確認數據是否收發成功、出錯怎么處理等。
  • 保證不同廠商、不同系統設備“說同一種話”,能互相交換數據。

1.3、協議的主要內容

1、語法(Syntax):

數據結構、編碼方式、數據包的格式(比如一段包頭有啥字段、每一段長)。

2、語義(Semantics):

每個字段、每一步的意義和作用,比如哪一位代表校驗、哪一位代表控制命令。

3、同步(Synchronization):

通信雙方何時發送/接受數據,通信順序,時序等等。


2、網絡協議分層

????????OSI 七層模型 是國際標準化組織提出的一個網絡分層模型,其大體結構以及每一層提供的功能如下圖所示:

2.1、協議分層原因

  • 簡化問題難度和復雜度。由于各層之間獨立,我們可以分割大問題為小問題。
  • 靈活性好。當其中一層的技術變化時,只要層間接口關系保持不變,其他層不受 影響。
  • 易于實現和維護。
  • 促進標準化工作。分開后,每層功能可以相對簡單地被描述。

2.2、網絡協議分層的缺點

????????功能可能出現在多個層里,產生了額外開銷。 為了使不同體系結構的計算機網絡都能互聯,國際標準化組織 ISO 于1977年提 出了一個試圖使各種計算機在世界范圍內互聯成網的標準框架,即著名的開放系統互聯基本參考模型 OSI/RM,簡稱為OSI。

如下圖所示:

????????OSI 的七層協議體系結構的概念清楚,理論也較完整,但它既復雜又不實用, TCP/IP 體系結構則不同,但它現在卻得到了非常廣泛的應用。

????????TCP/IP 是一個四 層體系結構,它包含應用層運輸層網際層(為了解決不同網絡的互連問題)和網絡接口層。

2.3、OSI協議和TCP/IP協議的聯系

四層協議,五層協議和七層協議的關系如下:


1、TCP/IP是一個四層的體系結構

主要包括:應用層運輸層網際層網絡接口層

2、五層協議的體系結構

主要包括:應用層運輸層網絡層數據鏈路層物理層

3、OSI七層協議模型

主要包括是:應用層(Application)表示層 (Presentation)會話層(Session)運輸層(Transport)網絡層 (Network)數據鏈路層(Data Link)物理層(Physical)。

如下圖所示:

??注意:五層協議的體系結構只是為了介紹網絡原理而設計的,實際應用還是 TCP/IP 四層體系結構。

6.數據鏈路層

????????數據鏈路層(data link layer)通常簡稱為鏈路層。兩臺主機之間的數據傳輸,總 是在一段一段的鏈路上傳送的,這就需要使用專門的鏈路層的協議。

????????在兩個相鄰節點之間傳送數據時,數據鏈路層將網絡層交下來的 IP 數據報組裝 成幀,在兩個相鄰節點間的鏈路上傳送幀。每一幀包括數據和必要的控制信息 (如同步信息,地址信息,差錯控制等)。

????????在接收數據時,控制信息使接收端能夠知道一個幀從哪個比特開始和到哪個比特 結束。

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

7.物理層

????????在物理層上所傳送的數據單位是比特。 物理層(physical layer)的作用是實現相 鄰計算機節點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質和物理設備的 差異。使其上面的數據鏈路層不必考慮網絡的具體傳輸介質是什么。“透明傳送 比特流”表示經實際電路傳送后的比特流沒有發生變化,對傳送的比特流來說, 這個電路好像是看不見的。


3、TCP/IP 協議族

3.1、定義介紹


????????在互聯網協議中比較著名的是TCP/IP 兩個協議。現在提到的 TCP/IP 并不一定是單指 TCP 和 IP 這兩個具體的協議,而往往是表 示互聯網所使用的整個 TCP/IP 協議族。

????????互聯網協議套件(Internet Protocol Suite,縮寫IPS)是一個網絡通訊模型, 以及一整個網絡傳輸協議家族,為網際網絡的基礎通訊架構。

????????該協定家族的兩個核心協定:TCP(傳輸控制協議)和IP(網際協議),為該家族中早 通過的標準。TCP(傳輸控制協議)IP(網際協議) 是先定義的兩個核心協議,所以才統稱為TCP/IP協議族。

????????數據從網絡中一個終端上的應用程序傳送到另外一個終端的應用程序,中間需要經歷很多過程,有多方參與對數據進行層層封裝、轉發。

TCP/IP協議可分為應用層、運輸層、網際層網絡接口層

3.2、組成

1、應用層

? ? ? ? 應用層的任務是通過應用進程間的交互來完成特定網絡應用。應用層協議定義的是應用進程(進程:主機中正在運行的程序)間的通信和 交互的規則。

????????對于不同的網絡應用需要不同的應用層協議。在互聯網中應用層協議很多,如域名系統 DNS,支持萬維網應用的 HTTP 協議,支持電子郵件的 SMTP 協議等 等。

2、運輸層

????????運輸層(transport layer)的主要任務就是負責向兩臺主機進程之間的通信提供通 用的數據傳輸服務。應用進程利用該服務傳送應用層報文。

運輸層主要使用一下兩種協議:

1、傳輸控制協議-TCP:

提供面向連接的,可靠的數據傳輸服務。

2、用戶數據協議-UDP:

提供無連接的,盡大努力的數據傳輸服務(不保證數據傳輸的可靠性)。

如下所示:

每一個應用層(TCP/IP參考模型的最高層)協議一般都會使用到兩個傳輸層協 議之一:

運行在TCP協議上的協議:

1、HTTP(Hypertext Transfer Protocol,超文本傳輸協議):

80端口,主要用于普通瀏 覽。


2、HTTPS(HTTP over SSL,安全超文本傳輸協議):

443端口,HTTP協議的安全版本。


3、FTP(File Transfer Protocol,文件傳輸協議):

20和21端口,用于文件傳輸。


4、POP3(Post Office Protocol, version 3,郵局協議):

110端口,收郵件用。


5、SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議):

25端口,用來發送電子 郵件。


6、TELNET(Teletype over the Network,網絡電傳):

通過一個終端 (terminal)登陸到網絡。


7、SSH(Secure Shell,用于替代安全性差的TELNET):

22端口,用于加密安全登陸用。 運行在UDP協議上的協議:


8、BOOTP(Boot Protocol,啟動協議):

應用于無盤設備。


9、NTP(Network Time Protocol,網絡時間協議):

用于網絡同步。


10、DHCP(Dynamic Host Configuration Protocol,動態主機配置協議):

67端口,動態 配置IP地址。 運行在TCP和UDP協議上:


11、DNS(Domain Name Service,域名服務):

用于完成地址查找,郵件轉發等 工作。

3、網絡層

????????網絡層的任務就是選擇合適的網間路由和交換結點,確保計算機通信的數據及時傳送。在發送數據時,網絡層把運輸層產生的報文段或用戶數據報封裝成分組和 包進行傳送。在 TCP/IP 體系結構中,由于網絡層使用 IP 協議,因此分組也叫 IP 數據報 ,簡稱數據報。

????????互聯網是由大量的異構(heterogeneous)網絡通過路由器(router)相互連 接起來的。互聯網使用的網絡層協議是無連接的網際協議(Intert Prococol) 和許多路由選擇協議,因此互聯網的網絡層也叫做網際層或 IP 層。

3.3、底層流程

TCP/UDP協議

網際層:解決在一個單一網絡上傳輸數據包的問題。

IP協議

網絡接口層:它是數據包從一個設備的網絡層傳輸到另外一個設備的網絡層遵循的規范。

比如以太網協議、Wi-Fi協議。

如下圖所示:


4、TCP連接

4.1、TCP的握手機制

????????傳輸控制協議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節流的通信協議,工作在傳輸層

4.2、TCP的三次、四次連接

TCP運輸連接主要有三個階段:

  • 建立TCP連接,也就是三次握手
  • 數據傳輸,基于已經建立的TCP連接進行可靠的數據傳輸
  • 釋放TCP連接,在完成數據的輸送后,通過四次揮手來釋放連接


????????應用程序在使用 TCP 協議之前,必須先建立 TCP 連接。在傳送數據完畢后,必須釋放已經建立的 TCP 連接。連接建立通過三次握手確保雙方都能通信,而關閉連接則通過四次揮手來完成。

????????握手的三次是為了防止失效的連接請求,揮手的四次則因服務器需要處理剩余數據和避免立即關閉導致的問題

如下圖所示:

??注意:在連接過程中,TCP首部的序列號和確認號等字段確保了數據的可靠傳輸。

4.3、TCP首部格式

????????TCP 首部格式是 TCP 協議中用來傳輸數據的報文格式,用于在發送端和接收端之間傳遞 TCP 數據。TCP 首部包含了一些必要的信息,如源端口、目標端口、序列號、確認號、標志位等,用于控制和管理 TCP 連接。


????????在三次握手的過程中,雙方會交換 TCP 首部信息,以建立連接。 TCP 連接建立后,雙方可以通過 TCP 首部中的序列號(seq)和確認號(ack)來控制和管理數據傳輸。每個 TCP 報文都包含了 TCP 首部和數據部分,其中 TCP 首部用于控制和管理數據傳輸,數據部分用于傳輸實際的數據。

1、源端口/目的端口

????????均占16比特,分別表示寫入源端口號目的端口號,用來標識發送/接收該TCP報文段的應用進程。

2、序號(sequence number)

???????? 是發送數據包中的第一個字節的序列號,占32比特,取值范圍是[0,2^32-1]。TCP是面向字節流的。在一個TCP連接中傳送的字節流中的每一個字節都按順序編號,整個要傳送的字節流的起始序號必須在連接建立時設置。

????????首部中的序號字段值則是指的是本報文段所發送的數據的第一個字節的序號。

????????假設有兩臺主機 A 和 B 建立了 TCP 連接,A 向 B 發送了一個數據包,數據部分的長度為 100 字節,此時 A 會為這個數據包分配一個唯一的序列號,假設為 1000。

????????B 收到這個數據包后,會發送一個確認包給 A,確認收到了這個數據包,并告訴 A下一個期望接收的序列號是 1100。這樣,A 就知道 B 已經成功地接收了這個數據包,并且可以繼續發送后續的數據。


????????如果某個數據包丟失了,TCP 協議會重新發送這個數據包,并在 TCP首部中使用之前分配的序列號,以告訴接收端這是之前發送的數據包。如果某個數據包重復傳輸了,TCP 協議會使用序列號來檢查數據是否已經接收過。

作用:序列號能有效保證TCP數據傳輸的可靠性和正確性,避免數據的重復傳輸和丟失。

    3、確認號(acknowledgement number)

    ????????Ack序號,占32比特,取值范圍[0,2^32-1],用于標識期望收到對方下一個TCP報文段的數據的第一個字節的序號,同時也是對之前收到的所有數據的確認。若確認號=n,則表明到序號n-1為止的所有數據都已正確接收,期望接收序號為n的數據。


    ????????在 TCP 連接中,接收端會在每個 TCP 報文中包含確認號,以告訴發送端下一個期望接收的字節的序列號。發送端會根據確認號來確認接收端已經正確地接收到了數據,并繼續發送后續的數據。

    ??注意:在連接過程中,TCP首部的序列號和確認號等字段確保了數據的可靠傳輸。

    4、標志位ACK

    ????????ACK取值為1時確認號字段才有效;取值為0時確認號字段無效。TCP規定,在連接建立后所有傳送的TCP報文段都必須把ACK置1。

    不要將確認序號Ack與標志位中的ACK搞混了,ACK和確認號Ack的區別:

    ? ? ? ? 確認標志位 ACK 和確認號都是用于保證數據傳輸可靠性的機制但具有不同的作用。

    1、確認標志位 ACK 的作用是告知發送方數據是否已經成功接收
    2、確認序號的作用是告知發送方接收方期望接收的下一個字節的序列號,Ack=seq+1。

    5、同步標志位SYN

    在TCP連接建立時用來同步序號。

    ? ? ? ?假設有兩臺主機 A 和 B 建立 TCP 連接,A 需要發送一個帶有 SYN 標志位的 TCP 報文給 B,請求建立連接。
    ????????A 發送的 SYN 報文中包含一個隨機的序列號,B 收到這個 SYN 報文后,會回復一個帶有 SYN 和 ACK 標志位的 TCP 報文,表示確認收到請求,并請求建立連接。B 回復的 SYN 和 ACK 報文中包含確認號,確認號被設置為 A 的序列號加 1,這就起到了SYN同步A序列號的作用。

    6、終止標志位FIN

    ????????表示發送方已經沒有數據需要發送,請求釋放TCP連接。在 TCP 連接關閉時,發送方和接收方都需要發送 FIN 標志位的 TCP 報文,以請求關閉連接

    ? ? ? ?FIN 標志位的作用是保證 TCP 連接的正常關閉。通過使用 FIN 標志位,TCP 協議可以保證連接的正常關閉,避免數據的丟失和不可靠性。


    ????????需要注意的是,TCP 連接關閉時可能會出現 TIME_WAIT 狀態。在 TCP 連接關閉后,發送方和接收方都需要等待一段時間,以確保對方已經收到了所有數據,并且確認了連接的關閉。這個等待時間稱為 TIME_WAIT 狀態。在 TIME_WAIT 狀態下,TCP 連接不能被重新建立。

    總結:

    ? ? ? ? TCP 首部格式和 TCP 連接是密切相關的。TCP 首部中的信息用于控制和管理 TCP 連接和數據傳輸,而 TCP 連接則是基于 TCP 首部中的信息建立的。在進行 TCP 數據傳輸時,需要使用 TCP 首部來控制和管理數據的傳輸過程,以確保數據的可靠性和正確性。

    4.4、三次握手過程介紹

    ????????TCP 建立連接的過程叫做握手,握手需要在客戶和服務器之間交換三個TCP 報文段,稱之為“三次握手”,采用三次握手主要是為了防止已失效的連接請求報文段突然又傳送到了,因而產生錯誤。

    這個連接必須是一方主動打開,另一方被動打開的。

    如下所示:

    ????????最初兩端的TCP進程都處于關閉狀態,握手之前主動打開連接的客戶端(Client)結束CLOSED階段,被動打開的服務器端(Server)也結束CLOSED階段,并進入LISTEN監聽階段,等待TCP客戶進程的連接請求。

    1.Client向Server發送TCP連接請求報文段,并進入同步已發送狀態(SYN-SENT)

     標志位SYN=1,表示“請求建立新連接”;序號seq=x,作為初始值;
    

    2.Server收到TCP連接請求報文段后,如果同意建立連接,則向Client發送TCP連接請求確認報文段,并進入同步已接收狀態(SYN-RCVD)

     標志位SYN=1、ACK=1,表示“確認Client的報文之后,結束LISTEN階段,同意創建新連接”;序號seq=y,作為初始值;確認號Ack=x+1,表示“收到Client的序號seq=x,并將其值加1作為自己確認號Ack的值,這是對Client所選擇的初始序號seq的確認;
    

    3.Client接收到Server確認收到數據的TCP報文之后,明確了數據傳輸是正常的,結束SYN-SENT階段。并返回最后一段TCP確認報文段,并進入連接已建立狀態(ESTABLISHED)

     標志位ACK=1,表示”確認收到Server同意連接的確認號Ack;序號seq=x+1,因為Client發送的第一個報文段序號為x,并且不攜帶數據,因此第二個報文段的序號為x+1;確認號Ack=y+1,表示“收到Server序號seq=y,并將其值加1作為自己確認號Ack的值;
    

    ??注意:

    ????????TCP規定,普通的TCP確認報文段可以攜帶數據。但如果不攜帶數據則不消耗序號,在這種情況下所發送的下一個數據報文段的序號仍是x。所以第三次Client發送報文段的時候,原seq=x不變,在此基礎上直接+1即可。

    總結:

    ????????Server收到來自Client的“確認收到服務器數據”的TCP報文之后,明確了數據傳輸是正常的。Server結束SYN-SENT階段,進入ESTABLISHED階段。此后客戶端和服務器端進行正常的數據傳輸,這就是“三次握手”的過程。

    4.5、第三次握手原因

    ????????由于網絡傳輸是有延時的(要通過網絡光纖和各種中間代理服務器),在傳輸的過程中,比如Client發起了SYN=1創建連接的請求(第一次握手)。

    ????????如果Server就直接創建了這個連接并返回包含SYN、ACK和Seq等內容的數據包給Client,這個數據包因為網絡傳輸的原因丟失了丟失之后Client就一直沒有接收到服務器返回的數據包。

    ? ? ? ? Client可能設置了一個超時時間,時間到了就關閉了連接創建的請求。再重新發出創建連接的請求,而Server是不知道的,如果沒有第三次握手告訴Server,Client收的到傳輸的數據的話,Server是不知道對方有沒有接收到自己返回的信息的。

    ????????“第三次握手”是Client向Server發送數據,這個數據就是要告訴服務器,Client有沒有收到服務器“第二次握手”時傳過去的數據。若發送的這個數據是“收到了”的信息,接收后服務器就正常建立TCP連接,否則建立TCP連接失敗,服務器關閉連接端口。

    ????????由此減少服務器開銷和接收到失效請求發生的錯誤。

    如下圖所示:

    4.6、四次揮手過程

    揮手之前主動釋放連接的Client結束ESTABLISHED階段,隨后開始四次揮手。

    后“兩次揮手”既讓Client知道了Server準備好釋放連接了,也讓Server知道了對方了解自己準備好釋放連接了。于是,可以確認關閉連接,由此完成“四次揮手”。

    1.首先Client想要釋放連接,向Server發送一段TCP報文

     標記位FIN=1,表示”請求釋放連接“;序號seq=u,設為初始值;隨后Client客戶端進入`FIN-WAIT-1階段,即半關閉階段`。并停止發送數據給Server,`但Client這邊仍然可以收到Server發送過來的數據`;
    

    2.Server端接收到從Client發出的TCP報文之后,確認了客戶端想要釋放連接,隨后Server結束ESTABLISHED階段,進入CLOSE-WAIT階段(半關閉狀態)

    標記位ACK=1,表示”接收到Client發送的釋放連接的請求“;
    序號seq=v
    確認號Ack=u+1
    Client收到Server發過來的報文后,進入`FIN-WAIT-2階段`;
    

    前"兩次揮手"既讓Server知道了Client想要釋放連接,也讓Client知道Server了解了自己想要釋放連接的請求。于是,可以確認關閉客戶端到服務器端方向上的連接了。

    3.Server自從發出ACK確認報文之后,經過CLOSED-WAIT階段,做好了釋放連接準備,再次向客戶端發出一段TCP報文

    標志位FIN=1、ACK=1,表示”已經準備好釋放連接了“;
    序號seq=w;
    確認號Ack=u+1;
    

    隨后Server端結束CLOSE-WAIT階段,進入LAST-ACK階段(最后確認)。并且停止向Client發送數據,但是仍然能夠接收從對方傳輸過來的數據。

    4.Client收到從Server端發出的TCP報文,確認了Server已做好釋放連接的準備,結束FIN-WAIT-2階段,進入TIME-WAIT階段,并向Server發送一段報文

    標記位ACK=1,表示”收到了Server準備好釋放連接的信號“;
    序號seq=u+1;
    確認號Ack=w+1
    隨后Client在TIME-WAIT階段等待`2MSL`
    

    為什么Client要等待2MSL?:

    ? ? ? ? 當客戶端發出最后的ACK確認報文時,并不能確定服務器端能夠收到該段報文。所以客戶端在發送完ACK確認報文之后,會設置一個時長為2MSL的計時器。

    MSL指的是Maximum Segment Lifetime:一段TCP報文在傳輸過程中的最大生命周期。

    2MSL即是服務器端發出為FIN報文和客戶端發出的ACK確認報文所能保持有效的最大時長。

    ????????Server收到從Client發出的TCP報文之后結束LAST-ACK階段,進入CLOSED階段。由此正式確認關閉連接。
    ????????Client等待完2MSL之后,結束TIME-WAIT階段,進入CLOSED階段,由此完成“四次揮手”。

    總結:

    ????????后“兩次揮手”既讓Client知道了Server準備好釋放連接了,也讓Server知道了對方了解自己準備好釋放連接了。于是,可以確認關閉連接,由此完成“四次揮手”。

    1、為什么“握手”是三次,“揮手”要四次?

    ? ? ? ? TCP建立連接時之所以只需要"三次握手",是因為SYN建立連接報文與ACK確認接收報文是在同一次"握手"當中傳輸的,所以"三次握手"不多也不少,正好讓雙方明確彼此信息互通。

    ? ? ? ? TCP釋放連接時之所以需要“四次揮手”,是因為FIN釋放連接報文與ACK確認接收報文是分別由第二次和第三次"握手"傳輸的。釋放連接時,被動方服務器突然收到主動方客戶端釋放連接的請求時并不能立即釋放連接。

    ????????因為還有必要的數據需要處理,所以服務器先返回ACK確認收到報文,經過CLOSE-WAIT階段準備好釋放連接之后,才能返回FIN釋放連接報文

    2、如果已經建立了連接,但是客戶端突然出現故障了怎么辦?


    ????????TCP設有一個保活計時器,客戶端如果出現故障,服務器不能一直等下去,白白浪費資源。服務器每收到一次客戶端的請求后都會重新復位這個計時器,時間通常是設置為2小時

    ????????若兩小時還沒有收到客戶端的任何數據,服務器就會發送一個探測報文段,以后每隔75秒鐘發送一次。若一連發送10個探測報文仍然沒反應,服務器就認為客戶端出了故障,接著就關閉連接。

    3、在PC瀏覽器的地址欄輸入URL,從發起請求到收到請求頁面響應,發生了什么?


    1、首先,在瀏覽器地址欄中輸入url,先解析url,檢測url地址是否合法

    2、瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存-ISP緩存,如果緩存中有,會直接在屏幕中顯示頁面內容。若沒有,則跳到第三步操作。

    瀏覽器緩存:瀏覽器會記錄DNS一段時間,因此,只是第一個地方解析DNS請求;

    操作系統緩存:如果在瀏覽器緩存中不包含這個記錄,則會使系統調用操作系統,獲取操作系統的記錄(保存最近的DNS查詢緩存);

    路由器緩存:如果上述兩個步驟均不能成功獲取DNS記錄,繼續搜索路由器緩存;

    ISP緩存:若上述均失敗,繼續向ISP搜索。

    3、在發送http請求前,需要域名解析(DNS解析),解析獲取相應的IP地址。

    4、瀏覽器向服務器發起tcp連接,與瀏覽器建立tcp三次握手。

    5、握手成功后,瀏覽器向服務器發送http請求,請求數據包。服務器處理收到的請求,將數據返回至瀏覽器。

    6、瀏覽器收到HTTP響應,瀏覽器解碼響應,如果響應可以緩存,則存入緩存。

    7、 瀏覽器發送請求獲取嵌入在HTML中的資源(html,css,javascript,圖片,音樂…),對于未知類型,會彈出對話框。

    8、 瀏覽器發送異步請求,頁面全部渲染結束。


    5、Http和Https

    5.1、http的定義

    ????????HTTP 是一個在計算機世界里專門在兩點之間傳輸文字、圖片音頻、視頻等超文本數據的約定和規范

    5.2、區別和聯系

    如下圖所示:

    5.3、常用HTTP狀態碼

    表示客戶端HTTP請求的返回結果標識服務器處理是否正常表明請求出現的錯誤等。

    狀態碼的類別:


    參考文章:

    1、計算機中網絡協議三要素,網絡協議的三要素是什么?各有什么含義?-CSDN博客文章瀏覽閱讀1.9k次。網絡協議定義為數據交換的規則集合,主要包括語法、語義及時序三個要素。語法規定信息格式,語義說明通信行為,時序定義通信順序。TCP/IP協議是Internet廣泛采用的標準,由ARPA在1977年至1979年間推出,現已成為網絡通信的通用語言。理解網絡協議對于網絡通信至關重要。 https://blog.csdn.net/weixin_30095015/article/details/117955261?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522d35aa3ebe0f31892ec94aad8f5fec282%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=d35aa3ebe0f31892ec94aad8f5fec282&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-7-117955261-null-null.142^v102^control&utm_term=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E5%8D%8F%E8%AE%AE&spm=1018.2226.3001.4187

    2、網絡協議精講-CSDN博客文章瀏覽閱讀2.9k次。計算機網路協議1、TCP/IP的四層模型應用層: http/smtp/dns/rtp…傳輸層:TCP/UDP網際層:IP網絡接口層2、HTTP三次握手和四次揮手三次握手第一次握手:客戶端發送第一個包,其中SYN標志位為1, ACK=0,發送順序號seq=x(隨機int)。客戶端進入SYN發送狀態,等待服務器確認。第二次握手:服務器收到這個包后發送第二個包,其中包SYN、ACK標志位為1,發送順序號seq=Y(隨機int),接收順序號ack=x+1,此時服務器進入SYN接收狀態。_什么是協議計算機網絡 https://blog.csdn.net/weixin_40307206/article/details/107764053?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522d35aa3ebe0f31892ec94aad8f5fec282%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=d35aa3ebe0f31892ec94aad8f5fec282&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-8-107764053-null-null.142^v102^control&utm_term=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E5%8D%8F%E8%AE%AE&spm=1018.2226.3001.41873、TCP協議+三次握手/四次揮手過程(帶圖詳解!!!)_tcp握手揮手協議過程-CSDN博客文章瀏覽閱讀2k次,點贊4次,收藏17次。TCP是一種面向連接的、可靠的通信協議,其連接建立通過三次握手確保雙方都能通信,而關閉連接則通過四次揮手來完成。握手的三次是為了防止失效的連接請求,揮手的四次則因服務器需要處理剩余數據和避免立即關閉導致的問題。在連接過程中,TCP首部的序列號和確認號等字段確保了數據的可靠傳輸。 https://blog.csdn.net/BigSmileBigSun/article/details/131996525?ops_request_misc=&request_id=&biz_id=102&utm_term=tcp%E7%9A%84%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-131996525.142^v102^control&spm=1018.2226.3001.4187

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/pingmian/89761.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89761.shtml
    英文地址,請注明出處:http://en.pswp.cn/pingmian/89761.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    密碼管理安全防御

    密碼管理是信息安全的核心環節,其目標是通過規范密碼的生成、存儲、傳輸、驗證和生命周期管理,防止未授權訪問,保護用戶賬號和系統資源的安全。以下從核心原則、技術實踐、常見問題及解決方案等方面詳細說明: 一、密碼管理的核心原則 密碼管理需遵循“安全性”與“可用性…

    Java異步日志系統性能優化實踐指南:基于Log4j2異步Appender與Disruptor

    Java異步日志系統性能優化實踐指南:基于Log4j2異步Appender與Disruptor 一、技術背景與應用場景 在高并發的后端應用中,日志記錄往往成為性能瓶頸之一。同步寫日志會阻塞業務線程,導致響應延遲;而簡單的異步隊列實現又可能出現積壓…

    Mybatis07-緩存

    一、緩存機制的原理計算機每次從mysql中執行sql語句,都是內存與硬盤的通信,對計算機來說,影響效率。因此使用緩存機制。1-1、MyBatis 的緩存機制:執行 DQL(select 語句)的時候,將查詢結果放到緩…

    【機器學習深度學習】LoRA 與 QLoRA:大模型高效微調的進階指南

    目錄 前言 一、LoRA:低秩微調的經典之作 二、QLoRA:效率與精度的升級版 三、LoRA vs QLoRA:如何選擇? 3.1 性能維度對比 3.2 根據「顯卡資源」選擇 3.3 根據「任務類型與目標」選擇 3.4 根據「模型規模」選擇 3.5 根據…

    教育行業網絡升級最佳實踐:SD-WAN、傳統方案與混合方案對比分析

    隨著教育行業的數字化轉型不斷深入,網絡的穩定性、靈活性和安全性成為各類教育應用(如遠程課堂、智慧校園和教育云平臺)的核心支撐。然而,傳統的 MPLS 專線方案成本高、擴展性差,而純 SD-WAN 的方案在極高可靠性要求的…

    [黑馬頭條]-文章列表加載

    目錄 1.1)需求分析 1.2)表結構分析 ap_article 文章基本信息表 ap_article_config 文章配置表 ap_article_content 文章內容表 導入文章數據庫 實現思路 接口定義 功能實現 定義接口 編寫mapper文件 編寫業務層代碼 實現類: 定義常量類 編寫控制器代碼 …

    使用TIANAI-CAPTCHA進行行為驗證碼的生成和緩存的二次校驗

    1.導入依賴&#xff1a;<dependency><groupId>cloud.tianai.captcha</groupId><artifactId>tianai-captcha-springboot-starter</artifactId><version>1.5.2</version> </dependency>2.在application.yml中配置驗證碼相關配置…

    db.refresh()的重復使用和db.rollback()

    db.refresh()在 SQLAlchemy 中&#xff0c;db.refresh() 用于從數據庫中重新加載對象的狀態&#xff0c;確保對象屬性與數據庫中的實際數據保持一致。下面詳細介紹其使用場景和作用&#xff1a;1.獲取數據庫生成的值當數據庫自動生成字段&#xff08;如自增 ID、默認值、觸發器…

    《Web安全之機器學習入門》讀書筆記總結

    目錄 一、案例總結 1、基礎知識 &#xff08;1&#xff09;第1章 通向智能安全的旅程 &#xff08;2&#xff09;第2章 打造機器學習工具箱 &#xff08;3&#xff09;第3章 機器學習概述 &#xff08;4&#xff09;第4章 Web安全基礎 2、安全案例 &#xff08;1&#…

    github 近期熱門項目-2025.7.20

    github 近期熱門項目-2025.7.20 GitHub 上近期熱門或趨勢項目的信息可以從多個來源獲取,包括 GitHub Trending 頁面、技術社區推薦、以及各大技術媒體的報道。以下是一些近期在 GitHub 上備受關注的項目類別和示例: 1. AI 與機器學習項目 隨著 AI 技術的快速發展,許多開源…

    使用Python清理Excel中的空行和單元格內部空行:初學者指南

    前言 作為數據處理人員或辦公室工作者,你可能經常遇到Excel文件中存在多余空行或單元格內有多余空行的問題。這些不必要的空白會影響數據的美觀性,更重要的是會給后續的數據分析、合并或處理帶來麻煩。本文將介紹一個簡單的Python腳本,幫助你高效地解決這些問題。 很多工具…

    華為歐拉系統(openEuler)安裝 Docker 容器完整教程

    &#x1f525; 前言&#xff1a;在國產化操作系統日益普及的當下&#xff0c;華為歐拉系統&#xff08;openEuler&#xff09;憑借其穩定性和安全性受到不少用戶青睞。但 Docker 官方暫未提供對 openEuler 的原生支持&#xff0c;不過好在 openEuler 與 CentOS 底層架構兼容&am…

    數據結構--JDK17新增語法和順序表

    一.yield關鍵字用于switch語句上的case代碼塊的返回值舉例&#xff1a;二.var關鍵字作用&#xff1a;當類型名字較長時可以簡化代碼。注意事項&#xff1a;1.不能使用var來聲明字段2.不能使用var來聲明方法參數3.不能使用var來聲明方法返回類型4.使用時必須初始化&#xff0c;但…

    1 滲透基礎

    目錄 基礎前沿 1 vulhub環境搭建 1 proxychains工具&#xff1a;編輯配置文件 2 docker docker環境搭建 配置docker的代理&#xff1a; 2 nginx編譯安裝--FPM 1 php.ini 2 php-fpm 3 nginx 4 nginx php-fpm php 1 基本角色分工 2. 請求處理全流程 步驟 1&#xff…

    基于Java+SpringBoot 的榆林特色旅游網站

    源碼編號&#xff1a;S678源碼名稱&#xff1a;基于SpringBoot 的榆林特色旅游網站用戶類型&#xff1a;雙角色&#xff0c;用戶、管理員數據庫表數量&#xff1a;22 張表主要技術&#xff1a;Java、Vue、ElementUl 、SpringBoot、Maven運行環境&#xff1a;Windows/Mac、JDK1…

    Python設計模式深度解析:單例模式(Singleton Pattern)完全指南

    Python設計模式深度解析&#xff1a;單例模式&#xff08;Singleton Pattern&#xff09;完全指南前言什么是單例模式&#xff1f;單例模式的三個關鍵要素基礎實現&#xff1a;異常控制式單例Python中的經典單例實現1. 使用 __new__ 方法實現2. 線程安全的單例實現3. 裝飾器實現…

    LVS 原理詳解及部署(包含實驗案例)

    一、集群和分布式簡介1.系統性能擴展方式Scale Up&#xff08;向上擴展&#xff09;&#xff1a;通過增強單臺服務器的硬件性能&#xff08;如提升 CPU、內存、存儲等&#xff09;來提高處理能力&#xff0c;適用于業務初期或對單點性能要求高的場景。這種方式簡單易行&#xf…

    兩個路由器通過不同的網段互聯

    一&#xff0c;實驗拓撲圖&#xff1a;二、實驗說明 &#xff1a;在兩個接口配置好兩個不同網段的的ip地址后是不能相互通信的。經過測試用ospf把兩個網段宣告進area 0 是行不通的。最后我們通過靜態路由來配置&#xff0c;遇到一個最大的問題是&#xff0c;我們的下一跳地址應…

    Python趣味算法:冒泡排序——從理論到極致優化

    排序算法是程序員的必修課,而冒泡排序是理解算法思維的絕佳起點。本文將深入解析冒泡排序的7種優化技巧,通過可視化演示+多維度性能分析,帶你徹底掌握這一經典算法! 看在每天堅持分享有趣知識的份上,點個關注吧(づ ̄ 3 ̄)づ 關注是我更新的動力 ̄︶ ̄? ̄︶ ̄?) 作者會…

    [simdjson] document_stream | iterate_many() | batch_size | 線程加速 | 輕量handle

    第七章&#xff1a;文檔流 歡迎回來 在前面的章節中&#xff0c;我們學習了如何使用解析器結合填充字符串獲取表示JSON根節點的文檔&#xff0c;并通過按需API&#xff08;On-Demand API&#xff09;遍歷值、對象和數組&#xff0c;同時使用simdjson_result進行錯誤處理。 到…