瀏覽器輸入url到發(fā)起http請求的案例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹了瀏覽器輸入url到發(fā)起http請求的案例分析,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司:從2013年創(chuàng)立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為千余家公司企業(yè)提供了專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)和網(wǎng)站推廣服務(wù), 按需定制由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

用戶輸入url

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

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

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

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

http網(wǎng)絡(luò)請求

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

dns查詢ip

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

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

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

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

主要過程如下:

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

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

  3. 在系統(tǒng)中也沒有的話,就到你的路由器來查找,因?yàn)槁酚善饕话阋矔凶约旱腄NS緩存

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

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

  • 在緩存沒有命中的情況下,LDNS向根域名服務(wù)器.查詢www.google.com的IP地址,LDNS的查詢過程是一個(gè)迭代查詢的過程

  • 根告訴LDNS,我不知道www.google.com對應(yīng)的IP,但是我知道你可以問com域的授權(quán)服務(wù)器,這個(gè)域歸他管

  • LDNS向com的授權(quán)服務(wù)器問www.google.com對應(yīng)的IP地址

  • com告訴LDNS,我不知道www.google.com對應(yīng)的IP,但是我知道你可以問google.com域的授權(quán)服務(wù)器,這個(gè)域歸他管

  • LDNS向google.com的授權(quán)服務(wù)器問www.google.com對應(yīng)的IP地址

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

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

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

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

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

tcp/ip請求

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

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

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

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

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

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

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

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享瀏覽器輸入url到發(fā)起http請求的案例分析內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián)建站,詳細(xì)的解決方法等著你來學(xué)習(xí)!

本文題目:瀏覽器輸入url到發(fā)起http請求的案例分析-創(chuàng)新互聯(lián)
文章URL:http://bm7419.com/article30/ijspo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、域名注冊、商城網(wǎng)站網(wǎng)站設(shè)計(jì)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司