前端開發人員應該對 Web 開發中的基本概念有一些了解,請簡述
- 什么是 Web 服務器
- Web 服務器能做什么
首先我們來了解什么是服務器(server)
一般來說,server 有兩重意思
- 有時候 server 表示硬件,也就是一台機器。它還有另一個名字:「主機」。
- 更多時候,server 表示軟件程序,這種程序主要用來對外提供某些服務,比如郵件服務、FTP 服務、數據庫服務、網頁服務等。
作為開發者,我們說 server 的時候,一般指的后者,也就是一個 24 小時運行的軟件程序。
一台主機上面可以運行多個這樣的程序。
什么是 Web Server?
顧名思義,Web Server 就是提供 Web 服務的 Server。web server的主要功能是:存儲,處理和傳遞網頁給客戶,
它只需支持HTTP協議、HTML文檔格式及URL,與客戶端的網絡瀏覽器配合。因為Web服務器主要支持的協議就是HTTP,所以通常情況下HTTP服務器和WEB服務器是相等的(有沒有支持除HTTP之外的協議的web服務器,沒有考證過)
比如我們訪問 http:// 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); });
你不用看懂這段程序,你只需要知道兩件事情:
- 這段程序監聽了當前機器的 8080 端口。
- 一旦外部訪問當前機器的 8080 端口,這段程序就會返回一段文字。
這就是一個最簡單的 HTTP server。
提供HTTP服務的web server分類
提供 HTTP 服務的 web server 分為兩類。
1. 靜態文件服務器
這種服務器簡單地根據訪問路徑,返回對應的文件。
比如用戶訪問 http:// 123.123.123.123:8080/a/b/c/d.html,那么這種服務器就會在網站根目錄找到 a/b/c/d.html 文件,原樣返回給用戶。
2. 動態內容服務器
這種服務器返回的內容一般不是文件,而是動態生成的字符串(比如從數據庫中獲取的字符串)。
比如用戶訪問 http:// http://weibo.com/home,那么這種 http://weibo.com 的服務器則會返回當前用戶最新的消息。顯然每個用戶得到的內容是不一樣的。
(The end)