老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

你知道HTTP是如何使用TCP連接的嗎?今天我就來(lái)告訴你!

1、HTTP 是如何使用 TCP 連接的;

世界上幾乎所有的 HTTP 通信都是由 TCP/IP 承載的,TCP/IP 是全球計(jì)算機(jī)及網(wǎng)絡(luò)設(shè)備都 在使用的一種常用的分組交換網(wǎng)絡(luò)分層協(xié)議集。客戶端應(yīng)用程序可以打開(kāi)一條 TCP/IP 連 接,連接到可能運(yùn)行在世界任何地方的服務(wù)器應(yīng)用程序。一旦連接建立起來(lái)了,在客戶端 和服務(wù)器的計(jì)算機(jī)之間交換的報(bào)文就永遠(yuǎn)不會(huì)丟失、受損或失序。

云龍網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,云龍網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為云龍上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的云龍做網(wǎng)站的公司定做!

盡管報(bào)文不會(huì)丟失或受損,但如果計(jì)算機(jī)或網(wǎng)絡(luò)崩潰了,客戶端和服務(wù)器之間的通信仍然會(huì)被斷開(kāi)。在這種情況下, 會(huì)通知客戶端和服務(wù)器通信中斷了。

當(dāng)瀏覽器收到一個(gè) URL 的時(shí)候,會(huì)執(zhí)行幾個(gè)相對(duì)應(yīng)的步驟,如下

  1. 瀏覽器解析出主機(jī)名;

  2. 瀏覽器查詢主機(jī)名的 IP 地址;

  3. 瀏覽器獲得端口號(hào);

  4. 瀏覽器發(fā)起對(duì)該 IP 地址對(duì)應(yīng)端口號(hào)的鏈接;

  5. 瀏覽器向服務(wù)器發(fā)送一條 HTTP GET報(bào)文;

  6. 瀏覽器從服務(wù)器讀取 HTTP 相應(yīng)報(bào)文;

  7. 瀏覽器關(guān)閉連接;

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

1.1、TCP 連接的基本知識(shí)

TCP 是可靠的數(shù)據(jù)管道

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

TCP 會(huì)按序、無(wú)差錯(cuò)地承載 HTTP 數(shù)據(jù),TCP 為 HTTP 提供了一條可靠的比特傳輸管道。從 TCP 連接一端填入的字節(jié)會(huì)從另一端 以原有的順序、正確地傳送出來(lái)。

TCP 流是分段的、由 IP 分組傳送

TCP 的數(shù)據(jù)是通過(guò)名為 IP 分組(或 IP 數(shù)據(jù)報(bào))的小數(shù)據(jù)塊來(lái)發(fā)送的。

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

這樣的話,如圖 HTTP 就是 “HTTP over TCP over IP” 這個(gè)“協(xié)議棧”中的最頂層了。其安全版本 HTTPS 就是在 HTTP 和 TCP 之間插入了一個(gè)(稱(chēng)為 TLS 或 SSL 的)密碼加密層(安全層),就是在圖中的右半部分。

HTTP 要傳送一條報(bào)文時(shí),會(huì)以流的形式將報(bào)文數(shù)據(jù)的內(nèi)容通過(guò)一條打開(kāi)的 TCP 連接按 序傳輸。TCP 收到數(shù)據(jù)流之后,會(huì)將數(shù)據(jù)流砍成被稱(chēng)作段的小數(shù)據(jù)塊,并將段封裝在 IP 分組中,通過(guò)因特網(wǎng)進(jìn)行傳輸,如下圖中大家看到的內(nèi)容:

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

每個(gè) TCP 段都是由 IP 分組承載,從一個(gè) IP 地址發(fā)送到另一個(gè) IP 地址的。

而每個(gè) IP 分組中都包括:

  • 一個(gè) IP 分組首部(通常為 20 字節(jié));

  • 一個(gè) TCP 段首部(通常為 20 字節(jié));

  • 一個(gè) TCP 數(shù)據(jù)塊(0 個(gè)或多個(gè)字節(jié))。

IP 首部包含了源和目的 IP 地址、長(zhǎng)度和其他一些標(biāo)記。TCP 段的首部包含了 TCP 端口 號(hào)、TCP 控制標(biāo)記,以及用于數(shù)據(jù)排序和完整性檢查的一些數(shù)字值。

