C#网络编程系列四:自定义Web浏览器

开发 后端
一个专题介绍了自定义的Web服务器,然而向Web服务器发出请求的正是本专题要介绍的Web浏览器,本专题通过简单自定义一个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

【编辑推荐】

  1. C#网络编程系列一:网络协议简介
  2. C#网络编程系列二:HTTP协议详解
  3. C#网络编程系列三:自定义Web服务器
  4. C#网络编程系列五:TCP编程
  5. C#网络编程系列六:UDP编程
  6. C#网络编程系列七:UDP编程补充
  7. C#网络编程系列八:P2P编程
  8. C#网络编程系列九:类似QQ的即时通信程序
  9. C#网络编程系列十:实现简单的邮件收发器

 

责任编辑:张伟 来源: Learning hard的博客
相关推荐

2012-09-24 14:31:55

C#网络协议C

2009-08-04 08:58:01

C#自定义特性

2020-12-13 08:43:37

微软Edge浏览器

2009-04-16 08:29:03

IE8自定义功能浏览器

2022-03-01 09:41:01

Safari苹果浏览器浏览器

2009-09-03 15:46:57

C#自定义事件

2009-08-03 13:34:06

自定义C#控件

2009-08-28 17:45:19

C#自定义数据

2009-08-03 13:39:46

C#自定义用户控件

2009-08-31 14:54:35

C#对象浏览器

2012-07-23 13:41:15

傲游浏览器傲游浏览器

2012-09-24 15:13:50

C#网络协议TCP

2012-09-24 15:35:24

C#网络协议UDP

2009-08-20 10:54:29

C#做浏览器源程序

2023-05-24 10:18:47

谷歌Chrome浏览器

2009-08-04 12:56:51

C#自定义事件

2009-08-05 17:03:37

C#自定义控件

2021-06-17 06:52:37

C#自定义异常

2009-08-04 09:56:46

C#事件处理自定义事件

2009-08-04 12:40:34

c#自定义事件
点赞
收藏

51CTO技术栈公众号