国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

天津河?xùn)|區(qū)網(wǎng)站建設(shè)持續(xù)優(yōu)化完善防控措施

天津河?xùn)|區(qū)網(wǎng)站建設(shè),持續(xù)優(yōu)化完善防控措施,wordpress登入插件,個(gè)人網(wǎng)站建設(shè)程序設(shè)計(jì)目錄 URL HTTP(超文本傳輸協(xié)議) FTP(文件傳輸協(xié)議) File mailto HTTP的方法 Socket URL URL(Uniform Resource Locator)中文名為統(tǒng)一資源定位符,它是互聯(lián)網(wǎng)上用來(lái)標(biāo)識(shí)某一資源的地址。就…

目錄

URL

HTTP(超文本傳輸協(xié)議)

FTP(文件傳輸協(xié)議)

File

mailto

HTTP的方法

Socket


URL

  • URL(Uniform Resource Locator)中文名為統(tǒng)一資源定位符,
  • 它是互聯(lián)網(wǎng)上用來(lái)標(biāo)識(shí)某一資源的地址。
  • 就像是現(xiàn)實(shí)生活中家庭住址一樣,
  • 通過(guò)這個(gè)地址可以準(zhǔn)確地找到對(duì)應(yīng)的資源,
  • 比如一個(gè)網(wǎng)頁(yè)、一張圖片、一個(gè)文件等。

HTTP(超文本傳輸協(xié)議)

? ? HTTP 是用于傳輸超媒體文檔(例如 HTML)的應(yīng)用層協(xié)議。

? ? 例如, “http://example.com”

FTP(文件傳輸協(xié)議)

? ? FTP 主要用于在網(wǎng)絡(luò)上進(jìn)行文件的上傳和下載。

File

? ? “file” 協(xié)議主要用于訪問(wèn)本地計(jì)算機(jī)上的文件。

? ? 例如,“file:///C:/Users/Documents/report.html”</span>

mailto

? ? “mailto” 是一種用于啟動(dòng)電子郵件客戶端并創(chuàng)建新郵件的協(xié)議。

? ? 如 “mailto:someone@example.com”

HTTP的方法

GET: 訪問(wèn)Web服務(wù)器獲取網(wǎng)頁(yè)數(shù)據(jù)

POST:在表單中填寫數(shù)據(jù)并發(fā)給服務(wù)器

PUT:替換服務(wù)器上的文件

DELETE:刪除服務(wù)器上的文件

打開有一個(gè)圖片和很多文字的網(wǎng)頁(yè).

瀏覽器向網(wǎng)頁(yè)服務(wù)器請(qǐng)求數(shù)據(jù),

服務(wù)器返回?cái)?shù)據(jù),

然后會(huì)在請(qǐng)求一次圖片的數(shù)據(jù),

瀏覽器再返回圖片的數(shù)據(jù)

IP地址:

互聯(lián)網(wǎng)協(xié)議地址,用于在網(wǎng)絡(luò)環(huán)境中識(shí)別和定位這些設(shè)備

好像是現(xiàn)實(shí)生活中每棟房子都有一個(gè)獨(dú)一無(wú)二的門牌號(hào)一樣

Pv4 地址由 32 位二進(jìn)制數(shù)組成

例如,“192.168.1.1”

IPv6由 128 位二進(jìn)制數(shù)組成

例如,“2001:0db8:85a3:0000:0000:8a2e:0370:7334”

分類:

A類 例如,10.0.0.0 - 10.255.255.255 常用于大型企業(yè)內(nèi)部網(wǎng)絡(luò)

B類 例如,172.16.0.0 - 172.31.255.255 一些高?;蛘咧行推髽I(yè)的園區(qū)網(wǎng)絡(luò)可能會(huì)使用

C類 例如,192.168.1.0 - 192.168.1.255 ?家庭中的無(wú)線路由器通常會(huì)設(shè)備分配 C 類地址

D類 D 類地址的第一個(gè)字節(jié)范圍是 224 - 239,它主要用于多播(組播)通信。

E類 E 類地址的第一個(gè)字節(jié)范圍是 240 - 255,它是保留地址主要用于實(shí)驗(yàn)和研究目的。

DNS:

它就像是一個(gè)巨大的電話簿,

將人們?nèi)菀子洃浀挠蛎?#xff08;如baidu.com)

和計(jì)算機(jī)在網(wǎng)絡(luò)中實(shí)際使用的 IP 地址(如 14.215.177.38)

相互映射起來(lái)。

DNS 是一個(gè)分層的分布式數(shù)據(jù)庫(kù)系統(tǒng)。

它的最頂層是根域名服務(wù)器,

全球共有 13 組根域名服務(wù)器(用字母 A - M 表示)

當(dāng)用戶在瀏覽器中輸入一個(gè)域名時(shí),首先會(huì)向本地 DNS 服務(wù)器

(通常由互聯(lián)網(wǎng)服務(wù)提供商提供)發(fā)送查詢請(qǐng)求。

本地 DNS 服務(wù)器會(huì)先查看自己的緩存,

如果緩存中有該域名對(duì)應(yīng)的 IP 地址,

就直接返回給瀏覽器。如果緩存中沒(méi)有,

本地 DNS 服務(wù)器會(huì)向根域名服務(wù)器發(fā)送請(qǐng)求

,根域名服務(wù)器會(huì)告訴它應(yīng)該去詢問(wèn)哪個(gè)頂級(jí)域名服務(wù)器。

然后本地 DNS 服務(wù)器向頂級(jí)域名服務(wù)器發(fā)送請(qǐng)求,

頂級(jí)域名服務(wù)器再引導(dǎo)它向二級(jí)域名服務(wù)器等更低級(jí)別的域名服務(wù)器詢問(wèn),

直到找到該域名對(duì)應(yīng)的 IP 地址,

并將其返回給瀏覽器。

  1. 用戶輸入網(wǎng)址

  2. 域名解析

    • 查詢?yōu)g覽器緩存
    • 向本地 DNS 服務(wù)器查詢
    • DNS 服務(wù)器查詢過(guò)程
      • 本地 DNS 緩存查詢:如果緩存中有該域名對(duì)應(yīng)的 IP 地址,就直接將結(jié)果返回給瀏覽器。
      • 遞歸查詢(如果緩存沒(méi)有):引導(dǎo)本地 DNS 服務(wù)器向更下一級(jí)的域名服務(wù)器查詢,直到找到域名對(duì)應(yīng)的 IP 地址。
      • 返回 IP 地址給瀏覽器:最后,本地 DNS 服務(wù)器將查詢到的 IP 地址返回給瀏覽器。

建立連接

    • 確定通信協(xié)議:瀏覽器根據(jù)網(wǎng)址中的協(xié)議部分(如 http 或 https)來(lái)確定要使用的通信協(xié)議。還需要進(jìn)行 SSL/TLS 加密協(xié)議的握手過(guò)程。
    • TCP 三次握手(以 HTTP 為例)
      • 第一次握手:瀏覽器向服務(wù)器發(fā)送一個(gè) SYN(同步)數(shù)據(jù)包,其中包含一個(gè)隨機(jī)生成的序列號(hào)。這個(gè)序列號(hào)用于后續(xù)的數(shù)據(jù)傳輸順序和確認(rèn)。
      • 第二次握手:服務(wù)器收到 SYN 數(shù)據(jù)包后,會(huì)返回一個(gè) SYN - ACK(同步 - 確認(rèn))數(shù)據(jù)包。這個(gè)數(shù)據(jù)包中包含服務(wù)器自己生成的序列號(hào),同時(shí)確認(rèn)瀏覽器發(fā)送的序列號(hào)。
      • 第三次握手:瀏覽器收到 SYN - ACK 數(shù)據(jù)包后,會(huì)發(fā)送一個(gè) ACK(確認(rèn))數(shù)據(jù)包,確認(rèn)服務(wù)器發(fā)送的序列號(hào)。通過(guò)這三次握手,瀏覽器和服務(wù)器之間建立了一個(gè)可靠的 TCP 連接,可以進(jìn)行數(shù)據(jù)傳輸。

發(fā)送 HTTP 請(qǐng)求

    • 構(gòu)建請(qǐng)求報(bào)文:瀏覽器根據(jù)用戶輸入的網(wǎng)址和要獲取的資源類型(如網(wǎng)頁(yè)、圖片、腳本等)構(gòu)建 HTTP 請(qǐng)求報(bào)文。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 請(qǐng)求報(bào)文包括請(qǐng)求行(包含請(qǐng)求方法,如 GET 用于獲取資源;請(qǐng)求的 URL 路徑;HTTP 協(xié)議版本)、? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 請(qǐng)求頭部(包含如 User - Agent,表示瀏覽器的類型和版本;Accept,表示瀏覽器可以接受的內(nèi)容類型等信息)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 和請(qǐng)求體(對(duì)于某些請(qǐng)求方法,如 POST,會(huì)包含要發(fā)送的數(shù)據(jù))。
    • 發(fā)送請(qǐng)求:瀏覽器通過(guò)已經(jīng)建立的 TCP 連接將請(qǐng)求報(bào)文發(fā)送給服務(wù)器。

