1.域名解析
2.建立鏈接(三次握手)
3.發送和收取數據
4.斷開連接(四次揮手)
應用層
表示層
會話層
傳輸層
網絡層
數據鏈路層
物理層
B/S:http無狀態的短連接
域名解析:請求DNS服務器,將域名解析為IP地址,然后根據IP地址在互聯網上找對應的服務器,向服務器發送GET請求
負載均衡:服務器可能有多台
請求的數據存在哪里?分布式緩存、靜態文件、數據庫
瀏覽器解析返回的數據,如果是靜態資源,請求靜態資源服務器
發起一個請求(http連接)本質上就是建立一個Socket連接
Http Header
控制着瀏覽器的渲染行為和服務器的執行邏輯
(1)http請求頭
Accept-Charset:客戶端瀏覽器接受的字符集
Accept-Encoding:接受的內容編碼
Accept-Language:指定一種語言,如zh-cn
Host:指定被請求資源的Internet主機和端口號
User-Agent:客戶端瀏覽器將自身的操作系統、瀏覽器、其它屬性告知服務器
Connection:當前連接是否保持
(2)http響應頭
Server:使用的服務器名
Content-type:指明發送給接收者的實體正文的媒體類型,如:text/html;charset=dbk
Content-Encoding
Content-language
Content-length:指明實體正文的長度
keep-live:當前連接保持的時間 timeout-5,max=120
(3)http狀態碼
Ctrl+F5
瀏覽器直接向目標URL發送請求,而不使用瀏覽器的緩存;其次,會在請求頭中加一些請求頭,請求到達服務端之后,也獲取最新數據
加了哪些請求頭?Pragma:no-cache Cache-Control:no-cache(不僅可以控制瀏覽器,還可以控制與http相關的緩存和代理服務器)
DNS域名解析
在瀏覽器地址欄輸入想要訪問的url,回車
(1)瀏覽器檢查緩存中是否有該域名對應的解析過的IP地址,如果有,結束
瀏覽器中緩存的大小、時間(TTL)都有限制
時間應該權衡,時間太長,如果該段時間內域名對應的IP有變化,將導致一段時間該域名無法訪問;時間太短,導致有可能每次訪問都要重新解析
(2)瀏覽器緩存中沒有,查找操作系統緩存
c:windows/system/drivers/etc/hosts
/etc/hsot
(3)hosts文件中也沒有,瀏覽器請求本地域名服務器
在網絡配置中,有DNS服務器地址這一項的配置
操作系統把這個域名配置為LDNS(本地域名服務器)
本地域名服務器一般能解析80%的域名
(4)本地域名服務器仍未命中,本地域名服務器請求RootServer域名服務器
(5)根域名服務器返回給本地域名服務器一個所查詢域的主域名服務地址(gTLD)
gTLD服務器是國際頂級域名服務器(如.com .cn .org)
(6)本地域名服務器向gTLD服務器發送請求
(7)gTLD服務器查找並返回域名對應的Name Server域名服務器的地址
(8)本地域名服務器向Name Server域名服務器發送請求
Name Server域名服務器會查詢存儲的域名和ip的映射關系表,根據域名得到IP地址和TTL值
(9)Name Server域名服務器返回域名對應的ip和TTL值
(10)local DNS Server收到Name Server的返回值之后,會緩存該域名、ip對應關系,緩存時間由TTL決定,並將返回值返回給瀏覽器
跟蹤域名解析的過程
windows nslookup
linux nslookup dig
刷新緩存的域名
Windows ipconfig /flushdns
Linux /etc/init.d/nscd restart
CND
內容分布網絡(content delivery network)
構建在現有Internet上的一種先進的流量分配網絡
將網站的內容發布在最接近用戶的網絡邊緣,使用戶可以就近訪問資源
一般是緩存靜態資源
負載均衡
鏈路負載均衡
集群負載均衡
操作系統負載均衡