從打開一個網(wǎng)址說起

當在瀏覽器中輸入一個網(wǎng)址的時候,瀏覽器會渲染出對應的網(wǎng)頁的內(nèi)容。作為web開發(fā)人員來說,應該知道這個過程:

  1. 當輸入的一個網(wǎng)址為域名的時候,瀏覽器則根據(jù)本機的網(wǎng)關(guān)和DNS服務(wù)器來解析出訪問的真正的IP地址。如果是直接訪問IP則直接與服務(wù)器通信,發(fā)送請求。 請求原理簡單如下:

    大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓
    (此處只是簡單表示下域名解析原理,解析過程比這個復雜的多。)

  2. 發(fā)送請求的時候會經(jīng)歷TCP三次握手過程(http也是基于TCP的協(xié)議),當TCP連接建立成功后,瀏覽器會根據(jù)http協(xié)議,把請求的內(nèi)容封裝成請求報文,發(fā)送給web服務(wù)器.

  3. 服務(wù)器會根據(jù)請求的報文的內(nèi)容,執(zhí)行對應的程序和讀取對應的文件,按照http協(xié)議的規(guī)則返回響應內(nèi)容(包括header和body)。

  4. 服務(wù)器根據(jù)響應頭來解析響應的內(nèi)容,完成html+css+js的渲染和執(zhí)行。

http協(xié)議

HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。

用簡單的話來說,當客戶端與服務(wù)器端通信的時候,需要傳輸?shù)膬?nèi)容有(HTML 文件,js+css, 圖片,文本, 查詢結(jié)果等),http協(xié)議把內(nèi)容傳輸規(guī)范化。可以隨便查看下一個http協(xié)議的內(nèi)容:

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

(上面的圖是請求jqury的請求和響應信息)

請求的頭信息

  GET /script/jquery.js HTTP/1.1
  Host: common.cnblogs.com
  Connection: keep-alive
  Pragma: no-cache
  Cache-Control: no-cache
  User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
  Accept: */*
  Referer: http://kb.cnblogs.
        
		

網(wǎng)友評論