什么是 Web 服务器(server)

前端开发人员应该对 Web 开发中的基本概念有一些了解,请简述
1. 什么是 Web 服务器
2. Web 服务器能做什么

首先我们来了解什么是服务器(server)

一般来说,server 有两重意思

  1. 有时候 server 表示硬件,也就是一台机器。它还有另一个名字:「主机」。
  2. 更多时候,server 表示软件程序,这种程序主要用来对外提供某些服务,比如邮件服务、FTP 服务、数据库服务、网页服务等。

作为开发者,我们说 server 的时候,一般指的后者,也就是一个 24 小时运行的软件程序。

一台主机上面可以运行多个这样的程序。

什么是 Web Server?

顾名思义,Web Server 就是提供 Web 服务的 Server。

比如我们访问 http://baidu.com,其实就是在使用百度的 Server 提供的服务。

一般来说, Web Server 对外提供的是 HTTP 服务(也可以是其他服务),这就是为什么我们的网址都以「http://」开头。

如何提供 HTTP 服务?

下面是有 Node.js 写的一个最简单的 HTTP server

// 文件名 index.js
// 使用 node index.js 可运行本程序

var http = require('http')

var server = http.createServer( function (request, response){
    response.end('这是页面内容,你请求的路径是:' + request.url)
})

server.listen(8080, function(){
    console.log("正在监听 %s 端口", 8080);
});

你不用看懂这段程序,你只需要知道两件事情:

  1. 这段程序监听了当前机器的 8080 端口。
  2. 一旦外部访问当前机器的 8080 端口,这段程序就会返回一段文字。

这就是一个最简单的 HTTP server。

分类

提供 HTTP 服务的 server 分为两类。

  • 静态文件服务器

这种服务器简单地根据访问路径,返回对应的文件。
比如用户访问 http://123.123.123.123:8080/a/b/c/d.html,那么这种服务器就会在网站根目录找到 a/b/c/d.html 文件,原样返回给用户。

  • 动态内容服务器

这种服务器返回的内容一般不是文件,而是动态生成的字符串(比如从数据库中获取的字符串)。
比如用户访问 http://weibo.com/home,那么这种 weibo.com 的服务器则会返回当前用户最新的微博消息。显然每个用户得到的内容是不一样的。

以上,就是 Web 服务器的简单描述。

作者:方应杭,想学前端?进群

发表评论

电子邮件地址不会被公开。