保持 TCP 連接的持續(xù)不間斷地運(yùn)行

在任意時(shí)刻計(jì)算機(jī)都可以有幾條 TCP 連接處于打開(kāi)狀態(tài)。TCP 是通過(guò)端口號(hào)來(lái)保持所有 這些連接的正確運(yùn)行的。端口號(hào)和雇員使用的電話分機(jī)號(hào)很類(lèi)似。

這就和我之前舉得例子是一樣的,公司的總機(jī)和你自己的座機(jī)一樣,公司的總機(jī)號(hào)碼能將你接到前臺(tái),而分機(jī)號(hào) 可以將你接到正確的雇員位置一樣,IP 地址可以將你連接到正確的計(jì)算機(jī),而端口號(hào)則 可以將你連接到正確的應(yīng)用程序上去。TCP 連接是通過(guò) 4 個(gè)值來(lái)識(shí)別的:

源IP 地址源端口號(hào)目的IP 地址目的端口號(hào)

這 4 個(gè)值一起唯一地定義了一條連接。兩條不同的 TCP 連接不能擁有 4 個(gè)完全相同的地 址組件值(但不同連接的部分組件可以擁有相同的值)。

這里需要我們注意的是,有些連接共享了相同的目的端口號(hào),有些連接使用了相同的源 IP 地址,有些使用了相同的目的 IP 地址,但沒(méi)有兩個(gè)不同連接所有的 4 個(gè)值都一樣。

TCP 套接字

操作系統(tǒng)提供了一些操縱其 TCP 連接的工具。為了更具體地說(shuō)明問(wèn)題,我們來(lái)看一個(gè) TCP 編程接口,這些套接字我就不一一介紹了,我給大家一個(gè)表格,大家可以理解一下

套接字API調(diào)用描 述
s = socket() 創(chuàng)建一個(gè)新的、未命名、未關(guān)聯(lián)的套接字
bind(s,) 向套接字賦一個(gè)本地端口號(hào)和接口
connect(s,) 創(chuàng)建一條連接本地套接字與遠(yuǎn)程主機(jī)及端口的連接
listen(s,...) 標(biāo)識(shí)一個(gè)本地套接字,使其可以合法接受連接
s2 = accept(s) 等待某人建立一條到本地端口的連接

套接字 API 允許用戶創(chuàng)建 TCP 的端點(diǎn)數(shù)據(jù)結(jié)構(gòu),將這些端點(diǎn)與遠(yuǎn)程服務(wù)器的 TCP 端點(diǎn)進(jìn) 行連接,并對(duì)數(shù)據(jù)流進(jìn)行讀寫(xiě)。TCP API 隱藏了所有底層網(wǎng)絡(luò)協(xié)議的握手細(xì)節(jié),以及 TCP 數(shù)據(jù)流與 IP 分組之間的分段和重裝細(xì)節(jié)。

TCP 客戶端和服務(wù)器是如何通過(guò) TCP 套接字接口進(jìn)行通信的

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

上圖中說(shuō)明了可以怎樣通過(guò)套接字 API 來(lái)凸顯客戶端和服務(wù)器在實(shí)現(xiàn) HTTP 事務(wù)時(shí)所應(yīng)執(zhí)行的步驟。

2、TCP 連接的握手

TCP 連接握手需要經(jīng)過(guò)以下幾個(gè)步驟。如圖所示:

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

請(qǐng)求新的 TCP 連接時(shí),客戶端要向服務(wù)器發(fā)送一個(gè)小的 TCP 分組(通常是 40 ~ 60 個(gè)字節(jié))。這個(gè)分組中設(shè)置了一個(gè)特殊的 SYN 標(biāo)記,說(shuō)明這是一個(gè)連接請(qǐng)求。

  1. 如果服務(wù)器接受了連接,就會(huì)對(duì)一些連接參數(shù)進(jìn)行計(jì)算,并向客戶端回送一個(gè) TCP 分組,這個(gè)分組中的 SYN 和 ACK 標(biāo)記都被置位,說(shuō)明連接請(qǐng)求已被接受。

  2. 最后,客戶端向服務(wù)器回送一條確認(rèn)信息,通知它連接已成功建立

