Face web server như thế nào

Tưởng tượng mỗi ngày chúng ta sử dụng internet và truy cập vào những website phim ảnh, giải trí, học tập hay mua sắm.. và tất cả những website trên bắt buộc phải có web server. Vậy Web Server là gì?

1. Web server là gì?

Web server dịch ra tiếng Việt có nghĩa là máy chủ. Web server là máy tính lớn được kết nối với tập hợp mạng máy tính mở rộng. đây chính là một dạng máy chủ trên internet mỗi máy chủ là một IP không giống nhau và có thể đọc các ngôn ngữ như tệp *.htm và *.html… tóm lại máy chủ là kho để chứa toàn bộ dữ liệu hoạt động trên internet mà nó được giao quyền quản lý.

Website server phải là một máy tính có dung lượng lớn, tốc độ rất cao để có thể lưu trữ vận hành tốt một kho dữ liệu trên mạng. Nó sẽ điều hành trơn tru cho một bộ máy máy tính hoạt động trên mạng, thông qua các cổng giao tiếp riêng biệt của mỗi máy chủ. Các Website server này phải đảm bảo hoạt động liên tục luôn luôn nghỉ để duy trì mang lại dữ liệu cho mạng lưới máy tính của mình.

Dễ hiểu hơn Website server chính là máy chủ, được thiết kế với các siêu tính năng dùng để chứa các dữ liệu cho một phần mạng lưới máy tính trên mạng. Toàn bộ những hoạt động dịch vụ trên internet nào đều phải có máy chủ này mới hoạt động được.

2. Đôi nét về Web server

  • Web server có thể xử lý dữ liệu và cung cấp thông tin đến máy khách thông qua các máy tính cá nhân trên môi trường Internet qua giao thức HTTP, giao thức được thiết kế để gửi các file đến trình duyệt web, và các giao thức khác. (Ví dụ: khi các bạn truy xuất vào trang Web vinahost.vn máy chủ sẽ cung cấp đến các bạn tất cả dữ liệu về trang Web đấy thông qua lệnh giao tiếp)
  • Máy tính nào cũng có thể là một máy chủ nếu như cài đặt lên nó một chương trình phần mềm Server Software và sau đấy kết nối vào Internet.
  • Phần mềm Website Server Software cũng giống như các phần mềm khác, nó dùng để thiết lập và chạy trên bất kì máy tính nào thuyết phục đủ yêu cầu về bộ nhớ. Nhờ có chương trình này mà người sử dụng có thể truy xuất đến các nội dung của trang Website từ một máy tính khác ở trên internet
  • Khi là SEO chúng ta thường gặp các máy chủ nhỏ, máy chủ ảo và bình thường chúng ta hay thuê máy chủ dạng VPS hay Hosting để lưu giữ liệu trang Web của mình.

Ngắn gọn hơn..

“Web server” có thể là phần cứng hoặc phần mềm, hoặc cả hai.

  1. khía cạnh phần cứng, một Website server là một máy tính lưu trữ các tệp thành phần của một Website (ví dụ: các tài liệu HTML, các file ảnh, CSS và các tệp JavaScript) và có thể phân phát chúng tới thiết bị của người dùng cuối (end-user). Nó kết nối tới mạng Internet và có thể truy xuất tới thông qua một tên miền kiểu như mozilla.org.
  2. khía cạnh phần mềm, một Web server gồm có một số phần để điều khiển cách người dùng Website truy xuất tới các tệp được lưu trữ trên một HTTP server(máy chủ HTTP). Một HTTP server là một phần mềm hiểu được các URL (các địa chỉ web) và HTTP (giao thức trình duyệt web của bạn sử dụng để xem các trang web).

Ở mức căn bản nhất, bất cứ khi nào một trình duyệt web cần một tệp được lưu trữ trên một Website server, trình duyệt request (yêu cầu) tệp đó thông qua HTTP. Khi một request tới đúng Web server (phần cứng), HTTP server (phần mềm) gửi tài liệu được yêu cầu trở lại, cũng thông qua HTTP.

Để xuất bản một Website, bạn phải cần một static hoặc dynamic Website server.

Một static Website server, hoặc stack, bao gồm một máy tính (hardware) với một HTTP server (phần mềm). Chúng ta gọi nó là “static” bởi vì server (máy chủ) gửi các filelưu trữ “nguyên vẹn” (as-is) tới trình duyệt web của bạn.

Một dynamic Website server bao gồm một static Website server cộng với các phần mềm mở rộng, phổ biến nhất là một application server (máy chủ ứng dụng) và một database. Chúng ta gọi nó là “dynamic” bởi vì application server cập nhật các tệp được lưu giữ trước khi gửi chúng tới tình duyệt của bạn thông qua HTTP server.