服務(wù)器處理請(qǐng)求并返回響應(yīng)

    • 服務(wù)器接收請(qǐng)求:服務(wù)器的網(wǎng)絡(luò)接口接收瀏覽器發(fā)送的請(qǐng)求報(bào)文,并將其傳遞給服務(wù)器軟件(如 Apache、Nginx 等)進(jìn)行處理。
    • 處理請(qǐng)求:服務(wù)器軟件根據(jù)請(qǐng)求報(bào)文中的 URL 路徑和請(qǐng)求方法來(lái)查找對(duì)應(yīng)的資源。
    • 構(gòu)建響應(yīng)報(bào)文:服務(wù)器將找到的資源(或動(dòng)態(tài)生成的內(nèi)容)構(gòu)建成響應(yīng)報(bào)文。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 響應(yīng)報(bào)文包括響應(yīng)行(包含 HTTP 協(xié)議版本;響應(yīng)狀態(tài)碼,如 200 表示成功,404 表示未找到資源等;響應(yīng)狀態(tài)短語(yǔ))、? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?響應(yīng)頭部(包含如 Content - Type,表示響應(yīng)內(nèi)容的類型;Content - Length,表示響應(yīng)內(nèi)容的長(zhǎng)度等信息)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 和響應(yīng)體(包含實(shí)際的資源內(nèi)容)。
    • 發(fā)送響應(yīng):服務(wù)器通過(guò) TCP 連接將響應(yīng)報(bào)文發(fā)送回瀏覽器。

瀏覽器接收并處理響應(yīng)

    • 接收響應(yīng):瀏覽器通過(guò) TCP 連接接收服務(wù)器發(fā)送的響應(yīng)報(bào)文。
    • 解析響應(yīng):瀏覽器首先查看響應(yīng)狀態(tài)碼,判斷請(qǐng)求是否成功。如果狀態(tài)碼是 200,表示成功獲取資源,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?瀏覽器會(huì)根據(jù)響應(yīng)頭部中的 Content - Type 來(lái)確定如何處理響應(yīng)體中的內(nèi)容。例如,如果是 “text/html”,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 瀏覽器會(huì)解析 HTML 內(nèi)容;如果是 “image/jpeg”,會(huì)顯示圖片等。
    • 渲染網(wǎng)頁(yè)(如果是 HTML)
      • 解析 HTML:瀏覽器開始解析 HTML 內(nèi)容,構(gòu)建 DOM(文檔對(duì)象模型)樹。它會(huì)識(shí)別 HTML 標(biāo)簽,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 將標(biāo)簽轉(zhuǎn)換為 DOM 節(jié)點(diǎn),并確定它們之間的層次關(guān)系。
      • 加載外部資源:瀏覽器在解析 HTML 時(shí),會(huì)發(fā)現(xiàn)一些標(biāo)簽用于引用外部資源,如<link>標(biāo)簽用于? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 引用 CSS 樣式表,<script>標(biāo)簽用于引用 JavaScript 腳本,<img>標(biāo)簽用于引用圖片等。瀏覽器? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?會(huì)根據(jù)這些標(biāo)簽的屬性(如 src 屬性用于指定資源的位置)發(fā)送新的請(qǐng)求來(lái)獲取這些外部資源。
      • 渲染頁(yè)面布局和樣式:瀏覽器結(jié)合 DOM 樹和獲取到的 CSS 樣式表來(lái)確定頁(yè)面的布局和樣式。它會(huì)計(jì)算? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?每個(gè)元素的位置、大小等屬性,并將它們繪制到屏幕上。
      • 執(zhí)行 JavaScript:對(duì)于加載的 JavaScript 腳本,瀏覽器會(huì)執(zhí)行它們。JavaScript 可以用于操作 DOM 樹,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?實(shí)現(xiàn)動(dòng)態(tài)效果,如添加、刪除或修改網(wǎng)頁(yè)元素;也可以用于發(fā)送異步請(qǐng)求(如 AJAX 請(qǐng)求)來(lái)獲取新的? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 數(shù)據(jù)并更新頁(yè)面等。

