普通網(wǎng)民打開(kāi)網(wǎng)頁(yè),訪問(wèn)網(wǎng)站,并不需要了解所謂HTTP協(xié)議。作為軟件工程師,了解一下瀏覽器的工作過(guò)程還是一件比較有意思的事情。我向大家介紹一下當(dāng)我們?cè)跒g覽器的地址欄里面回車的時(shí)候,瀏覽器如何和Web服務(wù)器通信。
DNS域名解析
瀏覽器第一步做的是DNS域名解析。域名解析的主要作用是將域名轉(zhuǎn)換成IP地址。例如www.sina.com.cn就是域名,202.108.33.81就是IP地址。Windows有個(gè)命令叫nslookup,就是域名解析命令。
通過(guò)nslookup,我們發(fā)現(xiàn)新浪域名解析出好多IP地址,新浪Web網(wǎng)站規(guī)模大,所以Web服務(wù)器比較多,通過(guò)多臺(tái)Web服務(wù)器解決負(fù)載問(wèn)題。
建立Socket連接
第二步是和Web服務(wù)器建立Socket連接。Web服務(wù)器缺省是80端口。我們?cè)诘刂窓诶锩孑斎雋ttp://www.sina.com.cn,瀏覽器連接202.108.33.81服務(wù)器的80端口。如果Web服務(wù)器不是80端口,例如8080端口,我們需要輸入http://www.sina.com.cn:8080。
HTTP請(qǐng)求和響應(yīng)
第三步是瀏覽器通過(guò)Socket向Web服務(wù)器發(fā)送HTTP請(qǐng)求,接收HTTP響應(yīng)。HTTP協(xié)議比較復(fù)雜,下面是一個(gè)HTT請(qǐng)求的例子:
Host:rss.sina.com.cn
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language:zh-cn,zh;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Cookie:userId=C5bYpXrimdmsiQmsBPnE1Vn8ZQmdWSm3WRlEB3vRwTnRtW <-- Cookie
If-Modified-Since:Sun, 01 Jun 2008 12:05:30 GMT
Cache-Control:max-age=0
HTTP 響應(yīng)消息頭部實(shí)例:
Status:OK - 200
Date:Sun, 01 Jun 2008 12:35:47 GMT
Server:Apache/2.0.61 (Unix)
Last-Modified:Sun, 01 Jun 2008 12:35:30 GMT
Accept-Ranges:bytes
Content-Length:18616
Cache-Control:max-age=120
Expires:Sun, 01 Jun 2008 12:37:47 GMT
Content-Type:application/xml
Age:2
Connection:close
下載網(wǎng)頁(yè)文本內(nèi)容
第四步瀏覽器下載網(wǎng)頁(yè)文本內(nèi)容,網(wǎng)頁(yè)文本中標(biāo)記著圖片、CSS文件和Flash等等。瀏覽器分析出這些內(nèi)容后開(kāi)4個(gè)線程對(duì)這些內(nèi)容進(jìn)行下載,顯示在屏幕上。
上海2022年10月13日 /美通社/ -- 當(dāng)下,Matter已成為全球物聯(lián)網(wǎng)行業(yè)最熱門的話題之一。經(jīng)過(guò)兩輪全球性測(cè)試活動(dòng)SVE1及SVE2后,DEKRA德凱西班牙馬拉加和中國(guó)廣州實(shí)驗(yàn)室率先成為CSA聯(lián)盟(Connec...
關(guān)鍵字: TE CE STANDARDS CONNECTIVITY