Mô hình hoạt động của ứng dụng web | Tự học ICT

Một mạng lưới hệ thống web hoạt động giải trí tương đối phức tạp và độc lạ rất nhiều với những loại ứng dụng desktop quen thuộc. Mặc dù hằng ngày bạn vẫn sử dụng trình duyệt – một bộ phận của mạng lưới hệ thống web – bạn hoàn toàn có thể chưa hiểu được phương pháp hoạt động giải trí của cả mạng lưới hệ thống này .Nếu muốn tăng trưởng ứng dụng web ( và những loại ứng dụng có tương quan ), bạn càng cần biết rõ hơn về phương pháp hoạt động giải trí của mạng lưới hệ thống web nói chung .Do đó, nếu bạn chưa từng học hoặc thiết kế xây dựng ứng dụng web, bạn cần hiểu phương pháp hoạt động giải trí của mạng lưới hệ thống web, trước khi đi sâu vào lập trình ứng dụng web với PHP .

Cách thức hoạt động giải trí của mạng lưới hệ thống web

Một mạng lưới hệ thống web thường thì gồm có hai loại chương trình chạy trên những máy tính khác nhau :

  • trình duyệt – loại chương trình chạy trên máy tính của người dùng;
  • chương trình máy chủ web (web server) – loại chương trình chạy trên một máy tính riêng rất mạnh.
  • trình duyệt và chương trình máy chủ web tương tác với nhau qua một mạng truyền thông (thường là mạng tcp/ip), sử dụng giao thức HTTP (Hypertext Transfer Protocol).

Trình duyệt phổ cập bạn hoàn toàn có thể đang sử dụng hàng ngày như Chrome, Firefox, Edge, Opera, Safari. Chương trình sever ít người biết đến hơn. Có thể kể tên những chương trình sever phổ cập như IIS, Apache, NGinx .Trình duyệt và chương trình sever “ chuyện trò ” với nhau bằng cách :

  1. trình duyệt gửi đi các “lệnh” (gọi là truy vấn – HTTP Request);
  2. chương trình máy chủ nhận “lệnh” và sinh ra dữ liệu tương ứng (ở dạng văn bản viết bằng ngôn ngữ HTML), thu thập các file (mã javascript, css, hình ảnh, v.v.);
  3. dữ liệu được “đóng gói” (thành các phản hồi – HTTP Response) và trả lại cho trình duyệt.
  4. trình duyệt sẽ hiển thị dữ liệu nhận được, cũng như thực thi các lệnh (do các file javascript phát ra).

Để dễ tưởng tượng, dưới đây là sơ đồ minh họa hoạt động giải trí của mạng lưới hệ thống web “ truyền thống cuội nguồn ” .mô hình hoạt động của hệ thống web

Tất cả quy trình phức tạp trên được thực hiện tự động và bắt đầu khi người dùng nhập một “địa chỉ web” – Unified Resource Locator hay URL – vào thanh địa chỉ của trình duyệt.

Địa chỉ web hay URL bao gồm một hostname độc nhất trên Internet và đường dẫn tới “tài nguyên” tương ứng (ví dụ, một file) trên máy chủ. Hostname, còn gọi là tên miền (Domain Name), được Dịch vụ Tên miền (Domain Name Service hay DNS) ánh xạ với địa chỉ IP của máy chủ, giúp gói tin HTTP Request đi được từ máy người dùng tới máy chủ.

Trong quy trình trên, nếu trong bất kể một thành phần nào có “ tham chiếu ” tới một file khác, một tiến trình mới sẽ được tự động hóa khởi đầu để lấy file tương ứng .Nói cách khác, để “ tải ” toàn vẹn những gì thiết yếu từ sever về trình duyệt, chương trình trình duyệt hoàn toàn có thể phải phát phát đi hàng trăm HTTP Request ( và nhận về hàng trăm HTTP Response tương ứng ) .Ví dụ, để tải trang web bạn đang xem, nếu không triển khai bất kể kỹ thuật ghép file nào, trình duyệt của bạn sẽ phát về server của chúng tôi khoảng chừng 150 HTTP request để lấy chừng ấy file .Để xem những truy vấn, bạn hoàn toàn có thể mở cửa sổ Developer ( F12 ) của trình duyệt, tab Network và ấn F5 để tải lại trang .

Ứng dụng web