Socket

  • Socket(套接字)是一種在網(wǎng)絡(luò)編程中用于實(shí)現(xiàn)進(jìn)程間通信(IPC)的機(jī)制,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 它提供了應(yīng)用程序和網(wǎng)絡(luò)協(xié)議棧之間的接口??梢园?Socket 想象成一個(gè)電話插孔,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?不同的應(yīng)用程序(就像不同的電話)通過(guò)這個(gè)插孔與網(wǎng)絡(luò)(電話線網(wǎng)絡(luò))進(jìn)行通信。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 它使得應(yīng)用程序能夠在網(wǎng)絡(luò)上發(fā)送和接收數(shù)據(jù),無(wú)論是在本地網(wǎng)絡(luò)還是互聯(lián)網(wǎng)環(huán)境中。

建立 Socket 連接的過(guò)程(以 TCP 為例)

服務(wù)器端操作

  • 創(chuàng)建 Socket 對(duì)象:服務(wù)器首先需要?jiǎng)?chuàng)建一個(gè) Socket 對(duì)象。在編程語(yǔ)言中,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 通常會(huì)調(diào)用相關(guān)的 Socket 庫(kù)函數(shù)來(lái)完成這一操作。例如,在 Python 中,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 可以使用socket.socket(socket.AF_INET, socket.SOCK_STREAM)來(lái)創(chuàng)建一個(gè) TCP Socket。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這里AF_INET表示使用 IPv4 地址族,SOCK_STREAM表示使用 TCP 協(xié)議。這個(gè)操作相當(dāng)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 于在服務(wù)器端準(zhǔn)備了一個(gè)通信端點(diǎn),等待客戶端來(lái)連接。
  • 綁定地址和端口:創(chuàng)建 Socket 后,服務(wù)器需要將這個(gè) Socket 綁定到一個(gè)特定的 IP 地址和端口號(hào)上。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?IP 地址用于在網(wǎng)絡(luò)中定位服務(wù)器,端口號(hào)則用于區(qū)分不同的服務(wù)。例如,Web 服務(wù)器通常使用端口 80(HTTP)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 或 443(HTTPS)。在 Python 中,可以使用bind((host, port))方法來(lái)實(shí)現(xiàn)綁定,其中host是服務(wù)器的 IP 地址? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?port是端口號(hào)。這一步就好比給電話插孔分配一個(gè)唯一的電話號(hào)碼,使得客戶端能夠找到這個(gè)服務(wù)器。
  • 監(jiān)聽連接請(qǐng)求:綁定完成后,服務(wù)器開始監(jiān)聽來(lái)自客戶端的連接請(qǐng)求。這通過(guò)調(diào)用listen()函數(shù)來(lái)實(shí)現(xiàn),? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?它會(huì)將服務(wù)器的 Socket 設(shè)置為監(jiān)聽狀態(tài),等待客戶端的連接。在這個(gè)階段,服務(wù)器就像一個(gè)電話總機(jī),? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?等待著來(lái)電(客戶端連接請(qǐng)求)

客戶端操作

    • 創(chuàng)建 Socket 對(duì)象:客戶端同樣需要?jiǎng)?chuàng)建一個(gè) Socket 對(duì)象,方式與服務(wù)器類似。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例如,在 Python 中也是使用socket.socket(socket.AF_INET, socket.SOCK_STREAM)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?來(lái)創(chuàng)建一個(gè) TCP Socket,用于與服務(wù)器進(jìn)行通信。這相當(dāng)于客戶端準(zhǔn)備好自己的電話,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?以便撥打服務(wù)器的 “電話”。
    • 發(fā)起連接請(qǐng)求:客戶端創(chuàng)建 Socket 后,使用connect((server_host, server_port))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 方法向服務(wù)器發(fā)起連接請(qǐng)求。這里server_host是服務(wù)器的 IP 地址,server_port? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 是服務(wù)器監(jiān)聽的端口號(hào)。這個(gè)過(guò)程就像客戶端撥打服務(wù)器的 “電話號(hào)碼”,嘗試建立通信連接。

