Web服務(wù)器是處理由HTTP客戶端發(fā)送的,如web瀏覽器的HTTP請(qǐng)求的軟件應(yīng)用程序,并返回響應(yīng)于客戶端網(wǎng)頁. Web服務(wù)器通常伴隨著圖片,樣式表和腳本的HTML文檔。
大多數(shù)Web服務(wù)器支持服務(wù)器端腳本使用腳本語言或重定向到其執(zhí)行從數(shù)據(jù)庫中獲取數(shù)據(jù)的特定任務(wù)的應(yīng)用程序服務(wù)器,執(zhí)行復(fù)雜的邏輯等。然后通過Web服務(wù)器發(fā)送結(jié)果到HTTP客戶端。
Apache web服務(wù)器是最常用的網(wǎng)絡(luò)服務(wù)器中的一個(gè)。它是一個(gè)開源項(xiàng)目。
Web應(yīng)用程序通常分為四個(gè)層次:
Client - 此層由Web瀏覽器,移動(dòng)瀏覽器或應(yīng)用程序,可以使HTTP請(qǐng)求到萬維網(wǎng)服務(wù)器。
Server - 這一層包括可攔截的要求由客戶通過Web服務(wù)器響應(yīng)。
Business - 此層利用Web服務(wù)器執(zhí)行所需的處理的應(yīng)用程序服務(wù)器。這層交互以經(jīng)由數(shù)據(jù)的基礎(chǔ)上或一些外部程序數(shù)據(jù)層。
Data - 此層由數(shù)據(jù)庫或任何的數(shù)據(jù)來源。
Node.js提供了可以用于創(chuàng)建任何HTTP服務(wù)器的客戶端的HTTP模塊。以下是HTTP服務(wù)器的最低限度的結(jié)構(gòu),它會(huì)在8081端口偵聽。
創(chuàng)建一個(gè)js文件名為server.js:
File: server.js
var http = require('http'); var fs = require('fs'); var url = require('url'); // Create a server http.createServer( function (request, response) { // Parse the request containing file name var pathname = url.parse(request.url).pathname; // Print the name of the file for which request is made. console.log("Request for " + pathname + " received."); // Read the requested file content from file system fs.readFile(pathname.substr(1), function (err, data) { if (err) { console.log(err); // HTTP Status: 404 : NOT FOUND // Content Type: text/plain response.writeHead(404, {'Content-Type': 'text/html'}); }else{ //Page found // HTTP Status: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/html'}); // Write the content of the file to response body response.write(data.toString()); } // Send the response body response.end(); }); }).listen(8081); // Console will print the message console.log('Server running at http://127.0.0.1:8081/');
接下來,讓我們創(chuàng)建以下名為index.html的HTML文件在創(chuàng)建server.js的同一目錄下
File: index.html
<html> <head> <title>Sample Page</title> </head> <body> Hello World! </body> </html>
現(xiàn)在讓我們運(yùn)行server.js看到的結(jié)果:
$ node server.js
驗(yàn)證輸出
Server running at http://127.0.0.1:8081/
在任何瀏覽器中打開http://127.0.0.1:8081/index.html,看看下面的結(jié)果。
驗(yàn)證服務(wù)器端輸出。
Server running at http://127.0.0.1:8081/ Request for /index.html received.
Web客戶端可以使用HTTP模塊創(chuàng)建。讓我們來看看下面的例子。
創(chuàng)建一個(gè)js文件名為client.js:
File: client.js
var http = require('http'); // Options to be used by request var options = { host: 'localhost', port: '8081', path: '/index.html' }; // Callback function is used to deal with response var callback = function(response){ // Continuously update stream with data var body = ''; response.on('data', function(data) { body += data; }); response.on('end', function() { // Data received completely. console.log(body); }); } // Make a request to the server var req = http.request(options, callback); req.end();
現(xiàn)在運(yùn)行不同的命令終端運(yùn)行client.js看到結(jié)果
$ node client.js上一篇:Node.js安裝和入門下一篇:Node.js教程