webserver – 开发Web服务器的技巧
在这里做了一些搜索后,我发现没有关于开发Web服务器的问题.
我主要是因为两个原因而这样做.作为一个侧面项目,并了解有关开发服务器程序的更多信息.这不会变成一个可用的应用程序,更像是一个学习工具 所以问题很简单. >您开发了Web服务器吗? (不管用什么语言) 欢迎链接到有用的网站,但不要链接到开源的工作项目,因为这是关于学习的过程. 解决方法
Web服务器最初只是一段非常简单的代码:
>在端口80上打开TCP / IP套接字 >等待该套接字上的连接 >找到文件的路径 所以代码的轮廓很简单. 现在,您需要处理一些复杂问题: >在最简单的代码版本中,当您与一个浏览器通话时,其他所有浏览器都无法连接.您需要提出一些处理多个连接的方法. 处理多个连接的可能性也相对容易,有许多可能的选择. >最简单的版本(再次,这是它最初的方式)是让侦听端口80的代码为该连接设置一个特定的套接字,然后分叉自己的副本来处理那个连接.该过程一直运行直到套接字关闭,然后终止.然而,这是相对昂贵的:一般来说,fork需要几十毫秒,因此限制了你运行的速度. 运行程序实际上也很容易.通常,您定义CGI目录的特殊路径;具有通过该目录的路径的URL然后将路径名称解释为程序的路径.然后,服务器将使用fork / exec创建子进程,并将STDOUT连接到套接字.然后程序运行,将输出发送到STDOUT,然后将其发送到客户端浏览器. 这是基本模式; Web服务器所做的一切只是为这个基本模式添加了多余的功能和附加功能. 以下是一些代码示例的其他来源: > http://www.codeproject.com/KB/IP/Generic_TCP_IP_server.aspx 它几乎没有你真正想要的东西,但简单来说,很难从http://www.commandlinefu.com击败this one:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |