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