從http結構到dns解析到cdn架構,了解web請求的具體過程。
與傳統的c/s架構的長連線互動模式不同,http採用了無狀態的短連線通訊方式。一次請求完成一次資料互動,然後斷開通訊。這樣做的原因是為了可以同時服務更多的使用者,不可能每次乙個使用者訪問一次就一直保持這個長連線。
其實發起乙個http鏈結的本質就是建立乙個socket通訊,只不過在寫進二進位制位元組資料格式要符合http。
http的解析主要看http header
,它表達了瀏覽器的行為和服務端的執行。 先說說request header
header
解釋accept
指定客戶端能夠接收的內容型別
accept-charset
瀏覽器可以接受的字元編碼集
accept-encoding
指定瀏覽器可以支援的web伺服器返回內容壓縮編碼型別
accept-language
瀏覽器可接受的語言
accept-ranges
可以請求網頁實體的乙個或者多個子範圍字段
authorization
授權的授權證書
cache-control
指定請求和響應遵循的快取機制
connection
表示是否需要持久連線
cookie
http請求傳送時,會把儲存在該請求網域名稱下的所有cookie值一起傳送給web伺服器
content-length
請求的內容長度
date
請求傳送的日期和時間
expect
請求的特定的伺服器行為
from
發出請求的使用者的email
host
指定請求的伺服器的網域名稱和埠號
range
只請求實體的一部分,指定範圍
user-agent
user-agent的內容包含發出請求的使用者資訊
via通知中間閘道器或**伺服器位址,通訊協議
warning
關於訊息實體的警告資訊
header
解釋server
web伺服器軟體名稱
expires
響應過期的日期和時間
content-md5
返回資源的md5校驗值
content-length
響應體的長度
content-location
請求資源可替代的備用的另一位址
content-encoding
web伺服器支援的返回內容壓縮編碼型別
transfer-encoding
檔案傳輸編碼
keep-alive
鏈結保持時間
狀態碼解釋
200客戶端請求成功
302跳轉
400請求有語法錯誤,伺服器無法識別
403伺服器收到請求但拒絕服務
404請求的資源不存在
500伺服器發生不可預期的錯誤
若頁面有異常可能是瀏覽器的快取機制,可用ctrl+f5組合鍵重新整理介面,瀏覽器會向目標url傳送請求而不使用瀏覽器自己快取的資料。但即使如此也可能訪問到的是快取的資料,因為可能在伺服器的前端部署了乙個快取伺服器。
檢查快取中有沒有網域名稱解析過的ip位址,有則解析結束,沒有則第二步
查詢作業系統快取中有沒有網域名稱解析的結果,有則解析結束,沒有則第三步
作業系統把這個網域名稱發給ldns(本地網域名稱伺服器),這個dns通常提供乙個本地網際網路接入的dns解析服務,很多網域名稱解析過程到這裡已經完成了,ldns承擔了主要的網域名稱解析工作。若沒有,則第四步
到根網域名稱伺服器進行解析,它返回給ldns乙個頂級域伺服器的位址。如.com.cn.org
ldns向這個頂級域伺服器傳送請求
頂級域伺服器接收到請求,查詢,返回這個網域名稱對應註冊的網域名稱伺服器,也就是說,網域名稱的解析任務交由網域名稱提供商的伺服器來完成
網域名稱提供商的伺服器查詢乙個儲存網域名稱和對應ip的對映表,發給ldns伺服器這個網域名稱和對應的目標ip記錄
ldns伺服器將這個網域名稱和對應的目標ip記錄,快取在本地系統快取中,解析結束。
mx記錄:mail exchange,可將某個網域名稱下的郵件伺服器指向自己的郵件伺服器
cname記錄:canonical name,可以為乙個網域名稱設個多個別名
ns記錄:這個網域名稱有指定的dns伺服器進行解析
txt記錄:為網域名稱設定說明
cdn:內容分布網路(content delivery network),是一種流量分配網路,在現有網路架構的基礎上增加了一次新的架構,使使用者可以在網路這就近取得所需的內容。實質就是使用公司自己的dns解析伺服器將這個網域名稱重新cname到另乙個網域名稱,指向整個cdn中的dns負載均衡伺服器,返回給離這個訪問使用者最近的cdn節點。
負載均衡(load balance)平衡工作任務到多個操作單元執行,最終共同完成工作任務。
負載均衡的架構有鏈路負載均衡,集群負載均衡,作業系統負載均衡。
原理:在cdn的dns解析中,通過動態鏈路檢測,尋找回源(找到幾個對應的cdn節點)最好的一條路徑,再通過dns排程,將所有請求排程到所選定的這條路徑上進行回源。
Web請求過程
當使用者在瀏覽器中輸入乙個url 如www.baidu.com 進行網頁瀏覽時,將會發生一系列的操作。大致流程如下 1 網域名稱解析 當使用者輸入網域名稱後,需要將網域名稱轉換成正確的ip位址,才能夠訪問web伺服器。首先會查詢本地網域名稱hosts檔案,若存在對應網域名稱的ip位址,就直接使用。若...
WEB請求過程
一 乙個例子 當使用者在瀏覽器中輸入www.com這個url時,首先,dns會把這個網域名稱解析成ip位址,然後根據這個ip找到對應的伺服器,並發起乙個get請求,對於伺服器端而言,可能會有負載均衡裝置來平均分配使用者請求,而請求的資料可能在分布式快取裡,靜態檔案中,或是資料庫中,當資料返回給瀏覽器...
web請求過程
b s兩方面好處 客戶端使用統一的瀏覽器 browser 瀏覽器統一性,遮蔽了不同伺服器提供商提供服務的差異性。並且,瀏覽器互動特性使瀏覽器使用方便,且使用者行為的可繼承性非常強。服務端 server 基於統一的http協議。簡化服務提供商開發模式,規範伺服器開發者上午開發模式。http協議採用無狀...