在瀏覽器輸入U(xiǎn)RL發(fā)生了什么

一、DNS 域名解析 —— 獲取IP地址

  • 什么叫DNS域名解析:大白話,就是將URL解析成對(duì)應(yīng)的IP
  • 瀏覽器DNS域名解析順序:

    本地hosts文件查詢對(duì)應(yīng)IP,如果有有,告訴瀏覽器去訪問(wèn)對(duì)應(yīng)的IP
    如果沒(méi)有,去DNS服務(wù)器尋找

  • DNS服務(wù)器層次結(jié)構(gòu)
DNS服務(wù)器層次結(jié)構(gòu)
  • DNS服務(wù)器遞歸查詢和迭代查詢
DNS服務(wù)器遞歸查詢和迭代查詢
  • 客戶端首先,拿著域名去本地hosts遞歸查詢,如果查詢到了www.cnblogs.com對(duì)應(yīng)的IP之后,直接執(zhí)行第8步,后面就不需要去根DNS服務(wù)器查詢IP了
  • 如果本地沒(méi)有查詢到IP,就去根DNS服務(wù)器,根DNS服務(wù)器注意到其com后綴,于是向本地DNS服務(wù)器返回comDNS服務(wù)器的IP地址。本地DNS服務(wù)器再次向comDNS服務(wù)器發(fā)送查詢請(qǐng)求,comDNS服務(wù)器注意到其www.cnblogs.com后綴并用負(fù)責(zé)該域名的權(quán)威DNS服務(wù)器的IP地址作為回應(yīng)。最后,本地DNS服務(wù)器將含有www.cnblogs.com的IP地址的響應(yīng)報(bào)文發(fā)送給客戶端。

二、建立TCP鏈接 —— 三次握手結(jié)束,連接成功

找到了IP,我們就開(kāi)始建立TCP連接

  • 與服務(wù)器連接(三次握手)


    三次握手

客戶端發(fā)送一個(gè)帶有SYN標(biāo)志的數(shù)據(jù)包給服務(wù)端,服務(wù)端收到后,回傳一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息,最后客戶端再回傳一個(gè)帶ACK標(biāo)志的數(shù)據(jù)包,代表握手結(jié)束,連接成功。

三、發(fā)送HTTP請(qǐng)求 —— 發(fā)送請(qǐng)求 request

請(qǐng)求包含:行頭體

POST Http://www.xxx.com HTTP/1.1
Connection: keep-alive
Content-Length: 612
Accept: application/json, text/plain, */*
Origin: http://192.168.5.104:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36
Content-Type: application/json;charset=UTF-8
Referer: http://192.168.5.104:8080/businessView
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: OUTFOX_SEARCH_USER_ID_NCOO=1076356267.7392054
{a:1,b:1}

四、服務(wù)器處理請(qǐng)求 —— 后端獲取HTTP請(qǐng)求,根據(jù)需求處理

這個(gè)太靈活了,自行發(fā)揮想象后端小哥如何處理前端給來(lái)的數(shù)據(jù),大概流程圖


HTTP一條龍流程圖

五、返回響應(yīng)結(jié)構(gòu) —— HTTP響應(yīng)

響應(yīng)和請(qǐng)求差不多,包含行頭體

HTTP/1.1 504 Gateway Timeout
X-Powered-By: Express
Date: Mon, 09 Dec 2019 01:20:50 GMT
Connection: keep-alive
Transfer-Encoding: chunked

六、關(guān)閉TCP連接

為了避免服務(wù)器與客戶端雙方的資源占用和損耗,當(dāng)雙方?jīng)]有請(qǐng)求或響應(yīng)傳遞時(shí),任意一方都可以發(fā)起關(guān)閉請(qǐng)求。與創(chuàng)建TCP連接的3次握手類似,關(guān)閉TCP連接,需要4次握手。


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容