C#实现一个最简单的HTTP服务器
2014-08-22 23:29
369 查看
简介
本文用C#实现了一个最简单的HTTP服务器类,你可以将它嵌入到自己的项目中,或者也可以阅读代码来学习关于HTTP协议的知识。
背景
高性能的WEB应用一般都架设在强大的WEB服务器上,例如IIS, Apache, 和Tomcat。然而,HTML是非常灵活的UI标记语言,也就是说任何应用和后端服务都可以提供HTML的生成支持。在这个小小的例子中,像IIS,、Apache这样的服务器消耗的资源太大了,我们需要自己实现一个简单的HTTP服务器,将它嵌入到我们的应用中用来处理WEB请求。我们仅需要一个类就可以实现了,很简单。
代码实现
首先我们来回顾一下如何使用类,然后我们再来分析实现的具体细节。这里我们创建了一个继承于HttpServer的类,并实现了handleGETRequest 和handlePOSTRequest 这两个抽象方法:这个WEB服务器由两个组件构成,一个是负责启动TcpListener来监听指定端口的HttpServer类,并且用AcceptTcpClient()方法循环处理TCP连接请求,这是处理TCP连接的第一步。然后请求到达“已指定“的端口,接着就会创建一对新的端口,用来初始化客户端到服务器端的TCP连接。这对端口便是TcpClient的session,这样就可以保持我们的主端口可以继续接收新的连接请求。从下面的代码中我们可以看到,每一次监听程序都会创建一个新的TcpClien,HttpServer类又会创建一个新的HttpProcessor,然后启动一个线程来操作。HttpServer类中还包含两个抽象方法,你必须实现这两个方法。
这个简易版HTTP服务器另一个简化的地方就是content-type的返回值,在HTTP协议中,服务器总是会将数据的MIME-Type发送给客户端,告诉客户端自己需要接收什么类型的数据。在writeSuccess()方法中,我们看到,服务器总是发送text/html类型,如果你需要加入其他的类型,你可以扩展这个方法。
相关文章推荐
- C#实现一个最简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个简单的HTTP服务器
- C#实现一个简单的HTTP服务器
- C#实现一个简单的HTTP服务器。
- C#实现一个简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- C#实现一个简单的HTTP服务器
- C#实现一个最简单的HTTP服务器
- 登录存储过程在C#中实现,非常简单的一个方法
- c#中泛型集合类的一个简单模拟实现
- C#实现一个简单的工作队列调度器