Web Server之通过Node.js快速搭建服务
标签(空格分隔): nodejs web
Node.js自出现之日起,就注定了它的不平凡。基于javascript,可以让前端开发者不用学习任何一门后端语言即可开发后台server;基于异步事件回调和非阻塞IO,可以让开发者不用过分的担心很多同步的问题;高效而庞大的类库,可以让开发者将更多的经历放在项目开发,类库随查随用。
说了这么多,离本文的主题到底有什么关系?那我们从Web Server说起。
Web Server介绍
基本定义
Web Server,Web服务器,一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
通俗一点可以理解为这样:
* Web服务器存放一些资源(文件、数据等),可以通过因特网的形式进行访问,资源的展现形式是Web Server内部确定好的。
* Web服务器维持可达性,即通过IP(域名)和端口可以访问到Web服务器,并获取Web Server提供的资源。
常见的Web Server有nginx、lighttpd,apache,IIS、jetty、Tomcat等。
流程介绍
Web Server同客户端之间通过某些协议进行数据交互,常见的有HTTP、FTP等。
协议是客户端和服务器进行数据连接、交互的一种规范,只有按照这个规范才能解析相应的数据。
一般的,客户端与服务器交互示意图如下:
- 客户端发送一个Web请求,如在浏览器输入http://www.sogou.com
- 通过Internet传输,请求传递到Web服务器,Web服务器按照一定的协议(如http)对请求进行解析。
- Web服务器处理请求,寻找资源,如果成功找到资源,则将状态码及文档内容回传至客户端,如果未找到,则返回状态码及其他信息,告知客户端资源未找到,如常见的404页面。
- 客户端接收数据,进行相应的处理,如浏览器展现页面。
自定义Web Server
Nginx、Apache等服务器相对较为成熟,自有一套搭建流程。有时为了快速实现功能,将静态资源、动态脚本均通过一个自定义的Server运行起来,提供对外服务。自定义Server只需满足以下条件: