Phân biệt Web Server vs. Application Server

Mở đầu

Chắc hẳn nhiều bạn (và ngay cả mình) đã có nhiều năm kinh nghiệm triển khai và vận hành web server (IIS, Apache, Nginx,…), application server (Apache Tomcat, JBoss, uWSGI,..). Tuy nhiên, không nhiều người thực sự hiểu và phân biệt rõ điểm giống, khác nhau giữa chúng. Thực sự cả web và application server đều có nhiệm vụ phản hồi yêu cầu từ người dùng.

Trong phạm vi bài viết này, mình và các bạn cùng nhau tìm hiểu những điểm giống và khác nhau cơ bản giữa web serverapplication server.

App Server vs. Web Server: những khái niệm khác nhau

Web Servers Điểm khác nhau Application Servers
Hosts websites và phản hồi những request đơn giản Mục đích chính Hosts ứng dụng và xử lý những kịch bản phực tạp thông qua tính toán logic.
Chỉ xử lý nội dung tĩnh qua HTML Kiểu nội dung chuyển tiếp cả nội dung tĩnh và động
chỉ sử dụng HTTP/HTTPS Giao thức Tương tác client-server, bao gồm HTTP/HTTPS
Không Kết nối ứng dụng
Có thể truy cập đến dữ liệu tĩnh Kết nối cơ sở dữ liệu Truy cập đến cơ sở dữ liệu của ứng dụng
Trình duyệt web Typical client Serves web, mobile app và trình duyệt web
Không hỗ trợ Đa luồng Sử dụng đa luồng để xử lý đa tiến trình
Ít tiêu tốn tài nguyên Tiêu tốn tài nguyên Các tiến trình sử dụng nhiều tài nguyên hệ thống
Web container Containers Web container (Servlets, JSP, JSF, web services), EJB container (JTA), Application Client container (DI, security)
Rất thấp Hiệu năng Cao
Tương tác với trình duyệt bằng HTML Kết quả trả về Dạng các file chứa dữ liệu

Web Server là gì?

Web server là một hệ thống máy tính dùng để lưu trữ, xử lý và phân phối nội dung website đến client. Theo mặc định, nó chỉ xử lý nội dung HTML tĩnh sau:

  • Documents
  • Images
  • Videos
  • Fonts

Web server chỉ chấp nhận request qua giao thức HTTP/HTTPS. Luồng xử lý request căn bản như hình bên dưới.

Application Server là gì?

Application server là một framework chịu trách nhiệm cung cấp nội dung động của website cho client.

Application server cung cấp cho client khả năng tương tác với hệ thống bằng những nghiệp vụ logic. Từ đó, application server sẽ chuyển đổi dữ liệu này thành nội dung động và thực thi các functions. Nội dung động có thể bao gồm:

  • Kết quả phiên giao dịch
  • Hỗ trợ quyết định
  • Phân tích thời gian thực

Một số tác vụ chính của application server bao gồm:

  • Transaction management
  • Security
  • Dependency injection (DI)
  • Concurrency

Luồng xử lý request căn bản của application server như hình bên dưới.

Sự trùng lặp giữa Web Server và Application Server

Từ những phân tích ở trên, ta có thể dễ dàng nhận thấy nếu phía client chỉ sử dụng trình duyệt web để tương tác thì sự khác nhau giữa web server và application server là không rõ ràng. Hầu hết, những web server phổ biến hiện nay để có hỗ trợ xử lý nhiều ngôn ngữ như PHP, JSP, Perl,… (bằng cách tích hợp thêm modules).

Cũng như nhiều application server có khả năng đảm nhiệm luôn cả chức năng của một web server như Apache Tomcat.

Top những server phổ biến

  • Web Server: LiteSpeed, Nginx, Apache, IIS
  • Application Server: Apache Tomcat, Oracle WebLogic, JBoss

Ứng dụng trong hệ thống doanh nghiệp

Với những phân biệt và điểm trùng lặp giữa web server và application server mà mình đã đề cập trong bài này, trong thực tế, tùy theo điều kiện của hệ thống, bạn chọn loại server phù hợp hoặc kết hợp cả hai giải pháp này để đạt hiệu suất tốt nhất.

  • Giải pháp 1: Chỉ sử dụng Web Server kèm modules

  • Giải pháp 2: Kết hợp sử dụng cả Web và Application Server

Web server sẽ đứng trước để nhận request trực tiếp từ client, xử lý và phản hồi nội dung tĩnh HTML về client. Nếu trong request có yêu cầu nội dung động, no sẽ chuyển tiếp yêu cầu dạng này đến application server. Sau khi kích hoạt các funtions trong mã nguồn, tương tác và nhận kết quả từ database, application server sẽ phản hồi về cho web server.

Web server lúc này có nhiệm vụ chuyển đổi nội dung động nhận được thành dạng mã HTML và phản hồi về client.

Lời kết

Như vậy là mình đã hoàn thành bài viết phân biệt Web Server vs. Application Server trong phạm vi hiểu biết cá nhân. Nếu có bất kỳ thắc mắc hoặc góp ý về nội dung bài viết, các bạn có thể để lại phản hồi ngay bên dưới.

Nguồn: phoenixnap blog

Giới thiệu Hiệp Phạm 113 bài viết
Hiệp hiện đang là thành viên nhóm tác giả của HIEPSHARING.COM. Thích tìm hiểu, nghiên cứu Ethical Hacking, SysAdmin, DevOps và những công nghệ mới. Phương châm sống của mình: "Chỉ cần bản thân không bỏ cuộc, chậm chút cũng không sao."

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*