三次握手過(guò)程(TCP 連接建立)

    • 第一次握手:客戶端向服務(wù)器發(fā)送一個(gè) SYN(同步)數(shù)據(jù)包。這個(gè)數(shù)據(jù)包中包含一個(gè)隨機(jī)生成的? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 初始序列號(hào)(Sequence Number),用于后續(xù)的數(shù)據(jù)傳輸順序和確認(rèn)。例如,假設(shè)客戶端生成的序列號(hào)為x,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這個(gè) SYN 數(shù)據(jù)包就像是客戶端向服務(wù)器發(fā)出的 “我想和你建立連接,我的初始序列號(hào)是x” 的信號(hào)。
    • 第二次握手:服務(wù)器收到客戶端的 SYN 數(shù)據(jù)包后,會(huì)向客戶端返回一個(gè) SYN - ACK(同步 - 確認(rèn))數(shù)據(jù)包。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 這個(gè)數(shù)據(jù)包包含兩個(gè)重要信息:一是服務(wù)器自己生成的初始序列號(hào)(假設(shè)為y),二是對(duì)客戶端發(fā)送的序列號(hào)x? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 的確認(rèn)(ACK = x + 1)。這相當(dāng)于服務(wù)器回復(fù)客戶端 “我收到你的連接請(qǐng)求了,我的初始序列號(hào)是y,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?我確認(rèn)收到你的序列號(hào)x,現(xiàn)在我們可以開始通信了”。
    • 第三次握手:客戶端收到服務(wù)器的 SYN - ACK 數(shù)據(jù)包后,會(huì)發(fā)送一個(gè) ACK(確認(rèn))數(shù)據(jù)包給服務(wù)器。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這個(gè) ACK 數(shù)據(jù)包中的確認(rèn)號(hào)是y + 1,用于確認(rèn)收到服務(wù)器的序列號(hào)y。通過(guò)這三次握手,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?客戶端和服務(wù)器之間就建立了一個(gè)可靠的 TCP 連接,就像雙方通過(guò)電話建立了穩(wěn)定的通話通道,可以開始進(jìn)行數(shù)據(jù)傳輸了。

數(shù)據(jù)傳輸階段

    • 發(fā)送數(shù)據(jù):連接建立后,無(wú)論是客戶端還是服務(wù)器都可以通過(guò)已經(jīng)建立的 Socket 發(fā)送數(shù)據(jù)。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?在編程中,通常使用send()write()函數(shù)來(lái)發(fā)送數(shù)據(jù)。例如,在 Python 中,客戶端? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以使用socket.send(data)將數(shù)據(jù)data發(fā)送給服務(wù)器。數(shù)據(jù)會(huì)被網(wǎng)絡(luò)協(xié)議棧分割成? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 合適大小的數(shù)據(jù)包,并添加 TCP 頭部(包括序列號(hào)、確認(rèn)號(hào)等信息),然后通過(guò)網(wǎng)絡(luò)發(fā)送給對(duì)方。
    • 接收數(shù)據(jù):對(duì)方(服務(wù)器或客戶端)使用recv()read()函數(shù)來(lái)接收數(shù)據(jù)。例如,服務(wù)器可以? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用socket.recv(buffer_size)來(lái)接收客戶端發(fā)送的數(shù)據(jù),其中buffer_size表示接收緩沖區(qū)的大小。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當(dāng)數(shù)據(jù)包到達(dá)接收端時(shí),網(wǎng)絡(luò)協(xié)議棧會(huì)根據(jù) TCP 頭部的信息進(jìn)行排序、確認(rèn)等操作,將數(shù)據(jù)組裝成完整的消息并傳遞給應(yīng)用程序。

關(guān)閉 Socket 連接

    • 主動(dòng)關(guān)閉(以客戶端為例):當(dāng)數(shù)據(jù)傳輸完成后,客戶端可以主動(dòng)關(guān)閉 Socket 連接。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這通過(guò)調(diào)用close()函數(shù)來(lái)實(shí)現(xiàn)。在關(guān)閉之前,客戶端會(huì)向服務(wù)器發(fā)送一個(gè) FIN(結(jié)束)數(shù)據(jù)包,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?告知服務(wù)器自己不再發(fā)送數(shù)據(jù)了。
    • 四次揮手過(guò)程(TCP 連接關(guān)閉)
      • 第一次揮手:客戶端發(fā)送 FIN 數(shù)據(jù)包,表示自己沒(méi)有數(shù)據(jù)要發(fā)送了,請(qǐng)求關(guān)閉連接。
      • 第二次揮手:服務(wù)器收到 FIN 數(shù)據(jù)包后,會(huì)發(fā)送一個(gè) ACK 數(shù)據(jù)包給客戶端,確認(rèn)收到客戶端的關(guān)閉請(qǐng)求。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 此時(shí),服務(wù)器可能還有數(shù)據(jù)要發(fā)送給客戶端,所以連接還不能完全關(guān)閉。
      • 第三次揮手(如果服務(wù)器也沒(méi)有數(shù)據(jù)要發(fā)送):當(dāng)服務(wù)器發(fā)送完剩余的數(shù)據(jù)后,它會(huì)向客戶端發(fā)送一個(gè)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? FIN 數(shù)據(jù)包,表示自己也沒(méi)有數(shù)據(jù)要發(fā)送了,請(qǐng)求關(guān)閉連接。
      • 第四次揮手:客戶端收到服務(wù)器的 FIN 數(shù)據(jù)包后,會(huì)發(fā)送一個(gè) ACK 數(shù)據(jù)包給服務(wù)器,確認(rèn)收到服務(wù)器的? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 關(guān)閉請(qǐng)求。經(jīng)過(guò)這四次揮手,TCP 連接才完全關(guān)閉,雙方釋放占用的資源。
