從 URL 輸入后瀏覽器發(fā)生了什么

查閱資料后,在stackoverflow上找到一個(gè)好答案,現(xiàn)在嘗試翻譯一下
(原文鏈接what happens when you type in a URL in browser [closed])

要知道從 URL 輸入后瀏覽器發(fā)生了什么,在最簡(jiǎn)單的描述中,我們假設(shè) HTTP 請(qǐng)求沒(méi)有代理,沒(méi)有 IPv4 ,所有步驟沒(méi)有問(wèn)題:

  1. 瀏覽器檢查緩存,如果請(qǐng)求對(duì)象在緩存里并且是新的,那么跳到步驟9
  2. 瀏覽器向系統(tǒng)請(qǐng)求服務(wù)器的 IP 地址
  3. 系統(tǒng)進(jìn)行 DNS 查找,并將 IP 地址返回給瀏覽器
  4. 瀏覽器與服務(wù)器建立 TCP 連接(這一步很復(fù)雜因?yàn)橛玫搅?br> HTTPS 。三次握手,若有一次任何一方收不到信息那么將會(huì)重新發(fā)起 TCP 連接)
  5. 瀏覽器通過(guò) TCP 連接發(fā)送 HTTP 請(qǐng)求
  6. 瀏覽器接收 HTTP 請(qǐng)求的響應(yīng),并將關(guān)閉 TCP 連接或者發(fā)起請(qǐng)求
  7. 瀏覽器檢查響應(yīng)是重定向還是條件響應(yīng)(這里會(huì)返回狀態(tài)碼:3xx結(jié)果狀態(tài)代碼),授權(quán)請(qǐng)求(401),錯(cuò)誤(4xx和5xx)等;這些與正常響應(yīng)(2xx)的處理方式不同
  8. 如果可以緩存,那么響應(yīng)會(huì)保存在緩存中
  9. 瀏覽器解碼響應(yīng)
  10. 瀏覽器確定如何處理響應(yīng)(例如,它是HTML頁(yè)面,它是一個(gè)圖像,它是一個(gè)聲音文件嗎?)
  11. 瀏覽器展現(xiàn)響應(yīng),或彈出無(wú)法識(shí)別的類(lèi)型的對(duì)話(huà)框

當(dāng)然還有一個(gè)更加詳細(xì)的版本,從計(jì)算機(jī)硬件開(kāi)始講起。(點(diǎn)擊拓展閱讀)

最后向大家分享一個(gè)vscode的設(shè)置,將git-bash集成到vscode中。


QQ截圖20170505095127.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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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