Một máy chủ web là gì?
Mục lục
Máy chủ Web là một ứng dụng phần mềm xử lý các yêu cầu HTTP do máy khách HTTP gửi, như trình duyệt web và trả về các trang web theo phản hồi của máy khách. Máy chủ web thường cung cấp các tài liệu html cùng với hình ảnh, biểu định kiểu và tập lệnh.
Hầu hết các máy chủ web đều hỗ trợ các tập lệnh phía máy chủ, sử dụng các ngôn ngữ kịch bản hoặc chuyển hướng tác vụ đến một máy chủ ứng dụng lấy dữ liệu từ cơ sở dữ liệu và thực hiện logic phức tạp, sau đó gửi kết quả đến máy khách HTTP thông qua máy chủ Web.
Máy chủ web Apache là một trong những máy chủ web được sử dụng phổ biến nhất. Nó là một dự án mã nguồn mở.
Kiến trúc ứng dụng web
Một ứng dụng Web thường được chia thành bốn lớp:
Khách hàng – Lớp này bao gồm các trình duyệt web, trình duyệt di động hoặc các ứng dụng có thể thực hiện các yêu cầu HTTP đến máy chủ web.
Người phục vụ – Lớp này có máy chủ Web có thể chặn các yêu cầu được thực hiện bởi các máy khách và chuyển cho chúng phản hồi.
Việc kinh doanh – Lớp này chứa máy chủ ứng dụng được máy chủ web sử dụng để thực hiện các xử lý cần thiết. Lớp này tương tác với lớp dữ liệu thông qua cơ sở dữ liệu hoặc một số chương trình bên ngoài.
Dữ liệu – Lớp này chứa cơ sở dữ liệu hoặc bất kỳ nguồn dữ liệu nào khác.
Tạo máy chủ web bằng Node
Node.js cung cấp một http mô-đun này có thể được sử dụng để tạo một ứng dụng khách HTTP của một máy chủ. Sau đây là cấu trúc tối thiểu của máy chủ HTTP lắng nghe ở cổng 8081.
Tạo tệp js có tên server.js –
Tệp: 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
Tiếp theo, hãy tạo tệp html sau có tên là index.htm trong cùng thư mục mà bạn đã tạo server.js.
Tệp: index.htm
<html> <head> <title>Sample Page</title> </head> <body> Hello World! </body> </html>
Bây giờ chúng ta hãy chạy server.js để xem kết quả –
$ node server.js
Xác minh đầu ra.
Server running at
Yêu cầu máy chủ Node.js
Mở index.htm trong bất kỳ trình duyệt nào để xem kết quả sau.
Xác minh đầu ra ở cuối máy chủ.
Server running at Request for /index.htm received.
Tạo ứng dụng khách Web bằng Node
Một ứng dụng khách có thể được tạo bằng cách sử dụng http mô-đun. Hãy kiểm tra ví dụ sau.
Tạo tệp js có tên client.js –
Tệp: client.js
var http = require('http'); // Options to be used by request var options = { host: 'localhost', port: '8081', path: '/index.htm' }; // 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();
Bây giờ hãy chạy client.js từ một đầu cuối lệnh khác với server.js để xem kết quả:
$ node client.js
Xác minh đầu ra.
<html> <head> <title>Sample Page</title> </head> <body> Hello World! </body> </html>
Xác minh đầu ra ở cuối máy chủ.
Server running at Request for /index.htm received.