031.2 Bài 1
Chứng chỉ: |
Web Development Essentials |
---|---|
Phiên bản: |
1.0 |
Chủ đề: |
031 Phát triển Phần mềm và Công nghệ Web |
Mục tiêu: |
031.2 Kiến trúc của Ứng dụng Web |
Bài: |
1 trên 1 |
Giới thiệu
Từ ứng dụng mang một ý nghĩa rất rộng trong phạm vi thuật ngữ công nghệ. Khi ứng dụng là một chương trình truyền thống được thực thi cục bộ và tự túc theo mục đích của nó thì cả giao diện vận hành của ứng dụng và các thành phần xử lý dữ liệu đều sẽ được tích hợp trong một “gói” duy nhất. Một ứng dụng web lại là một khái niệm khác vì nó sử dụng mô hình máy khách/máy chủ; phần máy khách của nó được dựa trên HTML lấy từ máy chủ và được hiển thị bởi một trình duyệt.
Máy Khách và Máy Chủ
Trong mô hình máy khách/máy chủ, một phần công việc sẽ được thực hiện cục bộ ở phía máy khách và một phần công việc còn lại sẽ được thực hiện từ xa từ phía máy chủ. Việc nhiệm vụ nào sẽ được thực hiện bởi bên nào sẽ tùy theo mục đích của ứng dụng nhưng nhìn chung, máy khách sẽ phải cung cấp giao diện cho người dùng và bố cục nội dung một cách đẹp mắt. Máy chủ chịu trách nhiệm chạy phần kinh doanh của ứng dụng, xử lý và đáp ứng các yêu cầu được thực hiện bởi máy khách. Ví dụ: trong ứng dụng mua sắm, máy khách sẽ hiển thị giao diện để người dùng chọn và thanh toán sản phẩm, nhưng nguồn dữ liệu và hồ sơ giao dịch đều được lưu trên máy chủ từ xa và được truy cập qua mạng. Các ứng dụng web thực hiện giao tiếp này qua Internet và thường là thông qua Giao thức Truyền Siêu Văn Bản (HTTP - Hypertext Transfer Protocol).
Sau khi được tải bởi trình duyệt, phía máy khách của ứng dụng sẽ bắt đầu tương tác với máy chủ bất cứ khi nào cần thiết hoặc thuận tiện. Các máy chủ ứng dụng web sẽ cung cấp giao diện lập trình ứng dụng (API) để xác định các yêu cầu khả dụng và cách thực hiện các yêu cầu đó. Do đó, máy khách sẽ tạo một yêu cầu theo định dạng do API xác định và gửi nó đến máy chủ, máy chủ này sẽ kiểm tra mọi điều kiện tiên quyết của yêu cầu và gửi lại những phản hồi thích hợp.
Trong khi máy khách (ở dạng ứng dụng dành cho thiết bị di động hoặc trình duyệt trên máy tính để bàn) là một chương trình độc lập liên quan đến giao diện người dùng và hướng dẫn giao tiếp với máy chủ thì trình duyệt phải lấy trang HTML và các thành phần liên quan—chẳng hạn như hình ảnh, CSS và JavaScript—để xác định giao diện và hướng dẫn giao tiếp với máy chủ.
Các ngôn ngữ lập trình và nền tảng được sử dụng bởi máy khách và máy chủ là độc lập với nhau nhưng lại sử dụng một giao thức giao tiếp cả hai bên đều có thể hiểu được. Phần máy chủ hầu như luôn được thực hiện bởi một chương trình không có giao diện đồ họa và chạy trong môi trường máy tính có tính sẵn sàng cao để luôn đảm bảo đáp ứng các yêu cầu. Ngược lại, phần máy khách thường chạy trên mọi thiết bị có khả năng hiển thị giao diện HTML, chẳng hạn như điện thoại thông minh.
Ngoài việc cần thiết cho các mục đích nhất định, việc áp dụng mô hình máy khách/máy chủ cho phép ứng dụng tối ưu hóa một số khía cạnh của quá trình phát triển và bảo trì vì mỗi phần đều có thể được thiết kế cho mục đích nhất định của nó. Ví dụ như một ứng dụng hiển thị bản đồ và tuyến đường sẽ không cần phải lưu trữ cục bộ tất cả các bản đồ. Chỉ những bản đồ liên quan đến vị trí mà người dùng quan tâm mới được yêu cầu, vì thế mà chỉ những bản đồ đó mới được yêu cầu từ máy chủ trung tâm.
Các nhà phát triển có quyền kiểm soát trực tiếp máy chủ, vì vậy họ cũng có thể sửa đổi máy khách do nó cung cấp. Điều này cho phép các nhà phát triển cải thiện ứng dụng ở mức độ cao hơn hoặc thấp hơn mà không cần người dùng phải mất công cài đặt các phiên bản mới.
Phía Máy Khách
Một ứng dụng web nên chạy theo một cách cố định trên bất kỳ trình duyệt phổ biến nhất nào, miễn là trình duyệt đó đã được cập nhật. Một số trình duyệt có thể không tương thích với những sửa đổi mới nhất, nhưng chỉ có những ứng dụng thử nghiệm mới sử dụng các tính năng chưa được áp dụng rộng rãi.
Trước đây thường xảy ra các vấn đề không tương thích bởi mỗi trình duyệt đèu có một công cụ kết xuất riêng và giữa các trình duyệt ít có sự hợp tác trong việc xây dựng và áp dụng các tiêu chuẩn. Công cụ kết xuất là thành phần chính của trình duyệt vì nó chịu trách nhiệm chuyển đổi HTML và các thành phần liên quan khác thành các yếu tố trực quan và tương tác của giao diện. Một số trình duyệt, đặc biệt là Internet Explorer, cần được xử lý đặc biệt trong mã để không làm "hỏng" hoạt động của các trang.
Ngày nay, có rất ít sự khác biệt giữa các trình duyệt lớn và rất hiếm khi xảy ra hiện tượng không tương thích. Trên thực tế, trình duyệt Chrome và Edge đều sử dụng cùng một công cụ kết xuất (được gọi là Blink). Trình duyệt Safari và các trình duyệt khác được cung cấp trên iOS App Store sử dụng công cụ WebKit. Firefox sử dụng một công cụ được gọi là Gecko. Ba công cụ này có thể nói là đang "thầu" tất cả các trình duyệt được sử dụng ngày nay. Mặc dù được phát triển riêng biệt, ba công cụ này là những dự án mã nguồn mở và có sự hợp tác giữa các nhà phát triển của chúng. Điều này tạo điều kiện thuận lợi cho tính năng tương thích, việc bảo trì và áp dụng các tiêu chuẩn.
Do các nhà phát triển trình duyệt đã nỗ lực rất nhiều để duy trì tính tương thích nên máy chủ thường sẽ không liên kết với một loại máy khách duy nhất. Về nguyên tắc, một máy chủ HTTP có thể giao tiếp với bất kỳ máy khách nào cũng có khả năng giao tiếp qua HTTP. Ví dụ như trong ứng dụng bản đồ, máy khách có thể là ứng dụng di động hoặc trình duyệt tải giao diện HTML từ máy chủ.
Các loại Máy Khách trong Mạng
Có các ứng dụng dành cho thiết bị di động và máy tính để bàn có giao diện được hiển thị từ HTML và, giống như trình duyệt, có thể sử dụng JavaScript làm ngôn ngữ lập trình. Tuy nhiên, không giống như một máy khách được tải trong trình duyệt, HTML và các thành phần cần thiết để máy khách gốc hoạt động phải có mặt cục bộ kể từ khi cài đặt ứng dụng. Trên thực tế, một ứng dụng hoạt động theo cách này hầu như sẽ giống với một trang HTML (cả hai thậm chí sẽ có khả năng được hiển thị bởi cùng một công cụ). Ngoài ra còn có ứng dụng web lũy tiến (PWA) là một cơ chế cho phép bạn đóng gói các máy khách ứng dụng web để sử dụng ngoại tuyến giới hạn ở các chức năng không yêu cầu giao tiếp ngay lập tức với máy chủ. Về những gì ứng dụng có thể làm: không có sự khác biệt giữa việc chạy trình duyệt và việc được đóng gói trong PWA ngoại trừ việc sau này nhà phát triển sẽ có nhiều quyền kiểm soát hơn đối với những gì được lưu trữ cục bộ.
Việc kết xuất các giao diện từ HTML là một hoạt động xuyên đến mức công cụ dành cho tác vụ này thường là một thành phần phần mềm riêng biệt có trong hệ điều hành. Nó hiện diện như một thành phần riêng biệt cho phép các ứng dụng khác nhau kết hợp với nó mà không cần phải nhúng nó vào gói ứng dụng. Mô hình này cũng ủy thác việc bảo trì công cụ kết xuất cho hệ điều hành để tạo điều kiện cho việc cập nhật. Một điều rất quan trọng ở đây là luôn cập nhật thành phần quan trọng này để tránh các lỗi hệ thống có thể xảy ra.
Bất kể phương thức triển khai của chúng là gì, các ứng dụng được viết bằng HTML sẽ chạy trên một lớp trừu tượng do công cụ tạo ra và lớp này sẽ hoạt động như một môi trường thực thi biệt lập. Cụ thể hơn, trong trường hợp máy khách chạy trên trình duyệt, ứng dụng chỉ có thể tùy ý sử dụng những tài nguyên do trình duyệt cung cấp. Các tính năng cơ bản (chẳng hạn như tương tác với các thành phần trang và yêu cầu tệp qua HTTP) sẽ luôn khả dụng. Các tài nguyên có thể chứa các thông tin nhạy cảm như quyền truy cập vào tệp cục bộ, vị trí địa lý, máy ảnh và micrô cần có sự cho phép rõ ràng của người dùng trước khi ứng dụng có thể sử dụng chúng.
Ngôn ngữ của Máy Khách trong Mạng
Yếu tố trọng tâm của máy khách ứng dụng web chạy trong máy chủ là tài liệu HTML. Ngoài việc trình bày các thành phần giao diện mà trình duyệt hiển thị theo một cách có cấu trúc, tài liệu HTML còn chứa các địa chỉ cho tất cả các tệp cần thiết để trình bày và vận hành máy khách một cách chính xác.
Chỉ riêng HTML sẽ không có nhiều tính linh hoạt để xây dựng các giao diện phức tạp hơn và không có các tính năng lập trình cho mục đích chung. Vì lý do này, một tài liệu HTML sẽ hoạt động như một máy khách luôn đi kèm với một hoặc nhiều bộ CSS và JavaScript.
CSS có thể được cung cấp dưới dạng một tệp riêng biệt hoặc trực tiếp trong chính tệp HTML. Mục đích chính của CSS là điều chỉnh giao diện và bố cục của các phần tử trong giao diện HTML. Mặc dù không thực sự cần thiết nhưng các giao diện phức tạp thường yêu cầu sửa đổi các thuộc tính CSS của các phần tử để phù hợp với nhu cầu của chúng.
JavaScript là một thành phần không thể thiếu. Các quy trình được viết bằng JavaScript sẽ phản hồi tới các sự kiện trong trình duyệt. Những sự kiện này có thể do người dùng gây ra hoặc do việc không tương tác. Không có JavaScript, tài liệu HTML thực tế chỉ giới hạn ở dạng văn bản và hình ảnh. Việc sử dụng JavaScript trong tài liệu HTML sẽ cho phép bạn mở rộng khả năng tương tác ngoài các siêu liên kết và biểu mẫu, làm cho trang được trình duyệt hiển thị trông giống như một giao diện ứng dụng thông thường.
JavaScript là ngôn ngữ lập trình đa dụng, nhưng mục đích sử dụng chính của nó là ở trong các ứng dụng web. Các tính năng của môi trường thực thi trình duyệt có thể được truy cập thông qua các từ khóa JavaScript được sử dụng trong tệp lệnh để thực hiện thao tác mong muốn. Ví dụ: thuật ngữ document
(tài liệu) được sử dụng trong mã JavaScript là để chỉ tài liệu HTML được liên kết với mã JavaScript. Trong ngữ cảnh của ngôn ngữ JavaScript, document
là một đối tượng toàn cầu với các thuộc tính và phương thức có thể được sử dụng để lấy thông tin từ bất kỳ phần tử nào trên tài liệu HTML. Quan trọng hơn, ta có thể sử dụng đối tượng document
để sửa đổi các phần tử của nó và liên kết chúng với các hành động tùy chỉnh được viết bằng JavaScript.
Ứng dụng khách dựa trên công nghệ web là một ứng dụng đa nền tảng bởi nó có thể chạy trên bất kỳ thiết bị nào có trình duyệt web tương thích.
Tuy nhiên, việc bị giới hạn trong trình duyệt sẽ đặt ra các hạn chế đối với các ứng dụng web so với các ứng dụng gốc. Sử dụng trình duyệt làm trung gian sẽ cho phép ta lập trình ở cấp cao hơn và tăng tính bảo mật, nhưng nó cũng làm tăng mức tiêu thụ bộ nhớ và quy trình xử lý.
Các nhà phát triển đang liên tục cải tiến các trình duyệt để cung cấp nhiều tính năng hơn và cải thiện hiệu suất của các ứng dụng JavaScript, nhưng có những khía cạnh nội tại đối với việc thực thi các tệp lệnh như JavaScript sẽ gây bất lợi cho chúng so với các chương trình gốc cho cùng phần cứng.
Một tính năng giúp cải thiện đáng kể hiệu suất của các ứng dụng JavaScript chạy trên trình duyệt là WebAssembly. WebAssembly là một loại JavaScript được biên dịch để tạo mã nguồn được viết bằng ngôn ngữ cấp thấp hơn và hiệu quả hơn, chẳng hạn như ngôn ngữ C. WebAssembly có thể tăng tốc các hoạt động chủ yếu sử dụng bộ xử lý nhiều vì nó tránh được phần lớn quá trình dịch do trình duyệt thực hiện khi chạy một chương trình được viết bằng JavaScript thông thường.
Bất kể chi tiết triển khai của ứng dụng là gì, tất cả các tệp mã HTML, CSS, JavaScript và đa phương tiện trước tiên phải được lấy từ máy chủ. Trình duyệt lấy các tệp này giống như một trang Internet, tức là với một địa chỉ được truy cập bởi trình duyệt.
Một trang web hoạt động như một giao diện cho một ứng dụng web cũng sẽ giống như một tài liệu HTML thuần tuý nhưng có thêm các hành vi bổ sung. Trên các trang thông thường, người dùng sẽ được chuyển hướng đến một trang khác sau khi nhấp vào liên kết. Các ứng dụng web có thể hiển thị giao diện của chúng và phản hồi các sự kiện của người dùng mà không cần tải các trang mới trong cửa sổ trình duyệt. Việc sửa đổi hành vi tiêu chuẩn này trong các trang HTML được thực hiện thông qua lập trình JavaScript.
Ví dụ: một ứng dụng email trên web sẽ hiển thị thư và chuyển đổi giữa các thư mục thư mà không cần rời khỏi trang. Điều này có thể thực hiện được là bởi máy khách sử dụng JavaScript để phản ứng lại các hành động của người dùng và đưa ra các yêu cầu phù hợp với máy chủ. Nếu người dùng nhấp vào chủ đề của thư trong hộp thư đến, mã JavaScript được liên kết với sự kiện này sẽ yêu cầu nội dung của thư đó từ máy chủ (sử dụng lệnh gọi API tương ứng). Ngay khi máy khách nhận được phản hồi, trình duyệt sẽ hiển thị thông báo trong phần thích hợp trong cùng một trang. Các ứng dụng webmail khách khác nhau có thể áp dụng các chiến lược khác nhau, nhưng tất cả đều sử dụng cùng một nguyên tắc này.
Do đó, ngoài việc cung cấp các tệp tạo nên máy khách cho trình duyệt, máy chủ cũng phải có khả năng xử lý các yêu cầu chẳng hạn như yêu cầu của ứng dụng webmail khi nó yêu cầu nội dung của một thư cụ thể. Mọi yêu cầu mà máy khách có thể thực hiện đều có một quy trình được xác định trước để phản hồi trên máy chủ. API của máy chủ có thể chỉ định các phương thức khác nhau để xác định quy trình mà yêu cầu đề cập đến. Các phương thức phổ biến nhất là:
-
Địa chỉ, thông qua Bộ định vị tài nguyên thống nhất (URL)
-
Các trường trong tiêu đề HTTP
-
Phương thức GET/POST
-
WebSockets
Một phương thức này có thể phù hợp hơn phương thức kia, tùy thuộc vào mục đích của yêu cầu và các tiêu chí khác được nhà phát triển tính đến. Nói chung, các ứng dụng web sẽ sử dụng kết hợp các phương thức, mỗi phương thức sẽ dành cho một trường hợp cụ thể.
Phương thức Chuyển Trạng thái Biểu hiện (REST - Representational State Transfer) được sử dụng rộng rãi để liên lạc trong các ứng dụng web vì nó dựa trên các phương thức cơ bản có sẵn trong HTTP. Tiêu đề của yêu cầu HTTP sẽ bắt đầu bằng một từ khóa xác định thao tác cơ bản sẽ được thực hiện: GET
,POST
, PUT
,DELETE
, v.v. kèm theo một URL tương ứng nơi hành động sẽ được áp dụng. Nếu ứng dụng yêu cầu các thao tác cụ thể hơn với mô tả chi tiết hơn về thao tác được yêu cầu thì giao thức GraphQL có thể sẽ là lựa chọn phù hợp hơn.
Các ứng dụng được phát triển bằng mô hình máy khách/máy chủ có thể sẽ không được ổn định trong giao tiếp. Vì lý do này, máy khách phải luôn áp dụng các chiến lược truyền dữ liệu hiệu quả để tạo sự nhất quán và không gây hại cho trải nghiệm của người dùng.
Phía Máy Chủ
Mặc dù là nhân vật chính trong một ứng dụng web, máy chủ lại là phía thụ động trong giao tiếp và chỉ đáp ứng các yêu cầu của máy khách. Trong từ điển về web, máy chủ có thể mang nghĩa là máy nhận yêu cầu, chương trình xử lý cụ thể các yêu cầu HTTP hoặc tệp lệnh nhân tạo phản hồi cho yêu cầu. Định nghĩa cuối cùng này là phù hợp nhất trong ngữ cảnh kiến trúc của ứng dụng web, nhưng tất cả trong số chúng cũng đều có liên quan chặt chẽ tới nhau. Mặc dù chỉ là một phần trong phạm vi của nhà phát triển máy chủ ứng dụng nhưng ta không thể bỏ qua máy, hệ điều hành và máy chủ HTTP vì chúng thường giao nhau và là nền tảng để chạy máy chủ ứng dụng.
Xử lý Đường dẫn theo Yêu cầu
Máy chủ HTTP (chẳng hạn như Apache và NGINX) thường yêu cầu các thay đổi cấu hình cụ thể để đáp ứng nhu cầu của ứng dụng. Theo mặc định, các máy chủ HTTP truyền thống sẽ liên kết trực tiếp đường dẫn được chỉ ra trong yêu cầu với một tệp trên hệ thống tệp cục bộ. Ví dụ: nếu máy chủ HTTP của một trang web giữ các tệp HTML của nó trong thư mục /srv/www
, một yêu cầu có đường dẫn /en/about.html
sẽ nhận được nội dung của tệp /srv/www/en/ about.html
dưới dạng phản hồi trong trường hợp tệp có tồn tại. Các trang web phức tạp hơn và đặc biệt là các ứng dụng web sẽ cần các phương pháp xử lý tùy chỉnh cho các loại yêu cầu khác nhau. Trong trường hợp này, một phần của việc triển khai ứng dụng sẽ sửa đổi cài đặt máy chủ HTTP để đáp ứng các yêu cầu của ứng dụng.
Ngoài ra, có những khuôn khổ sẽ cho phép ta tích hợp việc quản lý các yêu cầu HTTP và triển khai mã ứng dụng ở cùng một nơi, cho phép nhà phát triển tập trung nhiều hơn vào mục đích của ứng dụng hơn là chi tiết nền tảng. Ví dụ: trong Node.js Express, tất cả ánh xạ yêu cầu và lập trình tương ứng đều được triển khai bằng JavaScript. Vì việc lập trình máy khách thường được thực hiện bằng JavaScript nên nhiều nhà phát triển coi việc sử dụng cùng một ngôn ngữ cho máy khách và máy chủ từ góc độ bảo trì mã là một ý tưởng hợp lý. Các ngôn ngữ khác thường được sử dụng để triển khai phía máy chủ (kể cả là trong khuôn khổ hay trong máy chủ HTTP truyền thống) là PHP, Python, Ruby, Java và C#.
Hệ thống Quản lý Cơ sở Dữ liệu
Nhóm phát triển có toàn quyền quyết định cách mà máy khách nhận được hoặc yêu cầu dữ liệu được lưu trữ trên máy chủ, nhưng có những nguyên tắc chung áp dụng cho hầu hết các trường hợp. Việc giữ nội dung tĩnh—hình ảnh, mã JavaScript và CSS không thay đổi trong thời gian ngắn—dưới dạng tệp thông thường khá là tiện lợi dù là trên hệ thống tệp riêng của máy chủ hay được phân phối trên mạng phân phối nội dung (CDN). Các loại nội dung khác (chẳng hạn như email trong ứng dụng webmail, chi tiết sản phẩm trong ứng dụng mua sắm và nhật ký giao dịch) được lưu trữ thuận tiện hơn trong hệ thống quản lý cơ sở dữ liệu (DBMS).
Loại hệ thống quản lý cơ sở dữ liệu truyền thống nhất là cơ sở dữ liệu quan hệ. Trong đó, người thiết kế ứng dụng sẽ định nghĩa các bảng dữ liệu và định dạng đầu vào được chấp nhận bởi mỗi bảng. Tập hợp các bảng trong cơ sở dữ liệu sẽ chứa tất cả các dữ liệu động được ứng dụng sử dụng và tạo ra. Ví dụ: một ứng dụng mua sắm có thể có một bảng chứa một mục với chi tiết của từng sản phẩm trong cửa hàng và một bảng ghi lại các mặt hàng mà người dùng đã mua. Bảng các mặt hàng đã mua sẽ chứa tham chiếu đến các mục trong bảng sản phẩm và tạo nên mối quan hệ giữa các bảng. Cách tiếp cận này có thể tối ưu hóa việc lưu trữ và truy cập dữ liệu cũng như cho phép truy vấn trong các bảng kết hợp bằng ngôn ngữ được hệ thống quản lý cơ sở dữ liệu chấp nhận. Ngôn ngữ cơ sở dữ liệu quan hệ phổ biến nhất là Ngôn ngữ Truy vấn có Cấu trúc (SQL - Structured Query Language) được sử dụng bởi các cơ sở dữ liệu mã nguồn mở SQLite, MySQL, MariaDB và PostgreSQL.
Một giải pháp thay thế cho cơ sở dữ liệu quan hệ là một dạng cơ sở dữ liệu không yêu cầu cấu trúc cứng nhắc cho dữ liệu. Những cơ sở dữ liệu này được gọi là cơ sở dữ liệu phi quan hệ hoặc đơn giản là NoSQL. Mặc dù chúng có thể kết hợp một số tính năng tương tự như những tính năng được tìm thấy trong cơ sở dữ liệu quan hệ nhưng trọng tâm của chúng sẽ là cho phép ta linh hoạt hơn trong việc lưu trữ và truy cập vào dữ liệu được lưu trữ, chuyển giao nhiệm vụ xử lý dữ liệu đó cho chính ứng dụng. MongoDB, CouchDB và Redis là những hệ thống quản lý cơ sở dữ liệu phi quan hệ phổ biến.
Bảo trì Nội dung
Bất kể là mô hình cơ sở dữ liệu nào được áp dụng, các ứng dụng phải thêm dữ liệu và có thể sẽ phải cập nhật các dữ liệu đó trong suốt vòng đời của ứng dụng. Trong một số ứng dụng (chẳng hạn như webmail), người dùng sẽ tự cung cấp dữ liệu cho cơ sở dữ liệu khi sử dụng máy khách để gửi và nhận thư. Trong các trường hợp khác (chẳng hạn như trong ứng dụng mua sắm), điều quan trọng là phải cho phép người bảo trì ứng dụng sửa đổi cơ sở dữ liệu mà không cần phải lập trình. Do đó, nhiều tổ chức áp dụng một số loại hệ thống quản lý nội dung (CMS) cho phép người dùng không có kỹ thuật có thể quản lý ứng dụng. Vì vậy, đối với hầu hết các ứng dụng web, người ta cần triển khai ít nhất hai loại máy khách: máy khách không có đặc quyền được sử dụng bởi người dùng thông thường và máy khách có đặc quyền được sử dụng bởi người dùng đặc biệt để duy trì và cập nhật thông tin do ứng dụng trình bày.
Bài tập Hướng dẫn
-
Ngôn ngữ lập trình nào được sử dụng cùng với HTML để tạo các máy khách ứng dụng web?
-
Truy xuất ứng dụng web khác với truy xuất ứng dụng gốc như thế nào?
-
Ứng dụng web khác với ứng dụng gốc như thế nào khi truy cập vào phần cứng cục bộ?
-
Hãy trích dẫn một đặc điểm của máy khách ứng dụng web khiến nó khác biệt so với một trang web thông thường.
Bài tập Mở rộng
-
Các trình duyệt hiện đại cung cấp tính năng nào để khắc phục hiệu suất kém của các máy khách ứng dụng web sử dụng nhiều CPU?
-
Nếu một ứng dụng web sử dụng mô hình REST để liên lạc giữa máy khách và máy chủ, phương thức HTTP nào sẽ được sử dụng khi máy khách yêu cầu máy chủ xóa một tài nguyên cụ thể?
-
Hãy kể tên 5 ngôn ngữ lập trình máy chủ được máy chủ HTTP Apache hỗ trợ.
-
Tại sao cơ sở dữ liệu phi quan hệ lại được coi là dễ bảo trì và nâng cấp hơn so với cơ sở dữ liệu quan hệ?
Tóm tắt
Bài học này đã đề cập tới các khái niệm và tiêu chuẩn trong công nghệ và kiến trúc phát triển web. Nguyên tắc ở đây rất đơn giản: trình duyệt web chạy máy khách, giao tiếp với ứng dụng cốt lõi đang chạy trong máy chủ. Mặc dù khá đơn giản về nguyên tắc, các ứng dụng web luôn phải kết hợp nhiều công nghệ để áp dụng nguyên tắc tính toán máy khách và máy chủ trên web. Bài học này đã nhắc tới các khái niệm sau:
-
Vai trò của trình duyệt web và máy chủ web.
-
Các tiêu chuẩn và công nghệ phát triển web phổ biến.
-
Làm thế nào để máy khách ứng dụng web có thể giao tiếp với máy chủ.
-
Các loại máy chủ web và cơ sở dữ liệu máy chủ.
Đáp án Bài tập Hướng dẫn
-
Ngôn ngữ lập trình nào được sử dụng cùng với HTML để tạo các máy khách ứng dụng web?
JavaScript.
-
Truy xuất ứng dụng web khác với truy xuất ứng dụng gốc như thế nào?
Một ứng dụng web là một ứng dụng không được cài đặt. Thay vào đó, các phần của nó chạy trên máy chủ và giao diện máy khách sẽ chạy trong một trình duyệt web thông thường.
-
Ứng dụng web khác với ứng dụng gốc như thế nào khi truy cập vào phần cứng cục bộ?
Tất cả các quyền truy cập vào các tài nguyên cục bộ (chẳng hạn như bộ lưu trữ, máy ảnh hoặc micrô) đều do trình duyệt làm trung gian và yêu cầu phải có sự cho phép rõ ràng của người dùng để có thể hoạt động.
-
Hãy trích dẫn một đặc điểm của máy khách ứng dụng web khiến nó khác biệt so với một trang web thông thường.
Sự tương tác với các trang web truyền thống về cơ bản sẽ bị hạn chế đối với các siêu liên kết và biểu mẫu gửi, trong khi các máy khách ứng dụng web sẽ gần với giao diện ứng dụng thông thường hơn.
Đáp án Bài tập Mở rộng
-
Các trình duyệt hiện đại cung cấp tính năng nào để khắc phục hiệu suất kém của các máy khách ứng dụng web sử dụng nhiều CPU?
Các nhà phát triển có thể sử dụng WebAssembly để triển khai các phần tiêu tốn nhiều CPU của máy khách. Mã WebAssembly nói chung có hiệu suất tốt hơn JavaScript truyền thống vì mã này yêu cầu dịch các chỉ dẫn ít hơn.
-
Nếu một ứng dụng web sử dụng mô hình REST để liên lạc giữa máy khách và máy chủ, phương thức HTTP nào sẽ được sử dụng khi máy khách yêu cầu máy chủ xóa một tài nguyên cụ thể?
REST dựa trên các phương thức HTTP tiêu chuẩn; do đó, ta nên sử dụng phương thức
DELETE
tiêu chuẩn trong trường hợp này.
+. Hãy kể tên 5 ngôn ngữ lập trình máy chủ được máy chủ HTTP Apache hỗ trợ. PHP, Go, Perl, Python, và Ruby.
-
Tại sao cơ sở dữ liệu phi quan hệ được coi là dễ bảo trì và nâng cấp hơn so với cơ sở dữ liệu quan hệ?
Không giống như cơ sở dữ liệu quan hệ, cơ sở dữ liệu phi quan hệ không yêu cầu dữ liệu phải khớp với các cấu trúc cứng nhắc được xác định từ trước, giúp dễ dàng thực hiện các thay đổi trong cấu trúc dữ liệu mà không ảnh hưởng đến dữ liệu hiện có.