------
Phần 45.
Cơ bản về Web Server
Phần này bắt đầu tìm hiểu về lập trình phía server
(server-side hay backend).
Ở các phần trên, để lập trình, chỉ cần trình duyệt và một
phần mềm viết mã là đủ. Tuy nhiên, khi xem trang web kết quả, đường dẫn của
trang web luôn có dạng là file://, ví dụ:
Nhưng khi mở một trang web thực tế thì đường dẫn lại có dạng
http:// hoặc https://. Vậy file:// và http:// khác nhau như thế nào, phần sau sẽ
tìm hiểu sự khác biệt này và học thêm một số thứ liên quan đến Web Server.
Xem lại đoạn clip về quá trình lấy nội dung trang web về và
hiển thị nội dung lên trình duyệt: https://www.youtube.com/watch?v=DuSURHrZG6I
Theo clip trên, đầu tiên, người dùng phải chỉ cho trình
duyệt biết vị trí của tập tin HTML. Vị trí của tập tin HTML được chỉ định bằng
một địa chỉ dạng URL (Uniform Resource Locator). Địa chỉ này được nhập trên
thanh địa chỉ (address bar) của trình duyệt. URL cũng xuất hiện trong các thẻ
của HTML, như <a href=URL>, <img
src=URL>, <script src=URL>, <link href=URL>.
URL có dạng tổng quát như sau:
Scheme://domain:port/path?query_string#fragment_id
Ví dụ một số URL:
- https://en.wikipedia.org/wiki/Uniform_Resource_Locator
- http://daotao.edu.vn/e-learning/ViewCourses.php?cSval=3151&SjTemp=158
- http://daotao.edu.vn/e-learning/ViewCourses.php
Trong một URL,
- Scheme là giao thức được sử dụng để giao tiếp giữa Web Client
(trình duyệt) và máy Web Server. Ví dụ: http, https, ftp, file.
- Domain là tên miền của Web Server, nơi chứa (các) trang
web. Ví dụ: en.wikipedia.org, daotao.edu.vn.
- Port là cổng được sử dụng để giao tiếp giữa Web Client và
Web Server, nếu không chỉ định rõ, thì giá trị của Port sẽ được ngầm hiểu là
80.
- Path là đường dẫn (thư mục) của trang web hoặc nơi chứa
các tài nguyên của một Website tại Web Server. Ví dụ: wiki/Uniform_Resource_Locator,
e-learning/ViewCourses.php, C:/Users/Win%208.1/Downloads/openemr/trangweb.html.
- Ngoài ra, URL cũng có thể chứa chuỗi truy vấn (query
string) hoặc fragment_id (một vị trí cụ thể trong một trang web).
Đây là định nghĩa về Web Client và Web Server:
- Web Client là một chương trình có thể giao tiếp với Web Server,
gửi yêu cầu và nhận thông tin từ Web Server, sau đó xử lý các thông tin nhận
được để hiển thị hoặc phục vụ các mục đích khác. Trình duyệt chính là một Web Client.
- Web Server là một máy tính, cung cấp các dịch vụ WWW trên
Internet. Web Server gồm có: phần cứng, hệ điều hành, phần mềm Web Server, và
nội dung của website.
Theo wiki (https://en.wikipedia.org/wiki/Web_server), đôi khi khái niệm Web Server còn được sử dụng để
chỉ một phần mềm, mà nó hiện thực hóa giao thức HTTP (ví dụ, phần mềm Web Server).
Xem hình minh họa Web Client và Web Server dưới đây.
Diễn giải hình trên:
- Nhà phát triển web (Web Developer) thiết kế và lập trình ra
Website
- Sau khi tạo ra Website, Web Developer sẽ đăng kí một tên
miền có tên www.test.com, thuê một không gian
đĩa cứng trên Web Server để đặt Website của mình
- Dùng giao thức FTP để chuyển Website (từ máy cục bộ) lên
Web Server
- Cuối cùng, người dùng (client) có thể truy cập đến trang www.test.com bằng cách gõ vào trình duyệt đường
dẫn (URL) là http://www.test.com và bấm Enter
- Trình duyệt sẽ gửi một HTTP REQUEST tới Web Server để yêu
cầu nội dung trang web
- Web Server sẽ gửi nội dung trang web (HTML) về cho trình
duyệt bằng HTTP RESPONSE
Như vậy, chức năng của Web Server là: lưu trữ, xử lý và cung
cấp trang web tới người dùng. Giao thức được sử dụng để giao tiếp giữa Web Server
và Web Client là HTTP hoặc HTTPS.
Phần dưới đây sẽ tìm hiểu về các thành phần liên quan đến Web
Server, gồm: phần cứng, hệ điều hành, phần mềm Web Server, và nội dung của Website.
Phần cứng của Web Server
Web Server là một máy chủ, có tốc độ xử lý cao, có khả năng
lưu trữ nhiều dữ liệu, được bảo mật tốt, luôn luôn ở trạng thái hoạt động.
Theo trang web này http://help.sana-commerce.com/sana-commerce-83/installation/setup-web-and-database-server/hardware-requirements-for-web-and-database-servers
thì, yêu cầu về phần cứng của Web Server phụ thuộc vào nhiều yếu tố, ví dụ:
lượng người truy cập, kích thước của cơ sở dữ liệu, loại ứng dụng web.
Tuy nhiên, cấu hình phần cứng của Web Server có thể chỉ cần ở
mức sau: bộ xử lý 2 x 1,6 GHz, RAM 3.5 GB, đĩa cứng 80GB.
Hệ điều hành của Web Server
Vì Web Server có thể là một máy chủ, hoặc là một phần mềm,
nên có thể sử dụng rất nhiều hệ điều hành khác nhau, từ các hệ điều hành nhúng
trong các thiết bị (máy in, router), cho tới các hệ điều hành thuộc các họ hệ
điều hành khác nhau (ví dụ: Windows, Unix, Linux).
Phần mềm Web Server
Có nhiều phần mềm Web Server đang được sử dụng hiện nay, ví
dụ: Apache, Nginx, IIS, GWS. Bảng dưới đây là thị phần của các phần mềm này,
năm 2016 (nguồn: https://en.wikipedia.org/wiki/Web_server).
Product
|
Vendor
|
January
2016
|
Percent
|
February
2016
|
Percent
|
Change
|
Apache
|
Apache
|
304,271,061
|
33.56%
|
306,292,557
|
32.80%
|
0.76
|
IIS
|
Microsoft
|
262,471,886
|
28.95%
|
278,593,041
|
29.83%
|
0.88
|
Nginx
|
NGINX, Inc.
|
141,443,630
|
15.60%
|
137,459,391
|
16.61%
|
-0.88
|
GWS
|
Google
|
20,799,087
|
2.29%
|
20,640,058
|
2.21%
|
-0.08
|
Nội dung của Website
trên Web Server
Nội dung của Website bao gồm toàn bộ tài nguyên giúp cho Website
hoạt động. Ví dụ, mã nguồn trang web, hình ảnh, âm thanh, video, cơ sở dữ liệu.
Hình sau là một ví dụ về các thành phần của một Web Server
(nguồn: https://en.wikipedia.org/wiki/LAMP_(software_bundle))
-----------
Cập nhật [19/10/2017][28/10/2016]
-----------