Sau khi đọc phần trên bạn hẳn phân vân, vậy “ ứng dụng web ” mà bạn viết ra bằng PHP, nằm ở đâu ?Ở phần trên bạn hoàn toàn có thể chú ý tất cả chúng ta đang dùng từ “ mạng lưới hệ thống web ” để chỉ tổng hợp trình duyệt – chương trình sever web. Chúng ta dùng thuật ngữ đó để giúp bạn phân biệt với “ ứng dụng web ” mà bạn sẽ xem xét trong phần này .

Hãy nhìn vào bước số 3 trong sơ đồ của hệ thống web: Server giải mã truy vấn và sinh ra HTML tương ứng.

server giải mã truy vấn và sinh htmlTrên trong thực tiễn, mọi chuyện khá phức tạp .Bạn cần biết rằng, những chương trình sever web ( Apache, IIS, NGinx ) thực ra không hề biết gì về chương trình của bạn ! Chúng cũng không hề thực thi được những lệnh do bạn viết ra, dù là bạn dùng ngôn từ lập trình nào đi chăng nữa ! Các chương trình này chỉ có năng lực đọc những file ( văn bản và ảnh ) trên ổ đĩa của sever, đóng gói vào HTTP Response và trả lại trình duyệt !Đây cũng là phương pháp hoạt động giải trí thuở khởi đầu của web : tàng trữ và trả những file HTML cho trình duyệt khi được nhu yếu. Ngày nay, những website như vậy thường được gọi là trang web tĩnh ( static page ), nhằm mục đích phân biệt với những website được tính ra tự động hóa bởi những script mà tất cả chúng ta quen gọi là những ứng dụng web .Tuy nhiên, những chương trình sever đều tương hỗ những chương trình lan rộng ra ( extension hoặc plugin ). Các chính sách thực thi lệnh của người dùng được thực thi bởi những chương trình lan rộng ra .Chương trình dịch của PHP là một chương trình lan rộng ra như vậy. PHP có hai chính sách hoạt động giải trí : hoạt động giải trí độc lập với php.exe và hoạt động giải trí tích hợp với php.dll .Căn cứ vào nhu yếu của người dùng ( trải qua URL ), chương trình sever sẽ biết cần kích hoạt chương trình lan rộng ra nào và chuyển tiếp truy vấn cho nó. Khi này, chương trình lan rộng ra sẽ thực thi lệnh ( thường là những script – file lệnh mã mở, hoặc những file thư viện đã biên dịch ) do người lập trình cung ứng để tự động hóa sinh ra tài liệu ( HTML ). Các script / thư viện do người dùng viết như thế chính là ứng dụng web .Với chính sách như trên, chương trình sever Apache hoàn toàn có thể chạy những script viết bằng ngôn từ PHP ( qua chương trình PHP ) .Đa số những ứng dụng web đều cần tương tác với mạng lưới hệ thống file, thao tác với cơ sở tài liệu, v.v.. Các thao tác này chỉ hoàn toàn có thể được thực thi trải qua script của PHP. Tự bản thân Apache cũng không làm được .

Sơ đồ đơn giản hóa của quá trình này được minh họa trong hình dưới đây:

What can PHP do? | Laxman Prajapati

Các thành phần của một ứng dụng web

Qua hai phần trên bạn đã thấy, ứng dụng web là dạng ứng dụng client / server tương đối phức tạp. Để kiến thiết xây dựng ra một ứng dụng web hoàn hảo yên cầu sự tích hợp của nhiều ngôn từ và công nghệ tiên tiến khác nhau .

Thành phần server được viết bằng một trong số các ngôn ngữ lập trình hỗ trợ web như PHP, C#, Java, Python, JavaScript (Node.js).

Như đã nghiên cứu và phân tích, thành phần server tự nó cũng không phải là một chương trình độc lập mà là thành phần lan rộng ra của một trong số những chương trình sever web. Lựa chọn server và ngôn từ lập trình thường đi thành combo. Ví dụ, PHP thường dùng với Apache hoặc Nginx, C # thường đi cùng IIS .

Người chuyên phát triển thành phần server được gọi là backend developer.

Thành phần client của ứng dụng web là loại “chương trình” đặc biệt chạy bên trong trình duyệt. Thành phần client được tạo ra từ 3 thành phần riêng biệt: nội dung (HTML), hình thức (CSS), tương tác (JavaScript).

Nội dung của client được tạo ra bởi HTML – loại ngôn ngữ đánh dấu siêu văn bản. HTML không phải là một ngôn ngữ lập trình. Nó là một ngôn ngữ giúp tạo ra nội dung.

