国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識(shí) > DNS 查詢

DNS 查詢

時(shí)間:2023-02-02 09:04:01 | 來源:建站知識(shí)

時(shí)間:2023-02-02 09:04:01 來源:建站知識(shí)

ARP 過程

要想發(fā)送 ARP(地址解析協(xié)議)廣播,我們需要有一個(gè)目標(biāo) IP 地址,同時(shí)還需要知道用于發(fā)送 ARP 廣播的接口的 MAC 地址。

如果緩存沒有命中:

ARP Request:

Sender MAC: interface:mac:address:hereSender IP: interface.ip.goes.hereTarget MAC: FF:FF:FF:FF:FF:FF (Broadcast)Target IP: target.ip.goes.here根據(jù)連接主機(jī)和路由器的硬件類型不同,可以分為以下幾種情況:

直連:

集線器:

交換機(jī):

ARP Reply:

Sender MAC: target:mac:address:hereSender IP: target.ip.goes.hereTarget MAC: interface:mac:address:hereTarget IP: interface.ip.goes.here現(xiàn)在我們有了 DNS 服務(wù)器或者默認(rèn)網(wǎng)關(guān)的 IP 地址,我們可以繼續(xù) DNS 請求了:

使用套接字

當(dāng)瀏覽器得到了目標(biāo)服務(wù)器的 IP 地址,以及 URL 中給出來端口號(http 協(xié)議默認(rèn)端口號是 80, https 默認(rèn)端口號是 443),它會(huì)調(diào)用系統(tǒng)庫函數(shù) socket ,請求一個(gè) TCP流套接字,對應(yīng)的參數(shù)是 AF_INET/AF_INET6SOCK_STREAM

到了現(xiàn)在,TCP 封包已經(jīng)準(zhǔn)備好了,可以使用下面的方式進(jìn)行傳輸:

對于大部分家庭網(wǎng)絡(luò)和小型企業(yè)網(wǎng)絡(luò)來說,封包會(huì)從本地計(jì)算機(jī)出發(fā),經(jīng)過本地網(wǎng)絡(luò),再通過調(diào)制解調(diào)器把數(shù)字信號轉(zhuǎn)換成模擬信號,使其適于在電話線路,有線電視光纜和無線電話線路上傳輸。在傳輸線路的另一端,是另外一個(gè)調(diào)制解調(diào)器,它把模擬信號轉(zhuǎn)換回?cái)?shù)字信號,交由下一個(gè) 網(wǎng)絡(luò)節(jié)點(diǎn) 處理。節(jié)點(diǎn)的目標(biāo)地址和源地址將在后面討論。

大型企業(yè)和比較新的住宅通常使用光纖或直接以太網(wǎng)連接,這種情況下信號一直是數(shù)字的,會(huì)被直接傳到下一個(gè) 網(wǎng)絡(luò)節(jié)點(diǎn) 進(jìn)行處理。

最終封包會(huì)到達(dá)管理本地子網(wǎng)的路由器。在那里出發(fā),它會(huì)繼續(xù)經(jīng)過自治區(qū)域(autonomous system, 縮寫 AS)的邊界路由器,其他自治區(qū)域,最終到達(dá)目標(biāo)服務(wù)器。一路上經(jīng)過的這些路由器會(huì)從IP數(shù)據(jù)報(bào)頭部里提取出目標(biāo)地址,并將封包正確地路由到下一個(gè)目的地。IP數(shù)據(jù)報(bào)頭部 time to live (TTL) 域的值每經(jīng)過一個(gè)路由器就減1,如果封包的TTL變?yōu)?,或者路由器由于網(wǎng)絡(luò)擁堵等原因封包隊(duì)列滿了,那么這個(gè)包會(huì)被路由器丟棄。

上面的發(fā)送和接受過程在 TCP 連接期間會(huì)發(fā)生很多次:













TLS 握手

HTTP 協(xié)議

如果瀏覽器是 Google 出品的,它不會(huì)使用 HTTP 協(xié)議來獲取頁面信息,而是會(huì)與服務(wù)器端發(fā)送請求,商討使用 SPDY 協(xié)議。

如果瀏覽器使用 HTTP 協(xié)議而不支持 SPDY 協(xié)議,它會(huì)向服務(wù)器發(fā)送這樣的一個(gè)請求:

GET / HTTP/1.1Host: google.comConnection: close[其他頭部]“其他頭部”包含了一系列的由冒號分割開的鍵值對,它們的格式符合HTTP協(xié)議標(biāo)準(zhǔn),它們之間由一個(gè)換行符分割開來。(這里我們假設(shè)瀏覽器沒有違反HTTP協(xié)議標(biāo)準(zhǔn)的bug,同時(shí)假設(shè)瀏覽器使用 HTTP/1.1 協(xié)議,不然的話頭部可能不包含 Host 字段,同時(shí) GET 請求中的版本號會(huì)變成 HTTP/1.0 或者 HTTP/0.9 。)

HTTP/1.1 定義了“關(guān)閉連接”的選項(xiàng) "close",發(fā)送者使用這個(gè)選項(xiàng)指示這次連接在響應(yīng)結(jié)束之后會(huì)斷開。例如:

Connection:close
不支持持久連接的 HTTP/1.1 應(yīng)用必須在每條消息中都包含 "close" 選項(xiàng)。

在發(fā)送完這些請求和頭部之后,瀏覽器發(fā)送一個(gè)換行符,表示要發(fā)送的內(nèi)容已經(jīng)結(jié)束了。

