C#網(wǎng)絡(luò)編程系列四:自定義Web瀏覽器
前言:前一個(gè)專題介紹了自定義的Web服務(wù)器,然而向Web服務(wù)器發(fā)出請(qǐng)求的正是本專題要介紹的Web瀏覽器,本專題通過(guò)簡(jiǎn)單自定義一個(gè)Web瀏覽器來(lái)簡(jiǎn)單介紹瀏覽器的工作原理,以及幫助一些初學(xué)者揭開(kāi)瀏覽器這層神秘的面紗(以前總感覺(jué)這些應(yīng)用感覺(jué)很深?yuàn)W的,沒(méi)想到自己也可以自定義一個(gè)瀏覽器出來(lái)),下面不啰嗦了,進(jìn)入正題。
一、Web瀏覽器的介紹
Web瀏覽器是指可以顯示W(wǎng)eb服務(wù)器或者本地文件系統(tǒng)中的Html文件內(nèi)容,并讓用戶與這些文件交互的一種軟件,它是網(wǎng)絡(luò)服務(wù)的客戶端瀏覽程序,可向Web服務(wù)器發(fā)送請(qǐng)求,并對(duì)服務(wù)器返回的超文本信息和各種媒體、圖片進(jìn)行解釋和顯示。
瀏覽器主要通過(guò)Http協(xié)議與服務(wù)器交互并獲得網(wǎng)頁(yè),現(xiàn)在主流的瀏覽器有:IE,Google Chrome(谷歌瀏覽器)、Mozilla Firefox(火狐)、Opera瀏覽器、世界之窗、360安全瀏覽器等。
Web瀏覽器的組成
一般來(lái)說(shuō),Web瀏覽器由控制器和解釋器組成,控制器負(fù)責(zé)解釋鼠標(biāo)點(diǎn)擊與鍵盤(pán)輸入,并調(diào)用其他組件用于執(zhí)行用戶的指定的操作。例如,當(dāng)用戶輸入一個(gè)URL或單擊一個(gè)超鏈接時(shí),控制器接收并分析該命令,調(diào)用一個(gè)HTML解釋器來(lái)解釋該頁(yè)面,并將解釋后的結(jié)果顯示在用戶的瀏覽器上。
解釋器對(duì)于瀏覽器來(lái)說(shuō)是很重要的, 解釋器,也就是解釋引擎,負(fù)責(zé)對(duì)網(wǎng)頁(yè)語(yǔ)法(如HTML、Javascript)的解釋并顯示網(wǎng)頁(yè),解釋器決定了瀏覽器如何顯示頁(yè)面,是瀏覽器最重要最核心的一個(gè)部分,所以一般我們所說(shuō)的瀏覽器內(nèi)核指的就是瀏覽器的解釋器。
不同瀏覽器產(chǎn)品可能使用同一個(gè)內(nèi)核,瀏覽器內(nèi)核常見(jiàn)的有四種:Trident、Gecko、Presto和Webkit, 他們與主流瀏覽器的對(duì)于關(guān)系如下表:
二、.NET平臺(tái)對(duì)瀏覽器開(kāi)發(fā)的支持
瀏覽器軟件一般都不是從頭開(kāi)始開(kāi)發(fā)的,而是基于某種內(nèi)核之上的擴(kuò)展。同樣,微軟.NET平臺(tái)封裝了IE瀏覽器內(nèi)核并以COM組件的形式提供用戶,這個(gè)COM組件就是WebBrowser控件,該控件實(shí)現(xiàn)了瀏覽器中幾乎全部的基本功能。
WebBrowser就是一個(gè)以IE(Trident)為內(nèi)核,實(shí)現(xiàn)了基本功能的Web瀏覽器。使用WebBrowser控件可以在Windows窗體應(yīng)用程序中瀏覽網(wǎng)頁(yè),WebBrowser控件位于工具箱中,使用時(shí)只需要將它直接拖拉到程序窗口中。
下面介紹WebBrowser控件的常用的屬性和方法
這里我直接摘自MSDN中的一個(gè)表來(lái)說(shuō)明的:
三、在.NET平臺(tái)下自定義Web瀏覽器
下面是自定義瀏覽器的一些效果圖:
瀏覽器的主頁(yè)面:
點(diǎn)擊查看->源文件->UTF-8后就可以查看Html的源碼界面:
關(guān)于窗口的設(shè)計(jì)頁(yè)面:
在搜索欄里面輸入下載后利用百度搜索引擎后顯示的頁(yè)面:
四、總結(jié)
本專題主要對(duì)Web瀏覽器的介紹,并且自定義了一個(gè)簡(jiǎn)單的Web瀏覽器,希望通過(guò)本專題,大家可以對(duì)瀏覽器的工作原理有所了解。如果大家有什么任何疑問(wèn)或者我有說(shuō)的不對(duì)的地方還請(qǐng)大家留言來(lái)告訴我。講到這里本專題也算結(jié)束,后面將介紹TCP編程和UDP編程,以及介紹完這兩個(gè)專題后將為大家介紹如何開(kāi)發(fā)一個(gè)即時(shí)通信聊天的工具(類似QQ的應(yīng)用程序)。
補(bǔ)充: 鑒于很多朋友推薦使用非IE內(nèi)核來(lái)實(shí)現(xiàn)一個(gè)瀏覽器的功能,這里分享下Webkit.net(WebKit .NET 是一個(gè) C# 的組件封裝了 WebKit 瀏覽器引擎,通過(guò)它可以在 .NET 應(yīng)用中簡(jiǎn)單的使用(Google Chrome的內(nèi)核)WebKit 瀏覽器引擎)的源碼地址,也給有興趣的朋友研究,當(dāng)然我也會(huì)研究下,之后會(huì)和大家分享下這個(gè)工具的使用。同時(shí)感謝大家的留言和建議。
Webkit.net源碼地址為:http://sourceforge.net/projects/webkitdotnet/
如果覺(jué)得有幫助的還請(qǐng)大家推薦下, 源代碼鏈接為:http://files.cnblogs.com/zhili/WebBrowser.zip
原文鏈接:http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html
【編輯推薦】
- C#網(wǎng)絡(luò)編程系列一:網(wǎng)絡(luò)協(xié)議簡(jiǎn)介
- C#網(wǎng)絡(luò)編程系列二:HTTP協(xié)議詳解
- C#網(wǎng)絡(luò)編程系列三:自定義Web服務(wù)器
- C#網(wǎng)絡(luò)編程系列五:TCP編程
- C#網(wǎng)絡(luò)編程系列六:UDP編程
- C#網(wǎng)絡(luò)編程系列七:UDP編程補(bǔ)充
- C#網(wǎng)絡(luò)編程系列八:P2P編程
- C#網(wǎng)絡(luò)編程系列九:類似QQ的即時(shí)通信程序
- C#網(wǎng)絡(luò)編程系列十:實(shí)現(xiàn)簡(jiǎn)單的郵件收發(fā)器