偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

面試題:瀏覽器輸入 URL 后回車發(fā)生了什么?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
面試中常問的一個問題就是:在瀏覽器輸入 URL 地址回車后,發(fā)生了什么?這里簡單概述一下。

總體流程圖如下:

圖片

1. URL 解析

瀏覽器首先對 URL 解析,解析出協(xié)議、域名、端口、資源路徑、參數(shù)等。

圖片

2. DNS 域名解析

一般而言,域名比 IP 地址更好記,因而我們更習(xí)慣在瀏覽器輸入域名而不是 IP,而計算機網(wǎng)絡(luò)通信所識別的計算機標識是 IP 地址,因而首先需要將一個域名轉(zhuǎn)化為相應(yīng)的 IP 地址,這就是 DNS 協(xié)議所要做的事。

DNS 就像我們手機中的通訊錄一樣,通訊錄中備注的是對方的姓名(類似于域名),但是打電話的時候?qū)嶋H需要的是電話號碼(類似于 IP 地址),利用通訊錄將一個姓名轉(zhuǎn)化為對應(yīng)的電話號碼。

圖片

3. 建立 TCP 連接

一般在瀏覽器輸入 URL,應(yīng)用層的協(xié)議為 HTTP/HTTPS,其需要的是可靠的服務(wù),所使用的傳輸層協(xié)議為 TCP。

通過域名解析后,瀏覽器獲得了服務(wù)器的 IP,則向服務(wù)器發(fā)起 TCP 連接,這時候就會發(fā)生三次握手行為。

圖片

4. 發(fā)送 HTTP 請求

當瀏覽器與服務(wù)器建立連接后,就可以進行數(shù)據(jù)通信過程,瀏覽器會給服務(wù)器發(fā)送一個 HTTP 請求報文,請求報文包括請求行、請求頭、請求空行和請求體。在請求行中會指定方法、資源路徑以及 HTTP 版本,其中資源路徑是指定所要操作資源在服務(wù)器中的位置,而方法是指定要對這個資源做什么樣的操作。

從瀏覽器輸入 URL,資源路徑在第一步就已經(jīng)被解析出來了,而方法為 GET,表明要獲取資源,相當于增刪改查中的查詢。

圖片

5. 服務(wù)器對請求進行處理并做出響應(yīng)

當收到瀏覽器發(fā)送的請求報文后,服務(wù)器會對此請求報文進行相應(yīng)的處理,并返回響應(yīng)報文給瀏覽器。比如請求報文想要獲?。℅ET) index.html 這個文件,那么服務(wù)器就會找到 index.html 文件,然后將此文件作為響應(yīng)報文中的響應(yīng)體發(fā)送給瀏覽器。

響應(yīng)報文包括響應(yīng)行、響應(yīng)頭、響應(yīng)空行和響應(yīng)體。在響應(yīng)行中會指定 HTTP 版本、狀態(tài)碼和對狀態(tài)碼的解釋信息,比如 HTTP/1.1 200 OK ,其中 200 是響應(yīng)碼,指請求被正常處理,也就是成功 OK 的意思。

圖片

6. 瀏覽器解析渲染頁面

瀏覽器收到服務(wù)器的響應(yīng)報文后,從響應(yīng)體中得到相應(yīng)資源,如 HTML 文件、圖片、視頻等,并進行渲染,然后將結(jié)果呈現(xiàn)給用戶。

7. 斷開 TCP 連接

當數(shù)據(jù)完成請求到返回的過程之后,根據(jù)請求/相應(yīng)頭中 Connection 的 Keep-Alive 屬性可以選擇是否斷開 TCP 連接,如果不需要再進行數(shù)據(jù)通信,即可以關(guān)閉連接,此時則會發(fā)生四次揮手行為。

圖片

注意:

瀏覽器為了提升性能,在 URL 解析之后,實際會先查詢是否有緩存,如果緩存命中,則直接返回緩存資源。

如果是 HTTPS 協(xié)議,在建立 TCP 連接之后,還需要進行 SSL/TLS 握手過程,以協(xié)商出一個會話密鑰,用于消息加密,提升安全性。

本文轉(zhuǎn)載自微信公眾號「一楓說碼」,作者「一楓說碼」,可以通過以下二維碼關(guān)注。

轉(zhuǎn)載本文請聯(lián)系「一楓說碼」公眾號。

責(zé)任編輯:武曉燕 來源: 一楓說碼
相關(guān)推薦

2024-05-06 10:53:22

瀏覽器TCPHTTPS

2011-03-31 09:20:45

URLDNSWeb應(yīng)用程序

2022-04-28 07:52:05

HTTP瀏覽器

2021-05-27 10:26:00

地址欄URLhttp

2024-04-11 08:33:25

2020-09-01 11:40:01

HTTPJavaTCP

2020-11-06 15:20:45

瀏覽器前端架構(gòu)

2020-10-09 08:59:55

輸入網(wǎng)址解密

2020-05-15 14:30:23

前端瀏覽器架構(gòu)

2019-12-20 09:31:23

TCPHTTP瀏覽器

2017-09-06 09:13:24

2024-11-04 09:10:00

2018-01-03 15:17:26

2024-11-04 08:10:00

2017-04-11 13:54:49

HTTPURLHTML

2022-03-04 08:56:58

HTTPDNS 服務(wù)器瀏覽器

2021-04-20 19:15:51

瀏覽器網(wǎng)絡(luò)URL

2019-08-26 09:35:25

命令ping抓包

2021-04-14 10:47:56

瀏覽器網(wǎng)址TCP

2021-12-16 15:58:48

Linux內(nèi)存微軟
點贊
收藏

51CTO技術(shù)棧公眾號