当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?
總的思路:在瀏覽器地址欄鍵入URL,按下回車之后發生的幾個事件:
? ? 1)瀏覽器向DNS服務器請求解析該URL中的域名所對應的IP地址;
? ? 2)解析出IP地址后,根據該IP地址和默認端口80,和服務器建立TCP連接;
? ? 3)瀏覽器發出讀取文件(URL中域名后面部分對應的文件)的HTTP請求,該請求報文作為TCP三次握手的第三個報文的數據發送給服務器;
? ? 4)服務器給出相應,把對應的html文本發送給瀏覽器;
? ? 5)釋放TCP連接;
? ? 6)瀏覽器將該文本顯示出來。
具體的實現: 1、瀏覽器根據域名查詢域名對應的服務器的IP地址。 根據域名查詢IP地址的順序如下:瀏覽器DNS >>> 操作系統DNS緩存 >>> 本地(ISP)域名服務器緩存 >>> 根域名服務器。在請求到根域名服務器之后,根域名服務器告訴本地域名服務器,下一次應查詢的頂級域名服務器dns.com的IP地址。
本地域名服務器向頂級域名服務器dns.com進行查詢,頂級域名服務器dns.com告訴本地域名服務器,下一步應查詢的權限服務器dns.abc.com的IP地址。
本地域名服務器向權限域名服務器dns.abc.com進行查詢,權限域名服務器dns.abc.com告訴本地域名服務器,所查詢的主機的IP地址。
最終查詢到IP地址之后,本地域名服務器將IP地址告訴給瀏覽器。
2、瀏覽器主機根據IP地址與服務器建立TCP連接。建立TCP連接需要進行三次握手。
(1)瀏覽器主機 >>> 服務器:SYN=1,ACK=0,seq=x;
(2)服務器 >>> 瀏覽器主機:SYN=1,ACK=1,seq=y,ack=x+1;
(3)瀏覽器主機 >>> 服務器:ACK=1,seq=x+1,ack=y+1。
3、瀏覽器將訪問請求封裝為一個HTTP請求報文,通過TCP協議發送給服務器。
HTTP請求報文的方法是get方式;如果瀏覽器存儲了該域名下的Cookies,那么會把Cookies放入HTTP請求頭里發給服務器。
4、服務器收到請求并響應,生成一個HTTP響應報文,通過TCP協議發送給瀏覽器主機。
HTTP響應報文的頭部包含了狀態碼(Status-Code),三位數字,有5大類。HTTP響應報文內容則是網頁的編碼內容。
5、瀏覽器得到響應報文之后,對響應報文進行解析。
在瀏覽器沒有完整接受全部HTML文檔時,它就已經開始顯示這個頁面了。如果是個靜態的頁面,那到此就基本結束了。如果是是動態的,那么在瀏覽器顯示HTML時,會獲取嵌入在HTML中的對象,瀏覽器會發送獲取請求來重新獲得這些文件。
6、瀏覽器異步請求其他資源。
在分析HTML時,若發現網頁引用了其他資源,例如:css、圖片等,瀏覽器則發起HTTP請求,得到響應資源。
總結
以上是生活随笔為你收集整理的当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解方程的计算机软件,解方程计算器app
- 下一篇: Mongo 多语言模糊匹配