日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

从浏览器地址栏输入网址,到网页彻底打开,中间都发生了什么?

發(fā)布時(shí)間:2025/3/21 HTML 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从浏览器地址栏输入网址,到网页彻底打开,中间都发生了什么? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

從輸入域名到網(wǎng)頁打開的簡單過程如下,還附加我自己的理解:

1.DNS域名解析

  客戶端輸入域名后,由DNS服務(wù)器來將域名解析成對應(yīng)服務(wù)器的IP地址

2.建立TCP連接;

  獲得服務(wù)器IP之后,就需要三次握手的協(xié)議才能建立連接
    1)客戶端發(fā)送SYN包請求,等待服務(wù)器確認(rèn)
    2)服務(wù)器確認(rèn)收到SYN包請求后,同時(shí)自己也返回一個(gè)包給客戶端,即返回SYN+ACK
    3)客戶端收到SYN+ACK包之后,返回給服務(wù)器一個(gè)確認(rèn)包ACK包表示收到,然后雙方達(dá)成協(xié)議,建立連接

3.發(fā)送HTTP請求;

  與服務(wù)器建立連接之后,就可以向服務(wù)器發(fā)送請求了,請求需要遵循h(huán)ttp協(xié)議

4.服務(wù)器處理請求;

  被請求的服務(wù)器解析用戶請求的有哪些資源,通過服務(wù)器返回?cái)?shù)據(jù)給客戶端

5.返回響應(yīng)結(jié)果;

  給客戶端返回請求的狀態(tài)碼,通過狀態(tài)碼可以知道服務(wù)器端的處理是否正常

  常見狀態(tài)碼:狀態(tài)碼
    100 Continue 繼續(xù),客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請求。這個(gè)臨時(shí)響應(yīng)是用來通知客戶端它的部分請求已經(jīng)被服務(wù)器接收,且仍未被拒絕
    200 OK 請求成功,表示正常狀態(tài)
    301 Moved Permanently 請求的網(wǎng)頁已永久移動到新位置。
    400 Bad Request 語義有誤,當(dāng)前請求無法被服務(wù)器理解?;蛘呤钦埱髤?shù)有錯(cuò)誤
    404 Not Found 請求失敗,請求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)。多數(shù)情況是找不到輸入域名對應(yīng)的網(wǎng)頁。? ?
    500 Internal Server Error 一般來說,這個(gè)問題都會在服務(wù)器端的源代碼出現(xiàn)錯(cuò)誤時(shí)出現(xiàn)。。  

6.瀏覽器渲染:

  返回成功之后,瀏覽器拿到請求頁面的代碼,將其解析渲染出來。解析和渲染的過程主要由瀏覽器的渲染引擎實(shí)現(xiàn)

7. 斷開連接:

  數(shù)據(jù)傳輸完畢,需要斷開tcp連接,此時(shí)tcp發(fā)起4次揮手

  1)客戶端發(fā)送給服務(wù)器,告訴服務(wù)器需要關(guān)閉tcp了

  2)服務(wù)器發(fā)送給客戶端,告訴客戶端我準(zhǔn)備一下就關(guān)閉

  3)服務(wù)器發(fā)送給客戶端,告訴客戶端我已經(jīng)準(zhǔn)備好關(guān)閉了

  4)客戶端發(fā)送給服務(wù)器,告訴服務(wù)器我也準(zhǔn)備好關(guān)閉了。

?

我自己是用? "到外面吃飯" 這種方式來理解的:

1. 比如我要到某某餐館吃飯,我先在地圖上搜 餐館在哪里,然后通過導(dǎo)航 找到該餐館(域名解析)

2. 到達(dá)餐館過后,我想我到底要吃什么(建立連接)

  1) 摸了摸口袋里的錢,發(fā)現(xiàn)只有兩塊錢,然后詢問老板有沒有兩元的東西。(客戶端發(fā)送包,等待服務(wù)器確認(rèn))

  2) 老板一看我的樣子,就知道是個(gè)窮逼(服務(wù)器收到包),然后說只有饅頭價(jià)格兩元一個(gè)!(再返回一個(gè)包)

  3) 我欣喜若狂,掏出我壓箱底的兩元錢,告訴老板我要了(客戶端返回一個(gè)包),老板表示蚊子再小也是肉,就接受了這個(gè)訂單。我們快樂地達(dá)成了協(xié)議(達(dá)成協(xié)議)

3. 老板給后廚說準(zhǔn)備一個(gè)饅頭(發(fā)送http請求)

4. 后廚收到請求之后,開始準(zhǔn)備饅頭的材料(處理請求)。

5. 沒過多久,我就拿到了熱騰騰的饅頭(返回響應(yīng)結(jié)果)。

6. 拿到饅頭之后我就開始了愉快的進(jìn)食過程(渲染)

7. 吃飽之后就離開餐館:(斷開連接)

  1)我對老板說:老板,結(jié)賬,我準(zhǔn)備走了

  2)老板對我說:稍等一下,馬上就來

  3)老板又對我說:一共兩元。

  4)我付了賬,對老板說:這饅頭真好吃,我下次再來。

雖然上面的過程和真實(shí)的響應(yīng)過程對應(yīng)起來比較牽強(qiáng),但是這能夠幫助我理解什么時(shí)候是做什么事情,并不像原來一樣全靠記憶。

轉(zhuǎn)載于:https://www.cnblogs.com/zjjDaily/p/8302476.html

總結(jié)

以上是生活随笔為你收集整理的从浏览器地址栏输入网址,到网页彻底打开,中间都发生了什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。