深入web請求過程
HTTP解析
常見的HTTP請求頭
請求頭 | 說明 |
---|---|
Accept-Charset | 用於制定客戶端接受的字符集 |
Accept-Encoding | 用於制定可接受的內容編碼,如Accpet-Encoding:gzip。deflate |
Accept-Language | 用於指定一種自然語言,如:Acept-Language-Zh-cn |
Host | 用於制定被請求資源的Internet主機和端口號,如:Host:www.taobao.com |
User-Agent | 客戶端將它的操作系統、瀏覽器和其他屬性告訴服務器 |
Connection | 當前連接是否保持,如Connection:Kepp-Alive |
常見的HTTP響應頭
響應頭 | 說明 |
---|---|
Server | 使用服務器名稱,如Server:Apache、1.3.6(Unix) |
Content-Type | 用來指說明發送給接受者的實體正文的媒體類型,如Contnet-Type:text/html;charset=GBK |
Content-Language | 描述了資源所用的自然語言,與Accept-Language對應 |
Content-Length | 指明實體正文的長度,用以字節方式存儲的十進制數字來表示 |
Keep-Alive | 保持連接的時間,如Keep-Alive:timeout=5,max=120 |
常見的HTTP狀態嗎
狀態碼 | 說明 |
---|---|
200 | 客戶端請求成功 |
302 | 臨時跳轉,跳轉的地址通過Location制定 |
400 | 客戶端請求有語法錯誤,不能被服務器識別 |
403 | 服務器收到請求,但是拒絕提供服務 |
404 | 請求的資源不存在 |
500 | 服務器發生不可預期的錯誤 |
清楚緩存的域名
使用 ipconfig/flush來清楚緩存域名
幾種域名解析方式
A記錄:域名對應IP地址
MX記錄:將某個域名下的郵件服務器指向自己的MAIL Server
CNAME記錄:全程 Canonical Name(別名解析)。爲一個域名設置一個或多個別名。
NS記錄:爲某個域名制定DNS解析服務器。
TXT記錄:爲某個主機名或域名設置說明。
CDN 內容分佈網絡
用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。比鏡像更智能,可以比喻爲:鏡像(Mirror)+緩存(Cache)+整體負載均衡(GSLB),目前CDN都以緩存網站中的靜態數據爲主。CDN達到以下目標:可擴展、安全性、可靠性
負載均衡(Load Balance)
對工作進行平衡、分攤到多個操作單元上執行,如圖片服務器、應用服務器等,共同完成工作任務。提高服務器響應速度及利用效率,避免軟件或者硬件模塊出現單點失效等問題。
目前的負載均衡架構有三種,分別爲:鏈路負載均衡、集羣負載均衡和操作系統負載均衡。
鏈路負載均衡:通過DNS解析成不同的IP,用戶根據IP訪問不同的目標服務器。
集羣負載均衡:分爲硬件負載均衡和軟件負載均衡,硬件一般要花費巨資購買一臺高性能設備,缺點貴,而且當訪問量超出極限時,不能進行動態擴容。軟件負載均衡:使用多臺廉價的PC搭建,成本低。缺點是一般一次訪問請求要經過多次代理服務器,會增加網絡延時。
操作系統負載均衡:通過操作系統的軟中斷或者硬件中斷來進行負載均衡。
CND動態加速:在CDN的DNS解析中通過動態的鏈路探測來尋找回源最好的一條路徑,然後通過DNS的調度將所有請求調度到選定的這條路徑上回源,從而加速用戶訪問的效率。