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