我們永遠(yuǎn)不會(huì)看到這些分組——這些分組都由 TCP/IP 軟件管理,對(duì)其是不可見(jiàn) 的。HTTP 程序員看到的只是創(chuàng)建 TCP 連接時(shí)存在的時(shí)延。

在這里我們需要注意的就是?TCP 連接的握手時(shí)延,通常 HTTP 事務(wù)都不會(huì)交換太多數(shù)據(jù),此時(shí),SYN/SYN+ACK 握手(參見(jiàn)圖中的 a 段 和圖中的 b 段)會(huì)產(chǎn)生一個(gè)可測(cè)量的時(shí)延。TCP 連接的 ACK 分組(參見(jiàn)圖中的 c 段)通常都足夠大,可以承載整個(gè) HTTP 請(qǐng)求報(bào)文,而且很多 HTTP 服務(wù)器響應(yīng)報(bào)文都可 以放入一個(gè) IP 分組 中去(比如,響應(yīng)是包含了裝飾性圖片的小型 HTML 文件,或者是對(duì)瀏覽器高速緩存請(qǐng)求產(chǎn)生的 304 Not Modified 響應(yīng))。

TCP 慢啟動(dòng)

TCP 數(shù)據(jù)傳輸?shù)男阅苓€取決于 TCP 連接的使用期(age)。TCP 連接會(huì)隨著時(shí)間進(jìn)行自 我“調(diào)諧”,起初會(huì)限制連接的最大速度,如果數(shù)據(jù)成功傳輸,會(huì)隨著時(shí)間的推移提高傳輸 的速度。這種調(diào)諧被稱(chēng)為 TCP 慢啟動(dòng)(slow start),用于防止因特網(wǎng)的突然過(guò)載和擁 塞。

TCP 慢啟動(dòng)限制了一個(gè) TCP 端點(diǎn)在任意時(shí)刻可以傳輸?shù)姆纸M數(shù)。簡(jiǎn)單來(lái)說(shuō),每成功接收 一個(gè)分組,發(fā)送端就有了發(fā)送另外兩個(gè)分組的權(quán)限。如果某個(gè) HTTP 事務(wù)有大量數(shù)據(jù)要發(fā) 送,是不能一次將所有分組都發(fā)送出去的。必須發(fā)送一個(gè)分組,等待確認(rèn);然后可以發(fā)送 兩個(gè)分組,每個(gè)分組都必須被確認(rèn),這樣就可以發(fā)送四個(gè)分組了,以此類(lèi)推。這種方式被 稱(chēng)為“打開(kāi)擁塞窗口”。

由于存在這種擁塞控制特性,所以新連接的傳輸速度會(huì)比已經(jīng)交換過(guò)一定量數(shù)據(jù)的、“已 調(diào)諧”連接慢一些。由于已調(diào)諧連接要更快一些,所以 HTTP 中有一些可以重用現(xiàn)存連接 的工具。

3、HTTP 連接的處理

前面我們說(shuō)了 TCP 連接,我們重新來(lái)分析一下 HTTP ,之前我也說(shuō)過(guò)在 HTTP 1.0的時(shí)候和1.1之后,有 Keep-Alive ,關(guān)于 Keep-Alive 不懂的請(qǐng)翻看前面的公眾號(hào)的文章內(nèi)容,接下來(lái)我分幾個(gè)內(nèi)容給大家講述 HTTP 對(duì)連接上的處理。

  • 并行連接:通過(guò)多條 TCP 連接發(fā)起并發(fā)的 HTTP 請(qǐng)求。

  • 持久連接:重用 TCP 連接,以消除連接及關(guān)閉時(shí)延。

  • 管道化連接:通過(guò)共享的 TCP 連接發(fā)起并發(fā)的 HTTP 請(qǐng)求。

我們來(lái)看一下串行:

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

每個(gè)事務(wù)都需要(串行地建立)一條 新的連接,那么連接時(shí)延和慢啟動(dòng)時(shí)延就會(huì)疊加起來(lái)

并行連接就是說(shuō) HTTP 允許客戶端打開(kāi)多條連接,并行的去執(zhí)行多個(gè) HTTP 的事務(wù),就會(huì)出現(xiàn)多條線路平行的情況。

