1.1 Web server
1.1.1 Web server là gì?
Như đã biết, ứng dụng web hoạt động theo mô hình
client-server. Trong mô hình này, web server đóng vai trò là “server”, có nhiệm
vụ tiếp nhận, xử lý và trả lời các yêu cầu (request) từ client, quá trình trao
đổi giữa client và server được thực hiện bằng giao thức HTTP.
Vậy, web server là phần mềm, hoặc phần cứng đóng vai trò là
máy phục vụ (server) trong mô hình client-server, có nhiệm vụ tiếp nhận, xử lý
và trả lời các yêu cầu (request) từ client, thông qua giao thức HTTP và một số
giao thức liên quan khác.
Chức năng quan trọng nhất của web server là lưu trữ, xử lý
và phân phối nội dung web đến trình duyệt của người dùng. Nội dung web bao gồm
mã HTML, CSS, JavaScript, hình ảnh, âm thanh, video.
Web server không chỉ phục vụ trong hệ thống web, mà nó còn
được nhúng, hay tích hợp trong các thiết bị khác, ví dụ như trong máy in, bộ định
tuyến (router), bộ phát sóng không dây (WR), webcam. Trong trường hợp này, web
server đóng vai trò là một phần của hệ thống, dùng để cấu hình, theo dõi và quản
lý thiết bị.
Với công nghệ SOAP và REST (web services), web server còn
đóng vai trò là thành phần cung cấp dịch vụ web cho các máy tính khác, thông
qua giao tiếp máy-máy.
Quan sát hình sau để thấy được vai trò của thành phần web
server trong một hệ thống web.
Để có một web server, bạn chỉ cần cài đặt phần mềm web
server lên một máy tính bất kỳ. Tuy nhiên, để có một web server thực thụ thì cần
phải chuẩn bị một máy tính server có cấu hình đủ mạnh, trên đó có cài hệ điều
hành server, và cuối cùng là cài đặt một phần mềm web server lên hệ điều hành đó.
Danh sách một số phần mềm web server được sử dụng nhiều và
thị phần (tham khảo năm 2021, nguồn wikipedia).
Phần mềm web server |
Nhà cung cấp |
Thị phần |
Nginx |
Nginx |
34,54% |
Apache |
Apache |
26,32% |
IIS |
Microsoft |
6,5% |
OpenResty |
OpenResty |
6,36% |
Cloudflare server |
Cloudflare |
5% |
1.1.2 Cài đặt phần mềm web server
Để hiểu rõ hơn về web server, phần này sẽ thực hiện cài đặt
minh họa một trong các phần mềm web server, đó là Apache.
Apache có tên gọi đầy đủ là Apache HTTP Server, là một phần
mềm web server, hoạt động trên hầu hết các hệ điều hành (ví dụ: Windows, Unix,
Linux, Novell Netware).
Một số đặc điểm của Apache:
– Là phần mềm miễn phí, mã nguồn mở
– Ổn định, có độ tin cậy cao
– Dễ cấu hình
– Đa nền tảng
– Gặp vấn đề về hiệu năng nếu ứng dụng web có lượng truy cập
cực lớn
– Là lựa chọn phù hợp cho các đơn vị kinh doanh vừa và nhỏ
Cài đặt
[Xem thêm hướng dẫn
cài đặt: https://www.youtube.com/watch?v=oJnCEqeAsUk]
– Vào trang web của Apache https://httpd.apache.org/, chọn mục
Download, bấm vào mục “Apache httpd for
Microsoft Windows is available from a number of third party vendors.” để chọn bản
cho Windows.
– Chọn bản Apache Lounge, chọn bản 64 bit hoặc 32 bit tùy
theo máy tính của bạn
(Ví dụ: httpd-2.4.48-win64-VS16.zip, kích thước khoảng 10MB)
– Giải nén tập tin vừa tải xuống, chép thư mục Apache24 vào ổ
đĩa C:\
– Mở chương trình dòng lệnh (CMD)
– Trong CMD, chuyển tới thư mục C:\Apache24\bin
– Gõ lệnh httpd -k
install để cài đặt Apache dưới dạng một dịch vụ
C:\Apache24\bin>httpd
-k install
Installing the
'Apache2.4' service
The 'Apache2.4'
service is successfully installed.
Testing httpd.conf....
Errors reported here
must be corrected before the service can be started.
AH00558: httpd: Could
not reliably determine the server's fully qualified domain name, using
fe80::5d5d:1c20:557f:e928. Set the 'ServerName' directive globally to suppress
this message
– Sau khi cài đặt Apache thành công, mở cửa sổ services của
Windows để kiểm tra xem có chưa, và khởi chạy Apache (Chuột phải vào dịch vụ
Apache2.4, chọn Start). Trong cửa sổ Services, để ý cột Status, nếu một dịch vụ
đang chạy thì giá trị tại cột này sẽ là running.
– Mở cửa sổ trình duyệt, gõ vào đường dẫn http://127.0.0.1, Enter, nếu trên trình duyệt xuất hiện dòng chữ “It works!” là bạn đã cài đặt được Apache.
Gỡ bỏ Apache
– Mở chương trình dòng lệnh (CMD)
– Trong CMD, chuyển tới thư mục C:\Apache24\bin
– Gõ lệnh httpd -k uninstall
để gở bỏ Apache
Các lỗi thường gặp khi cài đặt và chạy Apache
Khi cài đặt và chạy Apache thường gặp 2 lỗi phổ biến:
– Một là cài đặt phiên bản không phù hợp với hệ điều hành,
ví dụ bạn đang sử dụng hệ điều hành Windows phiên bản 32bit nhưng lại tải và
cài đặt phiên bản 64bit. Cách khắc phục là tải lại phiên bản Apache phù hợp với
hệ điều hành.
– Hai là tình huống tranh chấp cổng. Tình huống này xảy ra
khi bạn đã cài đặt Apache thành công, tuy nhiên, khi khởi chạy (start) dịch vụ Apache
thì không thể chạy được. Lý do là khi chạy Apache cần sử dụng tới cổng 80 (cho HTTP)
và 443 (cho HTTPS); nếu hai cổng này đã bị một chương trình hay dịch vụ nào đó trên
máy tính chiếm mất thì nó sẽ không thể khởi chạy được. Giải pháp là cấu hình Apache
sử dụng cổng khác với 80 và 443; hoặc tắt các chương trình/service đang sử dụng
cổng 80 và 443. Bạn có thể vào Task Manager > Services để kiểm tra và tắt
các dịch vụ sau:
+ World Wide Web
Publishing Service (WWW-Publishing Service)
+ Web Deployment
Agent Service
+ Skype
+ SQL Server
Reporting Service(MSSQLSERVER)
+ VMware Workstation
+ IIS
– Ngoài hai lỗi
trên, chúng ta cũng có thể gặp các lỗi khác khi chạy Apache. Để biết chi tiết lỗi,
chúng ta có thể xem trong phần ghi nhật ký của Windows (Windows Logs) bằng tiện
ích Event Viewer.
1.1.3 Xem và đọc thêm
– [1] Web server (read): https://en.wikipedia.org/wiki/Web_server
– [2] Web server (read): https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_web_server
– [3] Install Apache: https://www.youtube.com/watch?v=oJnCEqeAsUk
1.1.4 Bài tập và thực hành
Bài tập 1. Cài đặt web server Apache trên Windows (tùy chọn
làm thêm trên: Ubuntu, Docker)
https://www.youtube.com/watch?v=oJnCEqeAsUk
Sau khi cài đặt thành công Apache, trả lời các câu hỏi và
làm thêm các yêu cầu sau:
– Trong Apache, thư mục web root (hay document root) có
tên là gì?
– Mặc định, các trang web, hay các tập tin của một website
được để ở đâu?
– Web server này có thể thực thi mã PHP chưa?
– Thư mục logs để làm gì?
– Tùy chỉnh tập tin index.html (thêm mã HTML, CSS,
JavaScript) và xem kết quả trên trình duyệt
– Sử dụng tab Elements của Developer Tools để quan sát cây
DOM, mã HTML, CSS và JavaScript
– Sử dụng tab Network của Developer Tools để quan sát HTTP
request, HTTP response nhằm hiểu thêm quá trình giao tiếp giữa web client và
web server
Bài tập 2. Cài đặt web server Nodejs
Đọc và làm theo hướng dẫn trong web site này (mục đích để làm
quen với Nodejs, học cách làm việc chuyên nghiệp, tăng khả năng đọc hiểu tiếng Anh).
Bài tập 3. Cài đặt NGINX
Bài tập 4. Cài đặt XAMPP (làm thêm, không bắt buộc)
[Gợi ý cho các bài tập]
Bài tập 1.
Thêm CSS, JavaScript vào tập tin index.html
<html>
<head> <style>
h1 { color: red; } </style> </head>
<body>
<h1>It works! hi cu
teo</h1>
<script> alert('hi
cu Ti'); </script>
</body></html>
Web root (hay document root) của Apache là htdocs, mặc định
các website sẽ được lưu trữ ở đây.
Để kiểm tra xem web server này đã thực thi được mã PHP chưa:
trong htdocs, tạo tập tin index1.php với mã nguồn như sau:
<?php
echo "hi PHP";
?>
Mở trình duyệt, nhập vào đường dẫn http://127.0.0.1/index1.php
– Nếu trên trình duyệt xuất chữ “hi PHP” là web server đã thực
thi được mã PHP
– Ngược lại, nếu trình duyệt xuất toàn bộ mã nguồn “<?php
echo "hi PHP"; ?>” có nghĩa là web server chưa thể thực thi (thông
dịch) được mã PHP.
Bài tập 2. Cài đặt web server Nodejs
Cài đặt phần mềm Nodejs
– Vào trang https://nodejs.org/en/,
tải Nodejs về máy
– Bấm đúp chuột
vào tập tin vừa tải về để cài đặt (ví dụ tập tin: node-v14.17.6-x64.msi), để đơn
giản, trong các bước cài đặt sẽ để chế độ lựa chọn mặc định, chỉ bấm Next, OK
và Finish.
– Quá trình cài đặt
Nodejs sẽ thiết lập luôn biến môi trường PATH, do vậy có thể sử dụng chương
trình dòng lệnh (cmd) để nhập lệnh cho Nodejs thực thi ở mọi vị trí.
– Để kiểm tra cài
đặt Nodejs được hay chưa, trong cửa sổ dòng lệnh nhập lệnh node –v để xem phiên
bản của Nodejs. Hoặc vào thư mục C:\Program Files\ sẽ thấy thư mục nodejs.
C:\Users\Maxsys>node -v
v14.17.6
Cài đặt web server Nodejs
Sử dụng lệnh npm install -g http-server để cài đặt một
web server Nodejs trên máy cục bộ. (lưu ý trong quá trình cài đặt, máy tính phải
có kết nối internet).
Ví dụ:
C:\Users\Maxsys>npm
install -g http-server
C:\Users\Maxsys\AppData\Roaming\npm\http-server
->
C:\Users\Maxsys\AppData\Roaming\npm\node_modules\http-server\bin\http-server
+ http-server@13.0.1
added 29 packages from
39 contributors in 15.519s
Tạo một website đơn
giản
– Vào ổ đĩa bất kỳ (D:\), tạo một thư mục (mywebsite), tạo tập
tin index.html với nội dung sau:
<html><body><h1>Xin
chao Nodejs</h1></body></html>
Khởi chạy web server Nodejs
Trong cửa sổ dòng lệnh (CMD), vào thư mục có chứa website (D:\mywebsite),
gõ lệnh http-server để khởi chạy web
server Nodejs.
(có thể Windows sẽ bật thông báo cho phép chạy JavaScript,
chọn Allow)
Ví dụ:
D:\mywebsite>http-server
Starting up
http-server, serving ./
http-server settings:
CORS: disabled
Cache: 3600 seconds
Connection Timeout:
120 seconds
Directory Listings:
visible
AutoIndex: visible
Serve GZIP Files:
false
Serve Brotli Files:
false
Default File
Extension: none
Available on:
http://172.31.128.1:8080
http://192.168.56.1:8080
http://192.168.32.1:8080
http://192.168.136.1:8080
http://192.168.8.113:8080
http://127.0.0.1:8080
Hit CTRL-C to stop the
server
Vậy là web server
Nodejs đang chạy.
Truy cập web server Nodejs
từ trình duyệt
Mở trình duyệt, nhập vào địa chỉ sau:
hoặc http://192.168.8.113:8080/
Nếu xuất hiện dòng chữ Xin chao
Nodejs là được.
Tắt web server Nodejs
Mở cửa sổ dòng lệnh mà web server Nodejs đang chạy, bấm tổ hợp
phím Ctrl+C.
Bài tập 3. Cài đặt NGINX
– Vào trang Google, gõ từ khóa tìm kiến nginx for windows
– Vào đường dẫn “http://nginx.org › docs › windows”
(Hoặc vào trực tiếp trang https://nginx.org,
chọn mục download)
– Chọn và tải về máy tính, phiên bản nginx/Windows-1.21.3
– Giải nén và chép thư mục nginx-1.21.3 về ổ đĩa C:\, đổi tên thư mục thành nginx cho gọn
– Vào thư mục nginx,
bấm đúp chuột vào tập tin nginx.exe để
khởi chạy web server
– Mở cửa sổ Task manager, kiểm tra để đảm bảo tiến trình (process)
nginx đã chạy
Lưu ý: chưa hiểu tại sao, khi chạy nginx bằng cách bấm đúp
chuột tại cửa sổ File Explorer thì nginx xuất hiện 2 tiến trình trong tab Processes
và 2 tiến trình trong tab Details của Task manager; khi chạy nginx bằng cách gõ
lệnh start nginx tại cửa sổ dòng lệnh
thì xuất hiện 2 tiến trình nginx trong tab Details của Task manager. Để ý điều
này để khi muốn kết thúc nginx thì phải kiểm tra ở trong cả 2 tab là Processes
và Details.
– Mở trình duyệt, gõ vào đường dẫn http://localhost/, nếu xuất hiện trang Welcome to Nginx là được
1.1.5 Câu hỏi ôn tập
Câu 1. Câu nào phát biểu đúng nhất về client-side và
server-side?
A. Client-side gồm các hoạt động tại trình duyệt,
server-side gồm các hoạt động tại web server
B. Client-side gồm các hoạt động tại web server, server-side
gồm các hoạt động tại trình duyệt
C. Client-side nhận yêu cầu từ web server, server-side gửi
yêu cầu tới trình duyệt
D. Client-side gắn với máy chủ, server-side gắn với trình
duyệt
Câu 2. Câu nào phát biểu đúng nhất về front-end và back-end?
A. Front-end gồm các xử lý tại máy server, back-end gồm giao
diện và các xử lý tại giao diện của ứng dụng
B. Để làm phần front-end cần sử dụng một trong các ngôn ngữ
C#, PHP, JavaScript, Ruby, Python
C. Front-end gồm giao diện và các xử lý tại giao diện của ứng
dụng, back-end gồm các xử lý tại máy server
D. Để làm phần back-end có thể sử dụng các ngôn ngữ HTML,
CSS, JavaScript
Câu 3. A web server is computer software and underlying
hardware that accepts requests via______, the network protocol created to
distribute web pages, or its secure variant HTTPS.
A. DNS
B. JavaScript
C. HTML
D. HTTP
Câu 4. Web root is the topmost _______in which the files
making up a web site are located on a web server.
A. file
B. directory
C. server
D. protocol
Câu 5. Địa chỉ IP mặc định của web server, khi cài trên máy
cục bộ là?
A. 127.0.0.0
B. 127.0.0.1
C. 8.8.8.8
D. 192.168.0.1
Câu 6. Tên miền mặc định của web server, khi cài trên máy cục
bộ là?
A. webserver
B. root
C. webroot
D. localhost
-----
-----
Cập nhật: 14/8/2023
-----
Bạn muốn tự học HTML bài bản? Xem thêm