国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

瀏覽器輸入url到發(fā)起http請求所經(jīng)歷的過程

VioletJack / 876人閱讀

摘要:域名解析就是利用解析器得到對應過程,解析器會向域名服務器進行查詢處理。當請求結束,需要經(jīng)厲連接終止協(xié)議四次揮手。

用戶輸入url

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

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

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

注意:
瀏覽器和瀏覽器內(nèi)核是不同的概念,瀏覽器指的是 Chrome、Firefox,而瀏覽器內(nèi)核則是 Blink、Gecko,瀏覽器內(nèi)核只負責渲染,GUI 及網(wǎng)絡連接等跨平臺工作則是瀏覽器實現(xiàn)的

http網(wǎng)絡請求

通過 DNS 查詢 IP;
通過 Socket 發(fā)送數(shù)據(jù)

dns查詢ip

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

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

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

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

主要過程如下:

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

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

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

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

用戶電腦的解析器向LDNS(也就是Local DNS,互聯(lián)網(wǎng)服務提供商ISP),發(fā)起域名解析請求,查詢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文件(也稱區(qū)域文件記錄),找到了www.google.com對應的IP地址,返回給LDNS

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

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

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

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

tcp/ip請求

有了 IP 地址,就可以通過 Socket API 來發(fā)送數(shù)據(jù)了,這時可以選擇 TCP 或 UDP 協(xié)議。

http本質是tcp協(xié)議。

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

建立TCP連接一開始都要經(jīng)過三次握手:

第一次握手,請求建立連接,發(fā)送端發(fā)送連接請求報文
第二次握手,接收端收到發(fā)送端發(fā)過來的報文,可知發(fā)送端現(xiàn)在要建立聯(lián)機。然后接收端會向發(fā)送端發(fā)送一個報文

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

在TCP連接建立完成之后就可以發(fā)送HTTP請求了。可以將數(shù)據(jù)發(fā)送給服務器,并收到返回信息。

當請求結束,需要經(jīng)厲連接終止協(xié)議(四次揮手)。

由于TCP連接是全雙工的,因此每個方向都必須多帶帶進行關閉。這原則是當一方完成它的數(shù)據(jù)發(fā)送任務后就能發(fā)送一個FIN來終止這個方向的連接。收到一個 FIN只意味著這一方向上沒有數(shù)據(jù)流動,一個TCP連接在收到一個FIN后仍能發(fā)送數(shù)據(jù)。首先進行關閉的一方將執(zhí)行主動關閉,而另一方執(zhí)行被動關閉。

抽象為:

客戶端:我已經(jīng)關閉了向你那邊的主動通道了,只能被動接收了 
服務端:收到通道關閉的信息
服務端:那我也告訴你,我這邊向你的主動通道也關閉了
客戶端:最后收到數(shù)據(jù),之后雙方無法通信

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

參考文章:
http://fex.baidu.com/blog/201...
https://blog.csdn.net/dojiang...
https://segmentfault.com/a/11...

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/53281.html

相關文章

  • 覽器輸入url發(fā)起http請求經(jīng)歷過程

    摘要:域名解析就是利用解析器得到對應過程,解析器會向域名服務器進行查詢處理。當請求結束,需要經(jīng)厲連接終止協(xié)議四次揮手。 用戶輸入url 當用戶輸入url,操作系統(tǒng)會將輸入事件傳遞到瀏覽器中,在這過程中,瀏覽器可能會做一些預處理,比如 Chrome 會根據(jù)歷史統(tǒng)計來預估所輸入字符對應的網(wǎng)站,例如輸入goog,根據(jù)之前的歷史發(fā)現(xiàn) 90% 的概率會訪問「www.google.com 」,因此就會在...

    Michael_Ding 評論0 收藏0
  • 覽器輸入url發(fā)起http請求經(jīng)歷過程

    摘要:域名解析就是利用解析器得到對應過程,解析器會向域名服務器進行查詢處理。當請求結束,需要經(jīng)厲連接終止協(xié)議四次揮手。 用戶輸入url 當用戶輸入url,操作系統(tǒng)會將輸入事件傳遞到瀏覽器中,在這過程中,瀏覽器可能會做一些預處理,比如 Chrome 會根據(jù)歷史統(tǒng)計來預估所輸入字符對應的網(wǎng)站,例如輸入goog,根據(jù)之前的歷史發(fā)現(xiàn) 90% 的概率會訪問「www.google.com 」,因此就會在...

    張金寶 評論0 收藏0
  • 地址欄輸入URL之后底發(fā)生了哪些事情

    摘要:此時樹,樹建好,并渲染完成異步請求開始若有斷開每個長連接都會有一定時限,當請求完成之后,斷開連接上面就是整個請求淘寶頁面到所有數(shù)據(jù)同步異步接收完成并渲染的整個過程。 地址欄輸入URL之后到底發(fā)生了哪些事情? 這個問題應該是前端面試中被問概率較大的知識點,綜合考察了面試者對于瀏覽器,計算機網(wǎng)絡,HTTP協(xié)議,服務器等的基礎。本人學生黨一枚,近期找工作的過程中也被問了兩次,之前回答都是參考...

    myshell 評論0 收藏0
  • 地址欄輸入URL之后底發(fā)生了哪些事情

    摘要:此時樹,樹建好,并渲染完成異步請求開始若有斷開每個長連接都會有一定時限,當請求完成之后,斷開連接上面就是整個請求淘寶頁面到所有數(shù)據(jù)同步異步接收完成并渲染的整個過程。 地址欄輸入URL之后到底發(fā)生了哪些事情? 這個問題應該是前端面試中被問概率較大的知識點,綜合考察了面試者對于瀏覽器,計算機網(wǎng)絡,HTTP協(xié)議,服務器等的基礎。本人學生黨一枚,近期找工作的過程中也被問了兩次,之前回答都是參考...

    張率功 評論0 收藏0

發(fā)表評論

0條評論

VioletJack

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<