Trong công nghệ phần mềm, một Ứng dụng web hay web application được gọi tắt là webapp là một ứng dụng hoặc một chương trình mà người dùng có thể tiếp cận, giao tiếp, tương tác thông qua Internet bằng cách sử dụng các phần mềm trình duyệt.
1. Web Application là gì?
Web Application (Webapp) hay Ứng dụng Web là một loại chương trình máy tính thường chạy hoạt động trên nền tảng internet. Không giống như các ứng dụng máy tính để bàn, Web Application thường được lưu trữ trên một máy chủ cloud. Web Application có thể được truy cập ở mọi nơi bằng trình duyệt web như Fire Fox, Microsoft Explorer, Google Chrome hoặc Apple Safari.
Điều đó có nghĩa là, nếu bạn muốn sử dụng một Web Application bạn không cần tải nó về máy và cài đặt, mà bạn chỉ cần sử dụng một trình duyệt web, sau đó các trình duyệt web sẽ sử dụng phương thức phân giải Domain Name Server để xác định nơi Web Application được đặt, sau đó người dùng và hệ thống sẽ tương tác qua lại với nhau dựa trên cơ chế Client – Server.
2. Lịch sử hình thành và phát triển của Web Application
Ứng dụng web đã phát triển từ việc sử dụng trang web tĩnh đơn giản đến phát triển thành các ứng dụng có độ phức tạp cao, xử lý được được nhiều tác vụ, hiệu xuất cao, giải quyết được nhiều yêu cầu từ phía người dùng và đặc biệt nó cực kì đa dạng trong nhiều lĩnh vực như hiện nay.
- HTML và TCP/IP Protocol: Trong những năm 1960, Tim Berners-Lee tạo ra HTML (Hypertext Markup Language) và TCP/IP Protocol. Từ đó đặt nền tảng cho việc truy cập thông tin qua Internet.
- Netscape Navigator và JavaScript: Netscape Navigator, trình duyệt web phổ biến, và ngôn ngữ lập trình JavaScript đã ra đời vào những năm 1990, mở ra khả năng tạo ra các trang web tương tác và phức tạp hơn.
- PHP và ASP.NET: Sự ra đời của các ngôn ngữ lập trình phía máy chủ như PHP, ASP (Active Server Pages), và ASP.NET đã tạo điều kiện cho việc phát triển các ứng dụng web động và phức tạp hơn.
- Ajax: Kỹ thuật Ajax (Asynchronous JavaScript and XML) đã giúp tăng khả năng tương tác và đồng bộ dữ liệu giữa máy chủ và trình duyệt web mà không cần tải lại trang, tạo ra trải nghiệm người dùng tốt hơn
- Phần mềm dưới dạng dịch vụ (Software as a Service – SaaS): Từ cách tiếp cận mới trong việc triển khai ứng dụng web, SaaS đã làm thay đổi cách thức cung cấp và tiêu dùng ứng dụng web.
- Nền tảng dưới dạng dịch vụ (Platform as a Service – PaaS): PaaS là một dịch vụ điện toán đám mây trong đó nhà cung cấp sẽ cung cấp các nền tảng cho phép người dùng tự phát triển và triển khai các ứng dụng riêng của mình trên đó qua mạng Internet.
3. Web Application hoạt động như thế nào?
Ứng dụng web hoạt động bằng cách tương tác giữa máy chủ và trình duyệt web của người dùng. Dưới đây là quá trình hoạt động cơ bản của một ứng dụng web:
3.1 Yêu cầu từ trình duyệt web
Người dùng nhập Domain của Webapp vào URL của trình duyệt. Trình duyệt sẽ gửi một yêu cầu đến máy chủ chủ phân giải tên miền hay còn được gọi là Domain Name Server (DNS), máy chủ sẽ phân giải tên miền đó để tìm ra địa chỉ IP của máy chủ lưu trữ mã nguồn của Webapp sau đó hệ thống sẽ điều hướng người dùng về Webapp sau đó các tác vụ trao đổi và tương tác giữa người dùng và webapp sẽ được thực hiện theo mô hình Client-Server.
3.2 Giao diện người dùng
Các nhà phát triển Webapp sẽ phải thực hiện xây dựng hệ thống Giao diện người dùng để Client có thể sử dụng để thực hiện gửi yêu câu (hay còn gọi là các Request) và nhận kết quả trả về từ phía Server (hay còn gọi là các Response)
Request có thể hiểu nhanh là thông tin gửi từ client lên server, Reponse là dữ liệu mà server trả về cho client. Và các dữ liệu mà server trả về cho client sẽ được hiện thị lên một hệ thống giao diện được thiết kế sẵn, đó chính là giao diện người dùng.
Việc xây dựng giao diện phía người dùng cho các hệ thống webapp là công việc được được thực hiện bởi các Developer Front-End. Hiện nay các nhà phát triển webapp thường sử dụng các ngôn ngữ lập trình như HTML, CSS, JavaScript … để thực hiện việc xây dựng giao diện người dùng.
Thuật ngữ Front-End đề cập đến giao diện đồ họa người dùng (GUI) mà người dùng của bạn có thể tương tác trực tiếp, chẳng hạn như menu điều hướng, các phần tử thiết kế, nút, hình ảnh và đồ thị. Trong thuật ngữ kỹ thuật, một trang hoặc màn hình mà người dùng của bạn nhìn thấy với nhiều thành phần UI thì được gọi là mô hình đối tượng tài liệu (DOM).
Ba ngôn ngữ máy tính chính ảnh hưởng đến cách người dùng tương tác với frontend của bạn:
- HTML định nghĩa cấu trúc Front-End và các phần tử DOM khác nhau
- Ngôn ngữ định kiểu theo tầng (CSS) xác định kiểu của một ứng dụng web, bao gồm bố cục, phông chữ, màu sắc và kiểu trực quan
- JavaScript thêm một lớp chức năng động bằng cách tác động vào DOM
JavaScript có thể kích hoạt các thay đổi trên một trang và hiển thị thông tin mới. Điều này có nghĩa là các Front-End có thể xử lý những sự tương tác (hoặc yêu cầu) cơ bản của người dùng, như hiển thị lịch hoặc kiểm tra xem người dùng đã nhập một địa chỉ email hợp lệ hay chưa. Các Front-End chuyển tiếp các yêu cầu phức tạp hơn tới Back-End.
3.2 Xử lý logic phía server
Khi người dùng thực hiện gửi một request từ client về server, các webapp sẽ phải xử lý yêu cầu từ phía client và trả về kết quả cho client, việc xử lý yêu cầu và trả kết quả về này được gọi là xử lý Back-End. Khi Back-End của bạn xử lý một yêu cầu, nó thường tương tác với những thành phần sau đây:
- Tương tác với Cơ sở dữ liệu bằng các câu lệnh truy vấn để truy xuất hoặc sửa đổi dữ liệu có liên quan
- Hệ thống API của bên thứ ba để thu thập thêm thông tin hoặc thực hiện các chức năng bổ sung
Back-End sử dụng một số giao thức giao tiếp và công nghệ để hoàn thành một yêu cầu. Ngoài ra, Back-End xử lý hàng ngàn yêu cầu riêng biệt cùng một lúc. Back-End kết hợp các kỹ thuật đồng thời và song song, như phân bổ yêu cầu trên nhiều máy chủ, ghi vào bộ nhớ đệm và sao chép dữ liệu.
4. Ưu điểm và nhược điểm nổi bật của Web Application
Cũng như các loại ứng dụng khác, ứng dụng web (Web Application) cũng có những điểm mạnh và hạn chế riêng. Để tìm hiểu xem các ứng dụng web có mang lại lợi ích hay phù hợp với mục tiêu của bạn hay không, hãy điểm qua những ưu điểm và nhược điểm dưới đây để giúp bạn quyết định tốt hơn.
4.1 Ưu điểm của Web Application
- Web Application không giới hạn cho một nền tảng cụ thể.
- Chúng có thể được xây dựng cho tất cả các nền tảng miễn là chúng có thể chạy trong trình duyệt web, dễ dàng tương thích ứng với iOS, Android hoặc Windows
- Ứng dụng web không yêu cầu nhiều thời gian hoặc nhân lực để xây dựng, không cần thử nghiệm trong mỗi hệ điều hành khác nhau, do đó nó có chi phí đầu tư thấp hơn nhiều so với các loại phát triển ứng dụng khác.
- Webapp sử dụng các ngôn ngữ mã hóa phổ biến trên nhiều nền tảng, do đó việc xây dựng và bảo trì tương đối dễ dàng
- Cập nhật tự động, người dùng luôn thấy phiên bản cập nhật nhất khi họ mở ứng dụng web.
4.2 Nhược điểm của Web Application
- Ứng dụng web yêu cầu thiết bị cần kết nối Internet ổn định để hoạt động. Nếu không có kết nối mạng thì người dùng sẽ không thể truy cập vào ứng dụng web.
- Tốc độ tải trang và thời gian phản hồi có thể phụ thuộc vào tình trạng mạng và khả năng xử lý của máy chủ. Điều này có thể dẫn đến tình trạng tắt nghẽn truy cập.
- Mặc dù đã có tiến bộ trong việc cải thiện bảo mật, Webapp vẫn gây ra nhiều mối lo ngại về việc dữ liệu người dùng bị đánh cắp hoặc xâm nhập.
- So với ứng dụng di động hoặc phần mềm desktop, ứng dụng web sẽ tạo ra một vài vấn đề hạn chế trong việc tùy chỉnh giao diện và trải nghiệm người dùng trên các platform khác nhau.
- Mặc dù ứng dụng web có thể hoạt động trên nhiều trình duyệt khác nhau nhưng việc đảm bảo tính tương thích có thể thay đổi.
- Ứng dụng web có thể tiêu tốn tài nguyên mạng và yêu cầu công nghệ xử lý cao trên máy chủ. Đặc biệt là khi có nhiều người dùng truy cập cùng một lúc.