一、web請求
阿新 • • 發佈:2018-12-19
BS架構(Browser/Server)
- 客戶端使用統一的瀏覽器(Browser)
- 服務端(Server)基於統一的HTTP協議
流程:使用者瀏覽器輸入URL地址–》DNS域名解析出IP地址–》向找到的伺服器傳送一個get請求–》伺服器返回資料資源
HTTP解析
請求頭 | 說明 |
---|---|
Accept-Charset | 用於指定客戶端接收的字符集 |
Accept-Encoding | 用於指定可接受的內容編碼,如Accept-Encoding:deflate |
Accept-Language | 用於指定一種自然語言,如Accept-Language:zh-cn |
Host | 用於指定被請求資源的Internet主機和埠號,如:Host:www.taobao.com |
User-Agent | 客戶端將它的作業系統、瀏覽器和其他屬性告訴伺服器 |
Connection | 當前連線是否儲存,如Connention-Keep-Active |
響應頭 | 說明 |
---|---|
Server | 使用的伺服器名稱,如Server:Apache/1.3.6(Unix) |
Connect-type | 用於指定傳送給接收者的實體正文的媒體型別,如Content-Type:text/html;charset-GBK |
Connect-Encoding | 與請求報頭Accept-Encoding對應,告訴瀏覽器服務端採用的是什麼壓縮編碼 |
Connect-Language | 描述了資源所用的自然語言,與Accept-Language對應 |
Connect-Length | 指明實體正文的長度,用以位元組方式儲存的十進位制數字來表示 |
Keep-Active | 保持連線的時間,如Keep-Alive: timeout-5, max=120 |
狀態碼 | 說明 |
---|---|
200 | 客戶端請求成功 |
302 | 臨時跳轉,跳轉的地址通過Location指定 |
400 | 客戶端請求有語法錯誤,不能被伺服器識別 |
403 | 伺服器收到請求,但是拒絕提供服務 |
404 | 請求的資源不存在 |
500 | 伺服器發生不可預期的錯誤 |
瀏覽器快取
1、瀏覽器內部快取
2、快取伺服器的快取
快取可能會使資料異常
Ctrl+F5獲取最新資料,不訪問瀏覽器快取,也不訪問快取伺服器的快取
實現:兩種方式(實現Ctrl+F5效果)請求頭中新增
Pragma:no-cach
Cache-Control:no-cach
3、Expires設定快取失效時間
4、Last-Modified表示一個伺服器上資源的最後修改時間
DNS域名解析
通過域名是無法直接訪問遠端主機的,域名需要解析成IP地址才可以與遠端主機建立連線
大體步驟:
1.檢查瀏覽器快取–>2.檢查計算機本地快取–>3.檢查LDNS(Local DNS Server)–>4.訪問根伺服器
1、瀏覽器快取存在大小時間的限制,一般幾分鐘到幾小時不等
2、計算機本地快取在C:\Windows\System32\drivers\etc\hosts中
3、一般解析過程在LDNS就結束了
4、DNS根伺服器,如果壞掉了就完蛋了
CDN工作機制
CDN就是內容分散式網路,一般存放靜態資源,緩解伺服器壓力
會有負載均衡伺服器排程使最優的伺服器給使用者返回資料。