1. 程式人生 > >什麼是 Web 伺服器(server)

什麼是 Web 伺服器(server)

前端開發人員應該對 Web 開發中的基本概念有一些瞭解,請簡述
什麼是 Web 伺服器
Web 伺服器能做什麼
--------


首先我們來了解什麼是伺服器(server)
一般來說,server 有兩重意思


有時候 server 表示硬體,也就是一臺機器。它還有另一個名字:「主機」。
更多時候,server 表示軟體程式,這種程式主要用來對外提供某些服務,比如郵件服務、FTP 服務、資料庫服務、網頁服務等。
作為開發者,我們說 server 的時候,一般指的後者,也就是一個 24 小時執行的軟體程式。


一臺主機上面可以執行多個這樣的程式。


什麼是 Web Server?
顧名思義,Web Server 就是提供 Web 服務的 Server。


比如我們訪問 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 服務的 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 的伺服器則會返回當前使用者最新的微博訊息。顯然每個使用者得到的內容是不一樣的。


以上,就是 Web 伺服器的簡單描述。