服務(wù)器端返回一個(gè)響應(yīng)碼,指示這次請求的狀態(tài),響應(yīng)的形式是這樣的:

200 OK[響應(yīng)頭部]然后是一個(gè)換行,接下來有效載荷(payload),也就是 www.google.com 的HTML內(nèi)容。服務(wù)器下面可能會(huì)關(guān)閉連接,如果客戶端請求保持連接的話,服務(wù)器端會(huì)保持連接打開,以供之后的請求重用。

如果瀏覽器發(fā)送的HTTP頭部包含了足夠多的信息(例如包含了 Etag 頭部),以至于服務(wù)器可以判斷出,瀏覽器緩存的文件版本自從上次獲取之后沒有再更改過,服務(wù)器可能會(huì)返回這樣的響應(yīng):

304 Not Modified[響應(yīng)頭部]這個(gè)響應(yīng)沒有有效載荷,瀏覽器會(huì)從自己的緩存中取出想要的內(nèi)容。

在解析完 HTML 之后,瀏覽器和客戶端會(huì)重復(fù)上面的過程,直到HTML頁面引入的所有資源(圖片,CSS,favicon.ico等等)全部都獲取完畢,區(qū)別只是頭部的 GET / HTTP/1.1 會(huì)變成 GET /$(相對www.google.com的URL) HTTP/1.1

如果HTML引入了 www.google.com 域名之外的資源,瀏覽器會(huì)回到上面解析域名那一步,按照下面的步驟往下一步一步執(zhí)行,請求中的 Host 頭部會(huì)變成另外的域名。

HTTP 服務(wù)器請求處理

HTTPD(HTTP Daemon)在服務(wù)器端處理請求/響應(yīng)。最常見的 HTTPD 有 Linux 上常用的 Apache 和 nginx,以及 Windows 上的 IIS。




瀏覽器背后的故事

當(dāng)服務(wù)器提供了資源之后(HTML,CSS,JS,圖片等),瀏覽器會(huì)執(zhí)行下面的操作:

瀏覽器

瀏覽器的功能是從服務(wù)器上取回你想要的資源,然后展示在瀏覽器窗口當(dāng)中。資源通常是 HTML 文件,也可能是 PDF,圖片,或者其他類型的內(nèi)容。資源的位置通過用戶提供的 URI(Uniform Resource Identifier) 來確定。

瀏覽器解釋和展示 HTML 文件的方法,在 HTML 和 CSS 的標(biāo)準(zhǔn)中有詳細(xì)介紹。這些標(biāo)準(zhǔn)由 Web 標(biāo)準(zhǔn)組織 W3C(World Wide Web Consortium) 維護(hù)。

不同瀏覽器的用戶界面大都十分接近,有很多共同的 UI 元素:

瀏覽器高層架構(gòu)

組成瀏覽器的組件有:

HTML 解析

瀏覽器渲染引擎從網(wǎng)絡(luò)層取得請求的文檔,一般情況下文檔會(huì)分成8kB大小的分塊傳輸。

HTML 解析器的主要工作是對 HTML 文檔進(jìn)行解析,生成解析樹。

解析樹是以 DOM 元素以及屬性為節(jié)點(diǎn)的樹。DOM是文檔對象模型(Document Object Model)的縮寫,它是 HTML 文檔的對象表示,同時(shí)也是 HTML 元素面向外部(如Javascript)的接口。樹的根部是"Document"對象。整個(gè) DOM 和 HTML 文檔幾乎是一對一的關(guān)系。

解析算法

HTML不能使用常見的自頂向下或自底向上方法來進(jìn)行分析。主要原因有以下幾點(diǎn):

由于不能使用常用的解析技術(shù),瀏覽器創(chuàng)造了專門用于解析 HTML 的解析器。解析算法在 HTML5 標(biāo)準(zhǔn)規(guī)范中有詳細(xì)介紹,算法主要包含了兩個(gè)階段:標(biāo)記化(tokenization)和樹的構(gòu)建。

解析結(jié)束之后

瀏覽器開始加載網(wǎng)頁的外部資源(CSS,圖像,Javascript 文件等)。

此時(shí)瀏覽器把文檔標(biāo)記為可交互的(interactive),瀏覽器開始解析處于“推遲(deferred)”模式的腳本,也就是那些需要在文檔解析完畢之后再執(zhí)行的腳本。之后文檔的狀態(tài)會(huì)變?yōu)椤巴瓿桑╟omplete)”,瀏覽器會(huì)觸發(fā)“加載(load)”事件。

注意解析 HTML 網(wǎng)頁時(shí)永遠(yuǎn)不會(huì)出現(xiàn)“無效語法(Invalid Syntax)”錯(cuò)誤,瀏覽器會(huì)修復(fù)所有錯(cuò)誤內(nèi)容,然后繼續(xù)解析。

CSS 解析

頁面渲染

GPU 渲染

Window Server

后期渲染與用戶引發(fā)的處理

渲染結(jié)束后,瀏覽器根據(jù)某些時(shí)間機(jī)制運(yùn)行JavaScript代碼(比如Google Doodle動(dòng)畫)或與用戶交互(在搜索欄輸入關(guān)鍵字獲得搜索建議)。類似Flash和Java的插件也會(huì)運(yùn)行,盡管Google主頁里沒有。這些腳本可以觸發(fā)網(wǎng)絡(luò)請求,也可能改變網(wǎng)頁的內(nèi)容和布局,產(chǎn)生又一輪渲染與繪制。




https://github.com/skyline75489/what-happens-when-zh_CN

關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