你知道 HTTP 是如何使用 TCP 連接的嗎?今天我就來(lái)告訴你!

其實(shí)并行連接并沒(méi)有說(shuō)是頁(yè)面的傳輸速度,是因?yàn)槎鄠€(gè)對(duì)象同時(shí)在進(jìn)展,所以,他的速度要比疊加起來(lái),讓你在感覺(jué)上快不少。

持久連接

HTTP 1.1 允許 HTTP 設(shè)備在事務(wù)處理結(jié)束之后 將 TCP 連接保持在打開(kāi)狀態(tài),以便為未來(lái)的 HTTP 請(qǐng)求重用現(xiàn)存的連接。在事務(wù)處理結(jié)束之后仍然保持在打開(kāi)狀態(tài)的 TCP 連接被稱(chēng)為持久連接。非持久連接會(huì)在每個(gè)事務(wù)結(jié)束之后關(guān)閉。持久連接會(huì)在不同事務(wù)之間保持打開(kāi)狀態(tài),直到客戶端或服務(wù)器決定將其關(guān)閉為止。

管道化連接(也有人稱(chēng)之為管線化)

HTTP/1.1 允許在持久連接上可選地使用請(qǐng)求管道。這是相對(duì)于 keep-alive 連接的又一性能優(yōu)化。在響應(yīng)到達(dá)之前,可以將多條請(qǐng)求放入隊(duì)列。當(dāng)?shù)谝粭l請(qǐng)求通過(guò)網(wǎng)絡(luò)流向地球另一端的服務(wù)器時(shí),第二條和第三條請(qǐng)求也可以開(kāi)始發(fā)送了。在高時(shí)延網(wǎng)絡(luò)條件下,這樣做可以降低網(wǎng)絡(luò)的環(huán)回時(shí)間,提高性能。

其實(shí)管道化說(shuō)白了就是 傳送過(guò)程中不需先等待服務(wù)端的回應(yīng),然后又發(fā)了幾條,瀏覽器將 HTTP 要求大批提交可大幅縮短頁(yè)面的加載時(shí)間,特別是在傳輸延遲(lag/latency)較高的情況下(如衛(wèi)星連接)。此技術(shù)之關(guān)鍵在于多個(gè) HTTP 的要求消息可以同時(shí)塞入一個(gè) TCP 分組中,所以只提交一個(gè)分組即可同時(shí)發(fā)出多個(gè)要求,借此可減少網(wǎng)絡(luò)上多余的分組并降低線路負(fù)載。


文章標(biāo)題:你知道HTTP是如何使用TCP連接的嗎?今天我就來(lái)告訴你!
標(biāo)題路徑:http://www.xueling.net.cn/article/jscdch.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 国内精品999 | 伦一区二区三区中文字幕v亚洲 | 看全色黄大色大片免费无码 | 超碰97人人做人人爱亚洲 | 农村少妇无套内谢粗又长 | 日本理论在线播放 | 视频在线观看入口黄最新永久免费国产 | 亚洲成在人网站av天堂 | 婷婷五月六月综合缴情 | 厨房挺进紧致班主任少妇 | 狂野欧美性猛交xxxxx视频 | av在线免费观看网 | 久久精品国产亚州Av果冻传媒 | 日本不卡不卡 | 午夜视频体内射.COM.COM | 丰满少妇被猛烈进出69影院 | 中出亚洲| 两个人看的www免费视频中文 | 在线观看av不卡网站永久 | 综合在线亚洲 | 91久久国产综合久久 | 国产老肥熟xxxx| 曰本三级在线 | 郎在远方免费观看 | 免费成人高清在线视频 | 一二三四区在线视频 | 国产精品一页 | 亚洲成精品自拍 | 男女无遮挡免费视频 | 色站综合| av久久在线观看 | 男人日女人逼的视频 | 亚洲妇女水蜜桃AV网网站 | 精品人人妻人人澡人人爽牛牛 | 成人毛片免费看 | 国产成人精品无码一区二区蜜柚 | 粉嫩一区二区三区国产精品 | 中文字幕亚洲码在线观看 | 亚洲一区二区三区乱码在线欧洲 | 国产女人精品视频国产灰线 | 人av在线 |