VD, để làm ra các trang Web mà bạn nhìn thấy trong trình duyệt, application server có thể điền một HTML template với những thông tin lấy từ một database. Các site giống như MDN hay Wikipedia có hàng ngàn trang Web, tuy nhiên chúng chẳng phải là các tài liệu HTML thực sự, mà chỉ là vài HTML template và một database khổng lồ. cài đặt này làm chođơn giản và nhanh hơn để bảo dưỡng và phân phối nội dụng.

3. Tìm hiểu chuyên sâu

Để lấy một trang Website, trình duyệt web của bạn gửi một request tới Web server, nó sẽ tìm kiếm tệp được yêu cầu, lưu trữ trên ổ đĩa của nó. Khi tìm thấy tệp, server đọc nó, giải quyết nếu cần, và gửi nó tới trình duyệt. Hãy xem xét các bước này chi tiết hơn.

3.1 Lưu giữ các file (Hosting files)

Đầu tiên, một Website server phải lưu giữ các file của Web, đó là các tài liệu HTML và các tài nguyên ảnh hưởng đến nó, gồm có các ảnh, tệp CSS, file JavaScript, fonts và videos.

Về mặt kỹ thuật, bạn có thể lưu trữ toàn bộ các file trên máy tính của mình, tuy nhiênnhiều lợi ích hơn khi lưu trữ chúng trên một máy chủ riêng biệt như:

  • Luôn luôn sẵn sàng (up and running)
  • Luôn luôn kết nối tới mạng Internet
  • Có một địa chỉ IP cố định
  • Được bảo dưỡng bởi nhà phân phối (third-party provider)

toàn bộ những lý do này, tìm một nhà cung cấp máy chủ (hosting provider) tốt thuộc một phần cần thiết trong việc xây dựng Web của bạn.

Khi bạn đã chọn được một nhà phân phối Web hosting, bạn cần upload các file của bạn tới Web server của mình.

3.2 Giao tiếp thông qua HTTP

Thứ 2, một Web server hỗ trợ HTTP (Giao thức truyền phát siêu văn bản – Hypertext Transfer Protocol). Như tên gọi, HTTP là cách truyền các siêu văn bản – hypertext (ví dụ: các tài liệu web) giữa hai máy tính.

Một giao thức là một tập hợp các quy tắc để kết nối giữa hai máy tính. HTTP là một giao thức textual, stateless.

3.2.1 Textual

tất cả các lệnh là văn bản thuần túy (plain-text) và con người có thể đọc được.

3.2.2 Stateless

Cả server và client không nhớ kết nối trước đó. VD, nếu như chỉ có HTTP, một server không thể nhớ mật khẩu bạn đã nhập hoặc bước nào bạn đã làm trong một giao dịch. bạn phải cần một application server cho những nhiệm vụ như vậy. (Chúng tôi sẽ nhắc đến công nghệ này trong một bài content khác).

HTTP cung cấp các quy tắc bài bản, về cách client và server giao tiếp với nhau.

  • Chỉ client có thể tạo các HTTP request tới các server. Các server chỉ có thể đáp trả HTTP request của client.
  • Khi yêu cầu một file thông qua HTTP, client phải mang lại URL của file.
  • Website server phải giải đáp mọi HTTP request, ít nhất với một thông điệp lỗi (error message).

Trên một Website server, HTTP server gánh chịu hậu quả xử lýtrả lời các request đến.

  1. Khi nhận một request, một HTTP server sẽ kiểm tra xem URL được yêu cầu có khớp với một tệp hiện có không.
  2. nếu như có, Website server gửi thông tin tệp trả lại trình duyệt. nếu không, một application server sẽ làm ra tệp quan trọng.
  3. nếu như không thể xử lý, Web server trả lại một thông điệp lỗi cho trình duyệt web, phổ biến quan trọng là “404 Not Found”. (Đó là lỗi phổ biến, cái mà nhiều nhà thiết kế Website dành khá nhiều thời gian để thiết kế 404 error page).

3.3 Nội dung static vs dynamic

Nói chung, một server có thể phục vụ cả nội dung static hoặc dynamic. “Static” có nghĩa là “được phục vụ nguyên vẹn” (served as-is). Các static Webdễ dàng nhất để cài đặt, vì thế chúng tôi gợi ý bạn tạo một static site đầu tiên.

