Ngu ngơ học làm web (3) - Cơ bản về HTML, web page, website, web application

tiếp theo của: Ngu ngơ học làm web (2) - Xem một số ứng dụng web
---------

Phần 3. Cơ bản về HTML, web page, website, web application


Vậy cái đầu tiên cần phải học là HTML. Để ý sẽ thấy các tài liệu hướng dẫn luôn viết kèm HTML với CSS, nhưng để đỡ rối, vì là người mới học, còn “ngu ngơ”, nên tạm tách ra để học HTML trước. 

Bước đầu học HTML là học ý nghĩa, mục đích của các thẻ và cố gắng hiểu trình duyệt nó sẽ xử lý cái thẻ đó như thế nào? Rồi dùng đi dùng lại nhiều lần cho nhớ. Học kiểu “nhồi sọ”, xin lỗi “sọ”!

Mở chương trình Notepad, nhập vào nội dung sau:

<!DOCTYPE html>
<html>
<head>
            <meta charset="UTF-8">
            <title>Document</title>
</head>
<body>
            Xin chào!
</body>
</html>

Lưu vào thư mục bất kì (nên tạo một thư mục để chứa các bài thực hành), với tên là trangweb.html. 

Khi lưu, trong mục Save as type, nhớ chọn là All Files (*.*), để máy tính nó không thêm cái đuôi .txt vào tập tin, mục Encoding chọn UTF-8.

Chuột phải vào tập tin trangweb.html, chọn Open with, chọn một trình duyệt bất kì, ví dụ chọn Chrome, xem kết quả.

Trên màn hình của trình duyệt sẽ xuất hiện chữ ‘Xin chào!’

