Ngu ngơ học làm web (45) - Cơ bản về Web Server

Tiếp theo của: Ngu ngơ học làm web (44) - Học Bootstrap bằng tiếng Anh
------

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]
-----------