總所周知,在瀏覽器搜索欄輸入URL便可看到咱們想要的網站,可是這一個過程卻不是那麼的簡單。在瀏覽器渲染以前,會執行以下操做:html
DNS也是開銷,一般瀏覽器查找一個給定域名的IP地址要花費20~120毫秒,在完成域名解析以前,瀏覽器不能從服務器加載到任何東西。前端
在瀏覽器拿到域名對應的IP地址以後,會發起TCP鏈接請求,這個過程就是咱們熟知的TCP三次握手和四次揮手。 web
客戶端首先發送SYN=1給服務端,表示要建立鏈接,在服務端接收到後,加個ACK=1返回,告訴客戶端我收到了,因而就變成了SYN=1,ACK=1。理論上這個時候建立鏈接成功了,可是要防止客戶端沒有收到請求,因此客戶端再發一個消息給服務端肯定一下,這時只須要返回ACK=1就能夠了。瀏覽器
首先客戶端請求關閉客戶端到服務器端的鏈接,這時客戶端發送一個FIN=1,表示要關閉一個方向的鏈接,服務端接收後返回ACK=1確認。這時只關閉了一個方向,另外一個方向也須要關閉,因此服務端也向客戶端發送FIN=1,ACK=1。客戶端接收後發送ACK=1,表示接收成功。四次揮手完成。緩存
客戶端發送一個HTTP Request包括如下格式: 請求行(request line)、請求頭(request header)、空行和請求數據 性能優化
通常狀況下,服務器接受並處理客戶端發過來的請求後會返回一個HTTP響應消息,HTTP響應消息包括如下格式: 狀態行(status line)、消息報頭(reponse header)、空行和響應正文服務器端WEB程序接收到http請求之後,就開始處理該請求,處理以後就返回給瀏覽器html文件服務器