Hình thức của client được chỉ định bởi CSS – Cascading Style Sheet. CSS cũng không phải là một ngôn ngữ lập trình. Nó là ngôn ngữ cho phép áp dụng các định dạng khác nhau cho nội dung (HTML).

Nếu chỉ có nội dung và hình thức, một “ứng dụng” web sẽ chỉ là tập hợp của các trang web “tĩnh”. Các tương tác với người dùng và nội dung động được tạo ra bởi JavaScript. JavaScript là một ngôn ngữ lập trình thực sự. Điểm đặc thù của JavaScript là nó được dịch và thực thi bên trong trình duyệt.

Người chuyên phát triển thành phần client được gọi là front-end developer.

Người đảm nhiệm được cả hai thành phần được gọi là fullstack developer.

Một thành phần không thể thiếu của ứng dụng web là cơ sở dữ liệu. Hầu như ứng dụng “đàng hoàng” nào cũng cần đến một cơ sở dữ liệu thực sự như MySQL, Oracle hay SQL Server. Ngôn ngữ sử dụng chính cho cơ sở dữ liệu là (các biến thể) SQL.

Qua đây bạn cần nhớ rằng, để học tăng trưởng ứng dụng web thì mình PHP là không đủ !

Các loại ứng dụng web

Ở những quá trình đầu không có khái niệm “ ứng dụng web ”. Internet khi đó chỉ có những website phân phối những website “ tĩnh ” – những website chỉ có nội dung với rất ít tương tác với người dùng .Khi những ngôn từ lập trình Open cho cả client và server, những website dần trở nên “ động ” – chúng không chỉ có nội dung mà còn tương tác với người dùng như những ứng dụng desktop thường thì .Khi những công nghệ tiên tiến mới Open liên tục, khái niệm “ ứng dụng web ” trở nên phức tạp hơn .Thông thường nhất, ứng dụng web được dùng để chỉ loại chương trình mà nội dung được sinh ra qua việc chạy những script trên server. Nội dung chính của loại ứng dụng này là HTML + CSS, còn Javascript đóng vai trò tương hỗ. Đây là dạng ứng dụng cơ bản tất cả chúng ta sẽ học trong lập trình PHP .Trong mạng lưới hệ thống web, ở vị trí của trình duyệt hoàn toàn có thể là một ứng dụng desktop, ứng dụng mobile. Dữ liệu HTML, CSS và Javascript hoàn toàn có thể được thay thế sửa chữa bằng chuỗi văn bản theo định dạng JSON / XML. Tuy nhiên, mô hình thao tác Request – Response là không đổi. Mô hình ứng dụng này được gọi là ứng dụng hướng dịch vụ ( Service-Oriented Application hay SOA ) .Đây là loại ứng dụng web đặc biệt quan trọng khi chỉ có thành phần server hoạt động giải trí như của ứng dụng web thông thường. Ngoài ra, thành phần server cũng không trả về HTML như thường lệ mà trả về JSON hoặc XML. Do vậy thành phần server cũng thường được gọi là Web API .Ứng dụng web cũng dùng để chỉ một loại “ chương trình ” viết trọn vẹn bằng Javascript và thực thi trong trình duyệt. Khi này, những chương trình sever web chỉ làm trách nhiệm cung ứng file javascript cho trình duyệt .Nếu HTML / CSS / Javascript chỉ được tải một lần duy nhất, và những lần sau server chỉ trả lại tài liệu ở dạng JSON / XML ( tức là trang không cần tải lại toàn vẹn ), bạn thu được một loại ứng dụng chạy trên trình duyệt gọi là ứng dụng đơn trang ( Single-page application ) .

Ứng dụng đơn trang cũng thường kết hợp với thành phần server là một Web API.

Kết luận

Trong bài học kinh nghiệm này tất cả chúng ta đã làm quen với phương pháp hoạt động giải trí của mạng lưới hệ thống ứng dụng web :

  • Ứng dụng web là loại ứng dụng client/server phức tạp tạo ra từ nhiều thành phần và nhiều công nghệ khác nhau.
  • Ngôn ngữ và chương trình dịch của PHP tích hợp với chương trình web server tạo ra thành phần server của ứng dụng web.
  • Thành phần client kết hợp HTML với các file tĩnh (CSS, Javascript, hình ảnh) chạy trên trình duyệt.
  • Thành phần server sinh ra HTML và cung cấp các loại file khác cho client qua giao thức HTTP.
  • Ứng dụng web hiện nay cũng được phân chia làm nhiều loại khác nhau.

+ Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
+ Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
+ Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
Cảm ơn bạn!