乙個url請求的流程

2021-10-06 20:18:30 字數 897 閱讀 9491

網域名稱解析就是根據url來獲取對應的ip的過程。

瀏覽器 會首先會去搜尋瀏覽器自身的dns快取 , 如果找到了url對應的ip就直接返回

如果瀏覽器自身的快取裡面沒有找到對應的條目,那麼瀏覽器會搜尋作業系統自身的dns快取,如果找到且沒有過期則停止搜尋解析到此結束.

如果在os的dns快取裡也沒找到,那麼嘗試讀取hosts檔案(在linux和mac下,hosts在/etc/hosts裡)

如果在hosts檔案中也沒有找到對應的條目,瀏覽器就會發起乙個dns的系統呼叫,就會向本地配置的首選dns伺服器(一般是運營商提供的)發起網域名稱解析請求。

dns伺服器首先查詢自身的快取,找到對應的條目,且沒有過期,則解析成功。

如果沒有找到對應的條目,則有運營商的dns代我們的瀏覽器發起迭代dns解析請求,它首先是會找根域的dns的ip位址(假如url=www.baidu.com)

根域發現這是乙個頂級域com域的乙個網域名稱,於是就告訴運營商的dns我不知道這個網域名稱的ip位址,但是我知道com域的ip位址,你去找它去,於是運營商的dns就得到了com域的ip位址,又向com域的ip位址發起了請求

com域這台伺服器告訴運營商的dns我不知道www.baidu.com這個網域名稱的ip位址,但是我知道baidu.com這個域的dns位址,你去找它去,於是運營商的dns又向baidu.com這個網域名稱的dns位址發起請求

然後在baidu.com這個網域名稱的dns伺服器中找到了我們想要的www.baidu.com的ip,然後將ip層層返回,並重新整理到快取中。

拿到網域名稱對應的ip位址之後,瀏覽器會以乙個隨機埠(1024 < 埠 < 65535)根據獲取的ip ,向伺服器的web程式80埠發起tcp的連線請求。

(然後開始三次握手)

進過tcp3次握手之後,瀏覽器發起了http的請求

(背一下四次揮手)

獲取乙個請求的URL內容

using system.net 1 建立乙個請求的url。webrequest request webrequest.create 如果所需的伺服器,設定憑證。request.credentials credentialcache.defaultcredentials 得到響應。顯示狀態。cons...

Spring MVC 處理乙個請求的流程

乙個請求從客戶端發出到達伺服器,然後被處理的整個過程其實是非常複雜的。本部落格主要介紹請求到達伺服器被核心元件dispatcherservlet處理的整理流程 不包括filter的處理流程 1.處理流程分析 servlet處理乙個請求時會呼叫service 方法,所以dispatcherservle...

Spring MVC 處理乙個請求的流程分析

spring mvc是spring系列框架中使用頻率最高的部分。不管是spring boot還是傳統的spring專案,只要是web專案都會使用到spring mvc部分。因此程式設計師一定要熟練掌握mvc部分。本篇部落格簡要分析spring mvc處理乙個請求的流程。乙個請求從客戶端發出到達伺服器...