“Dynamic” nghĩa là server giải quyết nội dung hoặc thậm chí tạo ra chúng với dữ liệu từ database. giải pháp này linh động hơn, nhưng stack kỹ thuật trở lên khó khăn hơn để xử lý, làm cho việc xây dựng Website trở lên phức tạp hơn.

Lấy ví dụ trang Web bạn đang đọc hiện nay. Một Website server lưu giữ (hosting) nó, có một application server lấy nội dung bài content từ một database, định dạng nó, đẩy nó vào trong HTTP template, và gửi kết quả cho bạn. Trong trường hợp này, application server còn được gọi là Kuma và được tạo ra với Python (sử dụng framework Django). Mozilla team xây dựng Kuma cho nhu cầu riêng của MDN, nhưng nhiều ứng dụng tương tự được tạo ra trên nhiều công nghệ khác.

Có rất nhiều application server và thật khó để gợi ý cụ thể. một số application server phục vụ những loại Website cụ thể như: blogs, wikis, hay e-shop, … còn được nhắc đên là CMSs (các hệ quản trị thông tin – content management systems). Nếu như bạn đang xây dựng một dynamic Web, dành ra thời gian chọn một công cụ phù hợp với nhu cầu của bạn.

4. Chức năng của Web server là gì?

Chức năng cơ bản của Web server không thể thiếu là lưu giữ, xử lý và phân phối thông tin Web đến với người mua hàng.

  • Xử lý dữ liệu qua giao thức HTTP: Xử lýmang lại nội dung cho người mua hàng thông qua các máy tính cá nhân trên mạng qua giao thức HTTP. Nội dung được chia sẻ từ máy chủ Website là những nội dung định dạng HTML, các thẻ style sheets, hình ảnh, những đoạn mã script hỗ trợ nội dung các của văn bản thôi…. bạn có thể hiểu dễ dàngkhi mà bạn truy cập vào Bizfly.vn, máy chủ sẽ mang lại đến cho bạn tất cả dữ liệu về trang Web đấy thông qua lệnh giao tiếp.

  • Kết nối linh hoạt: Máy tính nào cũng có thể là một máy chủ nếu như nó được thiết lập một chương trình phần mềm server và có kết nối internet.

  • Chương trình chuyển đổi thông minh: Phần mềm Web server cũng như các phần mềm khác, nó cho phép người sử dụng thiết lập và hoạt động trên bất kỳ máy tính nào đáp ứng đủ yêu cầu về bộ nhớ.

  • Lưu trữ dữ liệu trên hình thức thuê các máy chủ nhỏ, máy chủ áo VPS hoặc hosting.

Vì vậy khi thiết kế Web xong, cần thực hiện đăng tải Web lên Website server để giúp người mua hàng có thể truy cập Website ở nhiều nơi trên toàn cầu và hiểu được thông tin bên trong.

5. Web server hoạt động như thế nào?

