我是一名.NET开发人员,我在C#工作了将近3.5年.我想了解网络服务器的工作原理,我不是指65,000英尺的概述.我想了解Web服务器的内部工作原理.
有哪些好资源可以学习Web服务器的工作原理?
如果您真的想要了解Web服务器应该如何工作的细节,请阅读HTTP规范.
一个好工具将是小提琴手.使用此工具浏览器关于网络并检查浏览器和服务器之间的对话.结合对HTTP规范的阅读,这将使您对网络上的实际情况有一个很好的了解.
如果您想要更进一步,您需要决定您更灵活地想要了解哪个Web服务器.例如,如果您想了解IIS6/7,那么David Wang的博客是搜索引擎盖细节的好地方.
Web服务器实现起来非常简单,有几个关于如何构建一个的教程.
这是C#的这样一个教程:http://www.codeguru.com/csharp/.net/net_general/article.php/c4603,这个教程很好,因为它实现了服务器到原始套接字和HTTP头传递,所以你学到了很多关于HTTP Spec的知识.不幸的是,一些教程和库抽象了这一点.
实现自己允许您触及许多主题:
套接字编程
HTTP协议(GET/POST)
多线程
一旦您构建了基本的Web服务器,您就可以将服务器和协议扩展到您自己的Web框架中.应该做一个非常酷的宠物项目.
我已经为Java,C++和Python做了这个.