Vậy là đã tạo được một trang web, chạy được, và kết quả là chữ “Xin chào!” xuất hiện trên trình duyệt. Tuy nhiên, địa chỉ trên thanh Address của trình duyệt thì hơi kì cục (ví dụ: file:///D:/html/trangweb.html), nó phải là http:// gì đó chứ, cái này sẽ tìm hiểu ở các phần sau.

Trang web, website, ứng dụng web là gì?

Xem clip sau: Phân biệt web page, website, web application https://www.youtube.com/watch?v=ylbQrYhfa18

Trang web (webpage), là các trang đơn vị để cấu thành website. Ví dụ, trang chủ, trang tin, trang quản trị, trang đăng nhập. Mỗi trang web thường phục vụ cho một mục đích cụ thể. Ví dụ đây là địa chỉ của một trang web: www.congty.com/index.html.

Với người dùng, trang web là một trang thông tin được thể hiện trên trình duyệt. Với hệ thống máy tính, trang web là một tập tin, thường được viết bằng ngôn ngữ HTML. Để tạo ra một trang web, cần kết hợp ngôn ngữ HTML với các thành phần khác như các ngôn ngữ kịch bản (script), các tập tin định dạng (style sheet), hình ảnh.

Trang web thường được chia thành hai loại: trang web tĩnh và trang web động.

Trang web tĩnh: là trang web chứa nội dung cố định, bất kì thời điểm nào khi người dùng truy cập thì nó cũng hiển thị đúng những nội dung như nó vốn có, người dùng không có khả năng tương tác với nó, không sử dụng cơ sở dữ liệu. Công cụ để tạo trang web tĩnh thường là HTML. Đường dẫn của trang web tĩnh trên thanh địa chỉ luôn kết thúc là phần mở rộng của tập tin, ví dụ .html, .php.

Trang web động: là trang web được tạo ra bởi các ngôn ngữ kịch bản (scripting language) và các đoạn mã cho phép người dùng tương tác (thêm, xóa, sửa) với cơ sở dữ liệu tại server, cho phép người dùng tương tác với trang web. Có nhiều ngôn ngữ lập trình để tạo ra các trang web động, ví dụ: PHP, Java, JavaScript, C#, Python.

Website: chưa biết từ tiếng Việt tương đương nên dùng luôn tiếng Anh, website là một tập hợp nhiều trang web, các trang web này được liên kết với nhau (interlinked) theo một cấu trúc cụ thể (well-structured), và nằm trong cùng một domain (hiểu nôm na là nằm trong cùng một thư mục).

Website chứa nhiều thông tin, cung cấp nhiều chức năng khác nhau. Ví dụ đây là địa chỉ của một website: www.congty.com. Có nhiều loại website như: website giới thiệu, website quảng bá sản phẩm, website thương mại điện tử, website tin tức.

Website tĩnh (static website) là website chỉ chứa các trang web tĩnh.

Website động (dynamic website) là website có chứa các trang web động.

Ứng dụng web: là một chương trình ứng dụng, được lưu trên server và chạy trên nền tảng web. Người dùng có thể sử dụng ứng dụng thông qua Internet, Intranet. Để tạo ra ứng dụng web, người ta thường sử dụng các ngôn ngữ lập trình, kết hợp với các framework, các CMS. Ví dụ các ứng dụng web: thư điện tử, bán hàng trực tuyến, diễn đàn, nhật kí mạng, bản đồ, quản lý nhân lực, quản lý y tế và chăm sóc sức khỏe (ví dụ cái ứng dụng openemr đã nói ở Phần 2).

So sánh sự khác nhau giữa website động và ứng dụng web:

Website động
Ứng dụng web
- Cũng cho phép người dùng tương tác và thêm nội dung, tuy nhiên phần lớn nội dung vẫn là do nhà phát triển tạo ra.
- Ít phức tạp và dễ phát triển hơn so với ứng dụng web.
- Hoạt động dựa trên sự tương tác từ người dùng
- Hầu hết nội dung và dữ liệu là do người dùng đóng góp
- Giống như một ứng dụng desktop
- Phức tạp và cần nhiều kĩ năng hơn để phát triển so với website động

Vậy trang web vừa tạo ở trên (trangweb.html) là một trang web tĩnh. Nó được tạo ra bằng ngôn ngữ HTML. À, thế là để tạo được một trang web tĩnh, để học ngôn ngữ HTML, để xuất kết quả, chỉ cần một trình duyệt và một chương trình soạn thảo văn bản là đủ (ví dụ, Chrome và Notepad).

Khi mới học làm web (một vài ngày đầu tiên), nên sử dụng chương trình Notepad. Nó có cái lợi là không phải đi kiếm đâu xa, máy tính chạy Windows nào cũng có Notepad, lập trình bằng Notepad bắt buộc phải gõ từng lệnh, từng thẻ, từng chữ, từng câu, do vậy mau nhớ ngôn ngữ HTML. Ngoài ra nó còn tạo ra cảm giác thú vị, khi từ một đoạn mã có vẻ luộm thuộm, xấu xí, nhưng khi xem trên trình duyệt thì thấy nó đẹp không ngờ.

Phiên bản mới nhất của HTML hiện nay là HTML5, vì vậy sẽ học luôn cái mới nhất cho tiện. Nhớ xem các clip và làm theo, làm theo hai, ba lần càng tốt. Cách học này bắt chước theo cuốn “Ngũ luân thư”.

Trong các bài viết đều có tham khảo các clip, bài viết, hình ảnh, và rất nhiều thứ khác trên mạng. Để tôn trọng vấn đề bản quyền và tôn trọng tác giả nên sẽ ghi rõ liên kết (link) của các tài nguyên. Vừa học vừa thầm cám ơn các tác giả. Mọi người đều có cái gì đó để mình học theo, “nhân vô thập toàn”, làm gì có ai hoản hảo, mình thấy hay thì theo, thấy không hay thì rút kinh nghiệm cho bản thân, quan trọng là họ đã chia sẻ để mình có cái mà học.

Đây là clip số 1: giới thiệu về trang web, do laptrinh.io chia sẻ trên youtube.

Đây là clip số 2: giới thiệu về công cụ và môi trường.

Theo clip số 2, để lập trình web tĩnh, chỉ cần Sublime Text và một trình duyệt là đủ. Lưu ý ở đây là vai trò của Notepad và Sublime Text là như nhau, đều dùng để viết mã, sau đó lưu nội dung đã viết thành một tập tin, vậy thôi. Tuy nhiên Sublime Text giúp viết mã chuyên nghiệp và nhanh hơn rất nhiều. Bạn cũng có thể sử dụng Visual Studio Code (hay gọi tắt là VS Code) để viết mã nhanh và chuyên nghiệp. 

Ở phần trên, đã tạo ra một trang web tĩnh (trangweb.html), tuy nhiên, mới chỉ làm theo vậy thôi, chứ chưa hiểu nội dung từng dòng mã, xem các clip sau để hiểu rõ hơn.

Đây là clip số 3: Tổng quan về một trang web.

Clip số 3 giới thiệu tổng quan các thành phần trong một trang HTML, hướng dẫn cách xem mã nguồn của một trang web (View page source), ý nghĩa của thẻ (tag) <!DOCTYPE html>, thẻ chú thích (comment), thuộc tính của thẻ (attribute). Xem mã nguồn rất quan trọng, nó giúp mình hiểu được họ đã viết mã như thế nào, từ đó bắt chước theo.

Đây là clip số 4: Cấu trúc cơ bản của một trang HTML, giới thiệu các thẻ <html>, <head>, <body>, <meta>, <title>.

Đây là clip số 5, giới thiệu về thẻ tiêu đề (heading): <h1>, <h2>, <h3>, <h4>, <h5>, <h6>; và thẻ hiển thị văn bản <p>.

Đây là clip số 6, hướng dẫn định dạng nội dung văn bản, dùng các thẻ: <strong>, <i>, <strike>, <em>, <sub>, <sup>.

Đây là clip số 7, hướng dẫn hiển thị kí tự đặc biệt.

Đây là clip số 8, một số thẻ định dạng văn bản khác: <blockquote>, <cite>, <address>.

Đây là clip số 9, hướng dẫn tạo một liên kết tới trang web khác, sử dụng thẻ <a>, thuộc tính href, target.

Tới đây, thấy các thẻ có vẻ đã nhiều và khó nhớ. Tất nhiên cứ làm nhiều lần thì sẽ nhớ, nó sẽ đi vào đầu mình khi nào không hay. Tuy nhiên, để ý là bản thân các thẻ, hay từ khóa, tự nó đã nói lên ý nghĩa, vì vậy nên bỏ thêm một chút thời gian để tìm hiểu về nghĩa của các thẻ hay các từ khóa, điều này sẽ giúp việc ghi nhớ nhanh hơn và thói quen làm việc có logic, thay vì học thuộc một cách máy móc. Ví dụ, tại sao liên kết tới trang web khác lại dùng thẻ <a>, à là vì thẻ <a> là viết tắt của chữ “anchor” có nghĩa là cái mỏ neo, hay cái móc. Tại sao muốn liên kết tới đâu? lại dùng thuộc tính “href”, à vì href là viết tắt của Hypertext REFerence. Muốn biết mấy thứ này cứ vào trang google, gõ từ khóa href stands for là có kết quả liền.

Đây là clip số 10, hướng dẫn hiển thị hình ảnh trên trang web, sử dụng thẻ <img>.

Đây là clip số 11, hướng dẫn liên kết bằng hình ảnh. Chỉ cần bao hình ảnh bằng thẻ <a>.

Đây là clip số 12, hướng dẫn hiển thị danh sách, sử dụng các thẻ <ul>, <ol>, <li>.

Đây là clip số 13, hướng dẫn tạo bảng, sử dụng các thẻ: <table>, <tr>, <td>, <th>.

Đây là clip số 14, hướng dẫn tạo form, sử dụng các thẻ <input>, <label>, <textarea>, <br>, <button>. Các phương thức gửi dữ liệu của form về  server gồm: GET, POST, PUT, PATCH, DELETE.

Đây là clip số 15, hướng dẫn về các kiểu của thẻ <input>.

Đây là clip số 16, hướng dẫn cách tạo danh sách lựa chọn, sử dụng thẻ <select>.

Khi làm theo 16 clip vừa qua, sẽ nhận thấy chúng ta chỉ làm việc với hai đối tượng là chương trình soạn mã (Notepad, Sublime Text hoặc VS Code) và trình duyệt; ngôn ngữ được sử dụng ở đây là HTML. Nghĩa là chúng ta đã sử dụng ngôn ngữ HTML để bắt trình duyệt thực thi các công việc mà chúng ta muốn.

HTML là viết tắt của HyperText Markup Language, thường được gọi là Ngôn ngữ Đánh dấu Siêu văn bản (hiểu là: ngôn ngữ đánh dấu văn bản thô (plain text) để tạo thành siêu văn bản, dùng các thẻ để đánh dấu). HTML không phải là ngôn ngữ lập trình, nó là ngôn ngữ đánh dấu, hay ngôn ngữ trình bày, được sử dụng kết hợp với các thành phần khác để tạo ra trang web. Để ý điều này để biết, muốn điều khiển trình duyệt một cách linh hoạt cần sử dụng thêm ngôn ngữ khác, ngoài ngôn ngữ HTML.

Trình duyệt là chương trình thực thi các chỉ dẫn trong tập tin HTML. Như ở trên đã nói, hiện nay có các trình duyệt phổ biến là: Chrome, Firefox, Safari, Opera, Internet explorer. Các trình duyệt có thể được cài trên các máy tính, trên thiết bị di động, được nhúng trong các ứng dụng khác, được nhúng trong các thiết bị dân dụng (tủ lạnh, tivi, xe hơi). Mỗi trình duyệt lại có rất nhiều phiên bản. Người dùng có thể sử dụng bất kì trình duyệt nào, với bất kì phiên bản nào. Cần lưu ý vấn đề này trong quá trình làm web, vì nó có liên quan đến tính tương thích, kết quả hiển thị.

[Xem và làm theo khóa học HTML của cione, giảng chi tiết hơn chút xíu]

- 1. HTML là gì?

- 2. Làm quen với HTML

- 3. Phần tử và thuộc tính

- 4. Tiêu đề và đoạn

- 5. Định dạng đoạn

- 6. Thẻ diễn giải nội dung

- 7. Danh sách

- 8. Hình ảnh

- 9. Hình ảnh (tt)

- 10. Thẻ Object, embed

- 11. Thẻ video

- 12. Nhúng trang lồng nhau (iframe)
https://www.youtube.com/watch?v=wmHU9V2CQAA&index=12&list=PL75xdq9Y-GaTpxBQSzqEsFhAQSbsF_bpP

- 13. Các thành phần của một liên kết

- 14. Tạo ra một liên kết

- 15. Thực hành tạo một liên kết

- 16. Thuộc tính target của một liên kết

- 17. Liên kết tới các fragment

- 18. Bảng

- 19. Tạo bảng có ngữ nghĩa

- 20. Form

- 21. Radio,  checkbox

- 22. Nhóm các control


Hai nhiệm vụ quan trọng của HTML cần nhớ là “cấu trúc” (structure) và “ngữ nghĩa” (meaning).

– Cấu trúc nghĩa là sử dụng HTML để tạo ra bố cục của nội dung trang web.

– Ngữ nghĩa là sử dụng HTML để tạo ra ngữ nghĩa cho nội dung của trang web thông qua ngữ nghĩa của các thẻ. 

Khi thực thi các chỉ dẫn trong tập tin HTML, trình duyệt sẽ thực thi theo trình tự nào? Trải qua những công đoạn nào? Phần tiếp theo sẽ tìm hiểu.
-----------
Cập nhật [23/08/2020]
-----------