Bất cứ khi nào bạn xem một trang Web trên mạng, nghĩa là bạn đang yêu cầu trang đó từ một Web server. Khi bạn điền URL trên trình duyệt web của mình (ví dụ: https://atpsoftware.vn) nó sẽ tiến hành các bước sau để gửi lại góp ý cho bạn.

5.1 Trình duyệt web phân giải tên miền thành địa chỉ IP

Trình duyệt của bạn trước tiên cần phải xác định địa chỉ IP nào mà tên miền atpsoftware.vn trỏ về. Trình duyệt web sẽ yêu cầu nội dung từ một hoặc nhiều máy chủ DNS (thông qua internet). Máy chủ DNS sẽ cho trình duyệt web biết địa chỉ IP nào tên miền sẽ trỏ đến cũng là nơi đặt trang Web.

Lúc này trình duyệt đã biết địa chỉ IP của trang Website, nó có thể yêu cầu URL rất đầy đủ từ webserver.

5.2 Webserver gửi lại client Trang được yêu cầu

Website server góp ý bằng việc gửi lại những thông tin client yêu cầu… nếu như trang không hiện hữu hoặc có lỗi khác xảy ra, nó sẽ gửi lại thông báo lỗi phù hợp.

5.3 Trình duyệt hiển thị trang Web

Trình duyệt của bạn nhận lại được các tập tin html css (nhiều file khác)… và render hiển thị trang theo yêu cầu.

6. Những điều cần lưu ý khi sử dụng Web server

Giống như là các phần mềm được sử dụng trên máy tính của bạn, Website server software cũng chỉ là 1 ứng dụng phần mềm. Chúng được thiết lập trên một máy mà bạn lựa chọn để giúp người sử dụng có thể tìm kiếm các thông tinWeb của bạn mang lại. Vì vậy mà cần nên có một máy tính cấu hình tốt, đáp ứng được khối lượng lớn người sử dụng truy xuất cũng giống như lưu giữ được dung lượng dữ liệu cao.

Server ảo cần phải được hoạt động liên tục 24/24, không ngắt quãng để phục vụ cho việc cung cấp thông tin trực tuyến. Chính vì vậy mà việc chọn lựa server đóng vai trò cực kỳ cần thiết trong chất lượng, tốc độ lưu chuyển thông tin từ Web server sang máy tính truy xuất.

Để đáp ứng được các yêu cầu của thay đổi không ngừng của các doanh nghiệp, dịch vụ cho thuê server ngày càng phát triển rộng mở và mạnh mẽ, cho phép làm ra nhiều gói dịch vụ đa dạng để các doanh nghiệp có thể tìm ra lựa chọn tối ưu cho mình.

Website server càng mạnh sẽ càng tạo điều kiện cho quá trình lưu trữ dữ liệu, tốc độ lưu chuyển thông tin trên Web được thuận tiện hơn, phục vụ cho công đoạn truy xuất của người sử dụng.

7. Giới thiệu top các Web Server phổ biến

7.1 Apache HTTP server

Apache là Website server được dùng rộng rãi nhất thế giới. Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation. Apache được phát hành với giấy phép Apache License là được sử dụng tự do, miễn phí.

Tính đến tháng 8 năm 2018, apache ước tính phục vụ cho 54.2% các trang Website đang hoạt động và 53.3% số máy chủ hàng đầu. Apache chạy trên các hệ điều hành như windows, linux, unix, MacOS ….

7.2 Nginx

Nginx là một Website server nhẹ (Đọc thêm Nginx là gì), không chiếm nhiều tài nguyên của hệ thống. Nginx còn là một reserse proxy mã nguồn mở. Nginx khá là ổn định, cấu hình đơn giảnhiệu năng cao.

Nginx được phát triển bởi Igor Sesoev vào năm 2002 trọng điểm là để phục vụ cho Website rambler.ru (trang Website được truy xuất nhiều thứ 2 của nước Nga). Theo tổng hợp và thống kê của Netcaft, trong một triệu Website lớn nhất toàn cầu có 6.52% sử dụng Nginx.

Nginx là phần mềm mã nguồn mở và không mất phí, được phát hành rộng rãi theo giấy phép BSD. Nginx được phát triển bằng ngôn ngữ và chạy được trên các hệ điều hành như Linux, FreeBSD, Windows, MacOS…

Nginx có các tính năng như chứng thực người sử dụng, virtual hosting, hỗ trợ CGI, FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6, …

7.3 Internet Information Services (IIS)

IIS do Microsoft phát triển, sản phẩm này được tích hợp cùng với hệ điều hành Windows Server. Trong IIS gồm có nhiều dịch vụ như: dịch vụ Web Server, dịch vụ FTP Server. Tính đến thời điểm tháng 5 năm 2015 thì thì số lượng trang Website dùng máy chủ IIS gần 248 triệu trang Website.

Toàn bộ các tính năng của Website server được quản lí độc lập vì lẽ đó chúng ta có thể đơn giản thêm, loại bỏ hoặc thay thế các tính năng của Web server.

Nhờ được tích hợp ASP.NET IIS có thể dùng toàn bộ sức mạnh của ASP.NET. Module ASP.NET khiến cho máy chủ phát triển nhanh chóng nhờ vào bố cục và giao diện quen thuộc và các dịch vụ ứng dụng của ASP.NET.

7.4 Apache Tomcat

Apache Tomcat là một Java Servlet được phát triển bởi Apache Software Foundation. Tomcat thực thi các ứng dụng Java Servlet và JavaServer Pages (JSP). Tomcat cung cấp một máy chủ HTTP cho ngôn ngữ Java thuần túy.

Apache Tomcat rất ổn định và có toàn bộ các tính năng của một ứng dụng Web thương mại nhưng đi kèm theo giấy phép mã nguồn mở của Apache. Tomcat cũng cung cấp một số công dụng bổ sung như tomcat manager application, speciallized realm imlementation và tomcat valves.

Các phiên bản của apache tomcat trùng với phiên bản và đặc điểm kỹ thuật của servlet java hoặc java servlet API. Tomcat 5.5X hỗ trợ Servlet API 2.3, tomcat 6.0X hỗ trợ servlet API 2.4 và tomcat 7.0 hỗ trợ servlet API 3.0. Ngoài Servlet versions API, phiên bản tomcat hỗ trợ phiên bản JSP API tương ứng.