小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

瀏覽器工作原理

 nbxming 2011-08-30

首先對(duì)上篇blog進(jìn)行一個(gè)補(bǔ)充:

以我做的“基于線(xiàn)程池和數(shù)據(jù)庫(kù)連接池的web服務(wù)器”為例,說(shuō)說(shuō)HTTP通信的流程,大體分為三個(gè)階段:

A. 連接  服務(wù)器通過(guò)一個(gè)ServerSocket類(lèi)對(duì)象對(duì)8000端口進(jìn)行監(jiān)聽(tīng),監(jiān)聽(tīng)到之后建立  

連接,打開(kāi)一個(gè)socket虛擬文件。

B. 請(qǐng)求  創(chuàng)建與建立socket連接相關(guān)的流對(duì)象后,瀏覽器獲取請(qǐng)求,為GET請(qǐng)求,則

從請(qǐng)求信息中獲取所訪(fǎng)問(wèn)的HTML文件名,向服務(wù)器發(fā)送請(qǐng)求。

C. 應(yīng)答  服務(wù)收到請(qǐng)求后,搜索相關(guān)目錄文件,若不存在,返回錯(cuò)誤信息。若存在,

則想html文件,進(jìn)行加HTTP頭等處理后響應(yīng)給瀏覽器,瀏覽器解析html

文件,若其中還包含圖片,視頻等請(qǐng)求,則瀏覽器再次訪(fǎng)問(wèn)web服務(wù)器,異

常獲取圖片視頻等,并對(duì)其進(jìn)行組裝顯示出來(lái)。

 

Ok! 言歸正傳! 寫(xiě)上篇blog時(shí),留下了一個(gè)問(wèn)題,就是瀏覽器的工作原理,在我們輸入一個(gè)網(wǎng)址就獲得如此豐富多彩的網(wǎng)絡(luò)世界的背后究竟發(fā)生了什么事請(qǐng),作為一個(gè)軟件工程的學(xué)生很有必要研究一下! 上網(wǎng)查了查,想總結(jié)如下:

S1 瀏覽器根據(jù)你輸入的網(wǎng)址查找IP地址。這里涉及到一個(gè)叫DNS(域名解析系統(tǒng))的東西,專(zhuān)門(mén)用于查找域名對(duì)應(yīng)的IP地址的。當(dāng)然,處于性能的考慮,不是每一次都需要到這個(gè)系統(tǒng)中進(jìn)行查找的,這里邊會(huì)有很多的緩存對(duì)一些對(duì)應(yīng)信息進(jìn)行緩存。會(huì)依次查詢(xún):瀏覽器緩存,系統(tǒng)緩存,路由器緩存,ISP DNS緩存,ISP DNS對(duì)root域名服務(wù)器到自己的域名服務(wù)器進(jìn)行遞歸搜索。

 

            這里產(chǎn)生一個(gè)問(wèn)題:負(fù)載平衡器;

S2 瀏覽器向服務(wù)器發(fā)送請(qǐng)求。(當(dāng)然,有時(shí)候?yàn)g覽器中有緩存另當(dāng)別論)。這里就是上篇blog中提到的過(guò)程了。

        當(dāng)然這里可以有一個(gè)小插曲,重定向響應(yīng)。當(dāng)輸入http:///時(shí),當(dāng)服務(wù)器回給瀏覽器響應(yīng)一個(gè)301永久重定向響應(yīng)。

        瀏覽器接到重定向后就會(huì)跟蹤重定向,進(jìn)而瀏覽器就會(huì)訪(fǎng)問(wèn)“http://www./” 而非“http:///”

            這里也產(chǎn)生一個(gè)問(wèn)題:cookies

 

S3 服務(wù)器處理請(qǐng)求。 服務(wù)器接受請(qǐng)求,并進(jìn)行處理。

            這里面還是大有文章可做啊。具體的如何處理的,那又將是一個(gè)美麗的世界:

     里面至少包括下列知識(shí):

            Web服務(wù)器(IIS,阿帕奇等),CGI,servlet,aspjsp,以及我們現(xiàn)在所學(xué)的web開(kāi)發(fā)(HSS框架,設(shè)計(jì)模式等等)大都是在做這個(gè)事情。

 

S4 服務(wù)器發(fā)回一個(gè)HTML響應(yīng)

S5 瀏覽器開(kāi)始顯示html。

S6 瀏覽器發(fā)送嵌在html中的相關(guān)對(duì)象。如:圖片,CSS,JS等。這些資源同樣需要經(jīng)歷想訪(fǎng)問(wèn)html文件的流程。

這里同樣有很多東西可以研究的啦!像這些靜態(tài)資源如何存放,有個(gè)叫內(nèi)容分發(fā)器的東西(將這些資源分發(fā)到不同的數(shù)據(jù)中心備份),負(fù)責(zé)平衡器等在這里就有用處了。

    

S7 補(bǔ)充瀏覽器發(fā)送一個(gè)AJAX請(qǐng)求。

         對(duì)這個(gè)還不是太明白,同樣產(chǎn)生一個(gè)問(wèn)題:AjAx。

        

      查資料了解到:

fiddler這個(gè)工具能夠讓你看到瀏覽器發(fā)送的異步請(qǐng)求。事實(shí)上,你不僅可以被動(dòng)的做為這些請(qǐng)求的看客,還能主動(dòng)出擊修改和重新發(fā)送它們。AJAX請(qǐng)求這么容易被蒙,可著實(shí)讓那些計(jì)分的在線(xiàn)游戲開(kāi)發(fā)者們郁悶的了。(當(dāng)然,可別那樣騙人家~

Facebook聊天功能提供了關(guān)于AJAX一個(gè)有意思的問(wèn)題案例:把數(shù)據(jù)從服務(wù)器端推送到客戶(hù)端。因?yàn)?/span>HTTP是一個(gè)請(qǐng)求-響應(yīng)協(xié)議,所以聊天服務(wù)器不能把新消息發(fā)給客戶(hù)。取而代之的是客戶(hù)端不得不隔幾秒就輪詢(xún)下服務(wù)器端看自己有沒(méi)有新消息。

這些情況發(fā)生時(shí)長(zhǎng)輪詢(xún)是個(gè)減輕服務(wù)器負(fù)載挺有趣的技術(shù)。如果當(dāng)被輪詢(xún)時(shí)服務(wù)器沒(méi)有新消息,它就不理這個(gè)客戶(hù)端。而當(dāng)尚未超時(shí)的情況下收到了該客戶(hù)的新消息,服務(wù)器就會(huì)找到未完成的請(qǐng)求,把新消息做為響應(yīng)返回給客戶(hù)端。

 

寫(xiě)本blog遇到的問(wèn)題如下:

1. 負(fù)載平衡器  是以一個(gè)特定IP地址進(jìn)行偵聽(tīng)并將網(wǎng)絡(luò)請(qǐng)求轉(zhuǎn)發(fā)到集群服務(wù)器上的硬件設(shè)備。 一些大型的站點(diǎn)一般都會(huì)使用這種昂貴的高性能負(fù)載平衡器。 ???多次接觸到這個(gè)詞了~~~~ 先放這下次解決!

2.       Cookies

3.       AJAX

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多