一、輸入網址,再按回車后面發生了什么
輸入網址,再按回車后面會發生:a.域名解析;b.發起TCP的3次握手;c.建立TCP連接后發起http請求;d.服務器端響應http請求,瀏覽器得到html代碼;e.瀏覽器解析html代碼,并請求html代碼中的資源;f.瀏覽器對頁面渲染呈現給用戶。
總體的訪問過程
首先會進行DNS解析,然后解析得到地址之后客戶端和web服務器會建立一條TCP連接,其中有一個TCP三次握手過程,當完成握手之后客戶端就會向瀏覽器發送一條請求報文,服務器然后進行響應,接著當數據傳輸完之后,服務器和客戶端有一個TCP四次揮手過程,來結束連接。
dns解析流程
在瀏覽器中輸入網址回車后,首先系統會去找這個域名對應的ip,然后再根據這個ip地址查找web服務器,
這里面有個DNS解析流程
??? 1、系統首先查找本地的DNS緩存和hosts文件信息,確認是否有www.baidu.com對應的ip地址,如果有就直接訪問這個ip地址對應的www.baidu.com web服務器
??? 2、如果沒有,那么系統會將解析請求發送給本機網卡指定的DNS服務器,稱為LDNS(本地dns),如果本地DNS服務器中有域名www.baidu.com所對應的的ip地址,就會去訪問這個IP對應的web服務器,如果沒有就去請求其他DNS服務器
??? 3、LDNS服務器會從根域名服務器開始對于域名www.baidu.com的解析,全球有13臺根服務器,根域名服務器沒有www.baidu.com的解析記錄,有.com拔尖域的解析記錄,然后把.com所對應的DNS服務器地址返回給LDNS服務器
??? 4、LDNS獲取到.com的DNS服務器地址之后,就去.com服務器請求www.baidu.com域名的解析,.com里面也沒有www.baidu.com域名對應的地址,但是有baidu.com域名的解析記錄,然后.com服務器將baidu.com對應的DNS服務器地址返回給LDNS,
??? 5、同理LDNS去找baidu.com的DNS服務器請求www.baidu.com的域名解析,然后baidu.com域名DNS服務器將www.baidu.com地址對應的IP解析記錄發送回給LDNS
??? 6、LDNS把解析出的結果www.baidu.com對應的ip地址發送給客戶端的瀏覽器,然后也記錄到緩存中
延伸閱讀:
二、請求報文有什么
請求報文包括:請求行,請求頭部,空白行,請求報文主體
請求行:
用來說明客戶端想要做什么,內容包括方法字段(請求方法包括:GET:請求指定資源,HEAD,請求響應報文的首部,
POST:提交數據到服務器,PUT:傳送的數據取代指定的文檔內容,DELETE:刪除Request-URI所標識的資源,MOVE:移動)、URL字段以及HTTP協議版本(最開始的0.9版本,后來又有了1.0,1.1,2.0,其中1.1是主流)
請求頭:
通過客戶端把請求的相關信息發給服務器,內容包括媒體類型,語言類型,主機名等信息
空行:
告訴服務器空行以下內容不屬于請求頭部信息
請求報文主體:
用來說明客戶端具體想要做的事情