成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

瀏覽器輸入url到發起http請求所經歷的過程

開發 前端
當用戶輸入url,操作系統會將輸入事件傳遞到瀏覽器中,在這過程中,瀏覽器可能會做一些預處理,比如 Chrome 會根據歷史統計來預估所輸入字符對應的網站。

[[249848]]

 用戶輸入url

當用戶輸入url,操作系統會將輸入事件傳遞到瀏覽器中,在這過程中,瀏覽器可能會做一些預處理,比如 Chrome 會根據歷史統計來預估所輸入字符對應的網站,例如輸入goog,根據之前的歷史發現 90% 的概率會訪問「www.google.com 」,因此就會在輸入回車前就馬上開始建立 TCP 鏈接甚至渲染了。

接著是輸入url之后,點擊回車,這時瀏覽器會對 URL 進行檢查,首先判斷協議,如果是 http 就按照 Web 來處理,另外還會對這個 URL 進行安全檢查

安全檢查完成之后,在瀏覽器內核中會先查看緩存,然后設置 UA 等 HTTP 信息,接著調用不同平臺下網絡請求的方法。

注意:

瀏覽器和瀏覽器內核是不同的概念,瀏覽器指的是 Chrome、Firefox,而瀏覽器內核則是 Blink、Gecko,瀏覽器內核只負責渲染,GUI 及網絡連接等跨平臺工作則是瀏覽器實現的

http網絡請求

通過 DNS 查詢 IP;

通過 Socket 發送數據

dns查詢ip

DNS,英文是Domain Name System,中文叫域名系統,是Internet的一項服務,他將域名和IP地址相互映射的一個分布式數據庫

假設用戶在瀏覽器中輸入的是www.google.com,大概過程:

如果輸入的是域名,則需要進行dns查詢,將域名解析成ip;

進行DNS查詢的主機或軟件叫做DNS解析器,用戶使用的工作站或電腦都屬于解析器。域名解析就是利用DNS解析器得到對應IP過程,解析器會向域名服務器進行查詢處理。

主要過程如下:

  1. 從瀏覽器緩存中查找域名www.google.com的IP地址

  2. 在瀏覽器緩存中沒找到,就在操作系統緩存中查找,這一步中也會查找本機的hosts看看有沒有對應的域名映射(當然已經緩存在系統DNS緩存中了)

  3. 在系統中也沒有的話,就到你的路由器來查找,因為路由器一般也會有自己的DNS緩存

如果以上都沒有找到,則繼續往下向dns域名服務器查詢

  • 用戶電腦的解析器向LDNS(也就是Local DNS,互聯網服務提供商ISP),發起域名解析請求,查詢www.google.com的IP地址,這是一個遞歸查找過程

  • 在緩存沒有***的情況下,LDNS向根域名服務器.查詢www.google.com的IP地址,LDNS的查詢過程是一個迭代查詢的過程

  • 根告訴LDNS,我不知道www.google.com對應的IP,但是我知道你可以問com域的授權服務器,這個域歸他管

  • LDNS向com的授權服務器問www.google.com對應的IP地址

  • com告訴LDNS,我不知道www.google.com對應的IP,但是我知道你可以問google.com域的授權服務器,這個域歸他管

  • LDNS向google.com的授權服務器問www.google.com對應的IP地址

  • google.com查詢自己的ZONE文件(也稱區域文件記錄),找到了www.google.com對應的IP地址,返回給LDNS

  • LDNS本地緩存一份記錄,把結果返回給用戶電腦的解析器

  • 在這之后,用戶電腦的解析器拿到結果后,緩存在自己操作系統DNS緩存中,同時返回給瀏覽器,瀏覽器依舊會緩存一段時間。

注意,

域名查詢時有可能是經過了CDN調度器的(如果有cdn存儲功能的話)

而且,需要知道dns解析是很耗時的,因此如果解析域名過多,會讓首屏加載變得過慢,可以考慮dns-prefetch優化

tcp/ip請求

有了 IP 地址,就可以通過 Socket API 來發送數據了,這時可以選擇 TCP 或 UDP 協議。

http本質是tcp協議。

TCP是一種面向有連接的傳輸層協議。他可以保證兩端(發送端和接收端)通信主機之間的通信可達。他能夠處理在傳輸過程中丟包、傳輸順序亂掉等異常情況;此外他還能有效利用寬帶,緩解網絡擁堵。

建立TCP連接一開始都要經過三次握手:

***次握手,請求建立連接,發送端發送連接請求報文

第二次握手,接收端收到發送端發過來的報文,可知發送端現在要建立聯機。然后接收端會向發送端發送一個報文

第三次握手,發送端收到了發送過來的報文,需要檢查一下返回的內容是否是正確的;若正確的話,發送端再次發送確認包

在TCP連接建立完成之后就可以發送HTTP請求了。

注意

瀏覽器對同一個域名有連接數限制,大部分是 6,http1.0中往往一個資源下載就需要對應一個tcp/ip請求,而像 HTTP 2.0 協議盡管只使用一個 TCP 連接來傳輸數據,但性能反而更好,而且還能實現請求優先級。

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2023-10-30 23:14:57

瀏覽器URL網頁

2018-06-07 10:45:41

瀏覽器服務器響應

2021-03-01 06:21:56

Chrome瀏覽器HTTPS

2017-05-15 13:40:20

瀏覽器http緩存機制

2011-08-02 09:35:03

Chrome瀏覽器重定向

2021-08-02 13:05:49

瀏覽器HTTP前端

2025-03-12 00:44:00

2023-01-14 16:11:27

瀏覽器URL回車

2024-05-06 10:53:22

瀏覽器TCPHTTPS

2023-12-12 09:45:16

前端瀏覽器

2019-08-16 10:54:03

本地存儲javascripthttp緩存

2018-10-18 10:05:43

HTTP網絡協議TCP

2022-04-29 09:11:14

CORS瀏覽器

2010-04-05 21:57:14

Netscape瀏覽器

2017-10-09 13:39:26

瀏覽器渲染服務器

2021-06-14 09:35:47

谷歌Chrome瀏覽器

2009-09-04 11:03:32

C#文件瀏覽器

2021-05-18 08:31:46

緩存HTTP服務器

2012-03-20 11:41:18

海豚瀏覽器

2012-03-19 17:25:22

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本韩国欧美在线观看 | 黄网站涩免费蜜桃网站 | 国产探花在线精品一区二区 | 91精品久久久久久久久久入口 | 久久久久电影 | 日本久久精品 | 久久久久久久久久久一区二区 | 国户精品久久久久久久久久久不卡 | 久久久久亚洲精品 | 国产黄色免费网站 | 国产91 在线播放 | 激情福利视频 | 天天操网| 日韩久久久久久 | 欧美一级二级视频 | 久久久久久国产 | av免费网址 | 欧美精品久久 | 一区二区亚洲 | 911精品国产 | 伊人网综合在线观看 | 国产精品免费视频一区 | 日韩欧美中文 | 手机看片在线播放 | 精品一区精品二区 | 久久精品网 | 高清国产一区二区 | 精品99在线 | 亚洲一一在线 | 国产欧美精品一区二区 | 国产97色 | 日本高清视频在线播放 | 狠狠的干狠狠的操 | 911影院| av男人的天堂在线 | 免费成人午夜 | 日韩一级免费电影 | 欧美久久一区二区三区 | 国产欧美一区二区三区久久手机版 | 精品国产欧美一区二区 | 91欧美|