http://m.aloenet.com.cn/news/41792.html

相關(guān)文章:

  • 今日河南新聞聯(lián)播上海整站seo
  • 專門做簡(jiǎn)歷的網(wǎng)站有哪些長(zhǎng)沙關(guān)鍵詞優(yōu)化方法
  • 檢察院加強(qiáng)網(wǎng)站建設(shè)長(zhǎng)沙優(yōu)化網(wǎng)站推廣
  • 在線做heatmap的網(wǎng)站谷歌推廣怎么操作
  • 深夜免費(fèi)軟件app下載seo營(yíng)銷的概念
  • 一般網(wǎng)站用什么軟件做怎么注冊(cè)一個(gè)自己的網(wǎng)站
  • 軟件公司網(wǎng)站系統(tǒng)集成建設(shè)營(yíng)銷推廣的特點(diǎn)
  • wordpress寄出郵箱地址小學(xué)生班級(jí)優(yōu)化大師
  • 外貿(mào)平臺(tái)免費(fèi)網(wǎng)站網(wǎng)站優(yōu)化推廣平臺(tái)
  • 學(xué)做網(wǎng)站設(shè)計(jì)需要多少錢網(wǎng)頁(yè)制作教程步驟
  • 網(wǎng)站建設(shè)整個(gè)過(guò)程個(gè)人介紹網(wǎng)頁(yè)制作
  • 做外貿(mào)在哪個(gè)網(wǎng)站北京百度推廣電話號(hào)碼
  • 上海阿里巴巴做網(wǎng)站免費(fèi)的短視頻app大全下載
  • 商業(yè)網(wǎng)站改版需要多久愛站網(wǎng)綜合查詢
  • 無(wú)錫工廠網(wǎng)站建設(shè)南寧百度關(guān)鍵詞推廣
  • 松江營(yíng)銷型網(wǎng)站建設(shè)b站是哪個(gè)網(wǎng)站
  • ui設(shè)計(jì)做兼職的網(wǎng)站如何寫市場(chǎng)調(diào)研報(bào)告
  • 女裝網(wǎng)站建設(shè)規(guī)劃網(wǎng)站怎樣被百度收錄
  • 怎么做網(wǎng)站的后臺(tái)管理系統(tǒng)手機(jī)360優(yōu)化大師官網(wǎng)
  • 微網(wǎng)站后臺(tái)怎么注冊(cè)互聯(lián)網(wǎng)推廣平臺(tái)有哪些公司
  • 辦公室現(xiàn)代簡(jiǎn)約裝修效果圖武漢seo服務(wù)
  • 金山石化網(wǎng)站建設(shè)襄陽(yáng)seo優(yōu)化排名
  • 做網(wǎng)站建設(shè)的上市公司有哪些百度競(jìng)價(jià)是seo還是sem
  • lamp網(wǎng)站開發(fā) pdf企業(yè)網(wǎng)站建設(shè)需求分析
  • 做便民工具網(wǎng)站怎么樣百度問(wèn)答兼職怎么做
  • 網(wǎng)站怎么防采集如何推廣普通話
  • 長(zhǎng)子營(yíng)網(wǎng)站建設(shè)產(chǎn)品優(yōu)化是什么意思
  • 做3d模型的叫什么牛的網(wǎng)站磁力鏈搜索引擎入口
  • 黃色風(fēng)格網(wǎng)站模板商城小程序
  • 十堰網(wǎng)站建設(shè)兼職發(fā)軟文的平臺(tái)