web服务器_如何开发一个web静态服务器

我们都知道如今的web服务器有很多,比如著名的有apache,有nginx,有tomcat,有resin服务器,有sphere,有iis服务器等等,这些服务器都能提供web服务,并且几乎都能和多种语言进行搭配使用,那么一个web服务器都需要那些功能,开发一个web服务器都需要那些知识呢。

94e3b1ad576f6ea782ee35ff251f0953.png

web服务器功能

web服务器是提供文档浏览的的程序。也就是说浏览器请求一个文档,它返回一个文档。这就是简单的一个web服务器的功能。

无论是php程序,.net程序,java程序,返回给浏览器的都是以文档的形式返回。也就是都是html代码返回。

e99883352091281ab94306fb1b1b9c15.png

目前一般的web服务器都需要对其他语言的请求进行操作,它只需要将对应语言的请求交给对应语言的处理器进行处理,然后将返回的处理结果返回给浏览器即可。

cb0599efd8475ca3cea2c17ce64488e2.png

也就是说,当用户请求的时候,我们只需要将文档文件,比如html文件,js文件,css文件,图片文件能够返回给用户,就基本实现了一个简单的web服务器。

如何实现

  • 作为一个服务器,它有一些基本的功能必须要要完成,比如启动,比如停止,比如监听端口等。
  • 我们可以将我们的web服务器封装成一个类,然后将各个功能封装成函数即可。
  • 我们使用socket来实现端口监听,我们通过socket可以读取到用户发送的请求。
  • 我们封装一个处理请求函数,用来处理接收的请求,需要能够读取到用户的请求url。
  • 封装一个判断请求类型的函数,根据用户的url,获取请求的文件,读取请求的文件,返回内容。
  • 封装返回函数,需要加上指定的header头等信息。

注意事项

通过上面的步骤,我们就简单实现了一个静态的web服务器,如果用户读取的是静态文件,我们可以直接返回给用户请求的文件信息,如果用户请求的是动态内容,也就是其它语言编写的文件,这个时候,我们只需要将请求转发给对应的处理器即可,比如php可以交给php-fpm进行处理即可。

f0af0de63c90b2898cb54c84fbdc9d8d.png

我们这只是一个简单的web服务器,如果深入的研究,我们就知道我们需要改进的地方。比如我们可能需要多个进程来处理请求,我们可能需要缓存一些请求信息,我们可能需要一些异常处理等。

总结

一切皆函数,我们的任何一个软件都是由无数个功能构成的,而每一个功能都是由很多个函数构成的。当我们要开发一个软件的时候,我们只需要理清逻辑,然后一个一个功能去通过函数实现即可。

socket是一个通信协议,用来在计算机之间通信使用的。通过socket我们就可以定位网络上的一个计算机提供的服务的进程,也就是可以和那个进程进行信息的交互,至于如何交互,就是socket处理的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值