HTML

**HTML** (viết tắt của từ Hyper Text Markup Language , hay còn gọi là "Ngôn ngữ Đánh dấu Siêu văn bản") là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web trên World Wide Web. Nó có thể được trợ giúp bởi các công nghệ như CSS và các ngôn ngữ kịch bản giống như JavaScript.

Các trình duyệt web nhận tài liệu HTML từ một web server hoặc một kho lưu trữ cục bộ và render tài liệu đó thành các trang web đa phương tiện. HTML mô tả cấu trúc của một trang web về mặt ngữ nghĩa và các dấu hiệu ban đầu được bao gồm cho sự xuất hiện của tài liệu.

Các phần tử HTML là các khối xây dựng của các trang HTML. Với cấu trúc HTML, hình ảnh và các đối tượng khác như biểu mẫu tương tác có thể được nhúng vào trang được hiển thị. HTML cung cấp một phương tiện để tạo tài liệu có cấu trúc bằng cách biểu thị ngữ nghĩa cấu trúc cho văn bản như headings, paragraphs, lists, links, quotes và các mục khác. Các phần tử HTML được phân định bằng các *thẻ*, được viết bằng dấu ngoặc nhọn. Các thẻ như  và  giới thiệu trực tiếp nội dung vào trang. Các thẻ khác như  bao quanh và cung cấp thông tin về văn bản tài liệu và có thể bao gồm các thẻ khác làm phần tử phụ. Các trình duyệt không hiển thị các thẻ HTML, nhưng sử dụng chúng để diễn tả nội dung của trang.

HTML có thể nhúng các chương trình được viết bằng scripting như JavaScript, điều này ảnh hưởng đến hành vi và nội dung của các trang web. Việc bao gồm CSS xác định giao diện và bố cục của nội dung. World Wide Web Consortium (W3C), trước đây là đơn vị bảo trì HTML và là người duy trì hiện tại của các tiêu chuẩn CSS, đã khuyến khích việc sử dụng CSS trên HTML trình bày rõ ràng 

## Lịch sử

### Phát triển

Năm 1980, nhà khoa học máy tính Tim Berners-Lee, một nhà thầu tại CERN, đã đề xuất và tạo mẫu ENQUIRE, một hệ thống cho các nhà nghiên cứu CERN sử dụng và chia sẻ tài liệu. Năm 1989, Berners-Lee đã viết một bản ghi nhớ đề xuất một hệ thống siêu văn bản dựa trên Internet. Berners-Lee xác định rõ HTML và viết phần mềm trình duyệt và máy chủ vào cuối năm 1990. Năm đó, Berners-Lee và kỹ sư hệ thống dữ liệu CERN Robert Cailliau đã hợp tác để cùng yêu cầu tài trợ, nhưng dự án không được CERN chính thức thông qua. Trong ghi chú cá nhân của mình từ năm 1990, ông đã liệt kê "một số trong nhiều lĩnh vực mà siêu văn bản được sử dụng" và đặt một cuốn bách khoa toàn thư lên hàng đầu

Mô tả HTML công khai đầu tiên là một tài liệu có tên "HTML Tags", lần đầu tiên được đề cập trên Internet bởi Tim Berners-Lee vào cuối năm 1991. Nó mô tả 18 phần tử bao gồm thiết kế ban đầu, tương đối đơn giản của HTML. Ngoại trừ thẻ siêu liên kết, chúng bị ảnh hưởng mạnh bởi SGMLguid, một định dạng tài liệu dựa trên Standard Generalized Markup Language (SGML) tại CERN. Mười một trong số các phần tử này vẫn tồn tại trong HTML 4.

HTML là một ngôn ngữ đánh dấu mà các trình duyệt web sử dụng để giải thích và soạn văn bản, hình ảnh và các tài liệu khác thành các trang web trực quan hoặc nghe được. Các đặc điểm mặc định cho mọi mục của đánh dấu HTML được xác định trong trình duyệt và các đặc điểm này có thể được thay đổi hoặc nâng cao bằng cách sử dụng thêm CSS của nhà thiết kế trang web. Nhiều thành phần văn bản được tìm thấy trong báo cáo kỹ thuật 1988 ISO  TR 9537 *Techniques for using SGML*, lần lượt đề cập đến các tính năng của các ngôn ngữ định dạng văn bản ban đầu, chẳng hạn như được sử dụng bởi lệnh RUNOFF được phát triển vào đầu những năm 1960 cho hệ điều hành CTSS (Compatible Time-Sharing System): các lệnh định dạng này bắt nguồn từ các lệnh được sử dụng bởi các bộ sắp chữ để định dạng tài liệu theo cách thủ công. Tuy nhiên, khái niệm SGML về đánh dấu tổng quát dựa trên các phần tử (các phạm vi được chú thích lồng nhau với các thuộc tính) chứ không chỉ đơn thuần là các hiệu ứng in, với sự phân tách của cấu trúc và đánh dấu, HTML đã được chuyển dần theo hướng này với CSS.

Berners-Lee xem xét HTML là một ứng dụng của SGML. Nó chính thức được định nghĩa như vậy bởi Internet Engineering Task Force (IETF) với việc xuất bản vào giữa năm 1993 về đề xuất đầu tiên cho một đặc tả HTML, Bản thảo trên Internet "Hypertext Markup Language (HTML)" của Berners-Lee và Dan Connolly, bao gồm định nghĩa kiểu SGML Document type definition để xác định ngữ pháp. Bản dự thảo hết hạn sau sáu tháng, nhưng đáng chú ý vì nó đã thừa nhận thẻ tùy chỉnh của trình duyệt NCSA Mosaic để nhúng hình ảnh trong dòng, phản ánh triết lý của IETF về việc dựa trên các tiêu chuẩn trên các nguyên mẫu thành công. Tương tự, Bản thảo Internet cạnh tranh của Dave Raggett, "HTML+ (Hypertext Markup Format)", ừ cuối năm 1993, đề xuất tiêu chuẩn hóa các tính năng đã được triển khai như bảng và biểu mẫu điền vào.

Sau khi các bản thảo HTML và HTML+ hết hạn vào đầu năm 1994, IETF đã tạo một HTML Working Group, nhóm này vào năm 1995 đã hoàn thành "HTML 2.0", đặc tả HTML đầu tiên dự định sẽ được coi là tiêu chuẩn dựa trên việc triển khai trong tương lai.

Sự phát triển hơn nữa dưới sự bảo trợ của IETF đã bị đình trệ bởi các lợi ích cạnh tranh.  các đặc tả ký thuật HTML đã được duy trì, với đầu vào từ các nhà cung cấp phần mềm thương mại, bởi  World Wide Web Consortium (W3C). Tuy nhiên, vào năm 2000, HTML cũng đã trở thành tiêu chuẩn quốc tế (ISO/IEC 15445:2000). HTML 4.01 được xuất bản vào cuối năm 1999, với các bản tiếp theo được xuất bản đến năm 2001. Năm 2004, sự phát triển bắt đầu trên HTML5 trong Web Hypertext Application Technology Working Group (WHATWG), nhóm này đã trở thành một nhóm có thể phân phối chung với W3C vào năm 2008, và được hoàn thiện và chuẩn hóa trên Ngày 28 tháng 10 năm 2014.

### Dòng thời gian các phiên bản HTML
**HTML 1**

HTML 1 được tạo ra bởi Sir Tim Berners-Lee **năm 1993**. Phiên bản này đã thiết lập một cơ sở cho việc tạo ra các trang web tĩnh đơn giản bằng cách sử dụng các thẻ đánh dấu để định dạng văn bản và tạo liên kết giữa các trang. Một số thẻ cơ bản đã được giới thiệu trong HTML 1 bao gồm `<html>`, `<head>`, `<title>`, `<body>`, và `<a>` để tạo liên kết.

Mặc dù HTML 1 rất đơn giản và hạn chế so với các phiên bản sau này, nhưng nó đã đóng một vai trò quan trọng trong việc khởi đầu sự phát triển của World Wide Web. Nó cho phép người sáng tạo tạo ra những trang web đầu tiên để chia sẻ thông tin và tạo liên kết trên Internet. Các trình duyệt đầu tiên như NCSA Mosaic và Lynx đã hỗ trợ HTML 1, mở cửa sổ cho việc trình bày thông tin trực tuyến.

HTML 1 là bước đầu tiên và quan trọng trong hành trình phát triển HTML và web, và nó đã có một tầm ảnh hưởng to lớn đối với sự phát triển của Internet như chúng ta biết ngày nay.

#### HTML 2
:; 4 tháng 11 năm 1995: HTML 2.0 được phát hành như . Thêm các khả năng bổ sung của RFCs:
::* 25 tháng 11 năm 1995:  (upload dựa trên form)
::* Tháng 5 năm 1996:  (bảng)
::* Tháng 8 1996:  (client-side image maps)
::* Tháng 1 năm 1997:  (Toàn cầu hóa)

#### HTML 3
:; 14 tháng 1 năm 1997: HTML 3.2 được phát hành như một W3C Recommendation. Đây là phiên bản đầu tiên được phát triển và chuẩn hóa độc quyền bởi W3C, vì IETF đã đóng cửa HTML Working Group vào 12 tháng 9 năm 1996.
::Tên mã ban đầu "Wilbur", HTML 3.2 đã loại bỏ hoàn toàn các công thức toán học, điều chỉnh sự chồng chéo giữa các phần mở rộng độc quyền khác nhau và sử dụng hầu hết các thẻ đánh dấu trực quan của Netscape. Các blink element của Netscape và  marquee element của Microsoft đã bị bỏ qua do thỏa thuận chung giữa hai công ty. Đánh dấu cho các công thức toán học tương tự như trong HTML đã không được chuẩn hóa cho đến 14 tháng sau trong MathML.

#### HTML 4
:
:; 18 tháng 12 năm 1997: HTML 4.0 được phát hành như một W3C Recommendation. Nó đề xuất 3 biến thể:
::* Strict, trong đó các phần tử không dùng nữa bị cấm
::* Transitional, trong đó các phần tử không dùng được cho phép
::* Frameset, trong đó chủ yếu chỉ cho phép các phần tử liên quan đến frame
::Tên mã ban đầu "Cougar", HTML 4.0 áp dụng nhiều loại phần tử và thuộc tính dành riêng cho trình duyệt, nhưng đồng thời tìm cách loại bỏ các tính năng đánh dấu trực quan của Netscape bằng cách đánh dấu chúng là không dùng nữa để thay thế cho các style sheets. HTML 4 là một ứng dụng SGML tuân theo ISO 8879&nbsp;– SGML.
:; 24 tháng 4 năm 1998: HTML 4.0 đã được phát hành lại với các chỉnh sửa nhỏ mà không tăng số hiệu phiên bản.
:; 24 tháng 12 năm 1999: HTML 4.01 được phát hành như một W3C Recommendation. Nó cung cấp ba biến thể giống như HTML 4.0 và errata cuối cùng của nó được xuất bản vào ngày 12 tháng 5 năm 2001.  
:; Tháng 5 năm 2000: ISO/IEC 15445:2000 ("ISO HTML", dựa trên HTML 4.01 Strict) được phát hành như một chuẩn quốc tế ISO/IEC. Trong ISO, tiêu chuẩn này thuộc phạm vi của ISO/IEC JTC1/SC34 (ISO/IEC Joint Technical Committee 1, Subcommittee 34&nbsp;– Document ngôn ngữ mô tả và xử lý).
:: Sau HTML 4.01, không có phiên bản HTML mới nào trong nhiều năm vì sự phát triển của ngôn ngữ song song, dựa trên XML XHTML đã chiếm lĩnh HTML Working Group của W3C từ đầu và giữa những năm 2000.

#### HTML 5

:;28 tháng 10 năm 2014: HTML5 được phát hành như một W3C Recommendation.
:;1 tháng 11 năm 2016: HTML 5.1 được phát hành như một W3C Recommendation.
:;14 tháng 12 năm 2017: HTML 5.2 được phát hành như một W3C Recommendation.

### Dòng thời gian các bản dự thảo HTML
; Tháng 10 năm 1991: *HTML Tags*, một tài liệu CERN không chính thức liệt kê 18 thẻ HTML, lần đầu tiên được đề cập trước công chúng.
; Tháng 6 năm 1992: Dự thảo không chính thức đầu tiên của HTML DTD, với bảy lần sửa đổi tiếp theo (15 tháng 7, 6 tháng 8, 18 tháng 8, 17 tháng 11, 19 tháng 11, 20 tháng 11, 22 tháng 11)
; Tháng 11 năm 1992: HTML DTD 1.1 bản đầu tiên có số phiên bản, dựa trên các bản sửa đổi RCS, bắt đầu bằng 1.1 thay vì 1.0), một dự thảo không chính thức 
; Tháng 6 năm 1993: Hypertext Markup Language được phát hành bởi IETF IIIR Working Group như một Dự thảo Internet (một đề xuất thô cho một tiêu chuẩn). Nó đã được thay thế bằng một phiên bản thứ hai một tháng sau đó.
; Tháng 11 năm 1993: HTML+ được phát hành bởi IETF như một Dự thảo Internet và là một đề xuất cạnh tranh với dự thảo Hypertext Markup Language. Nó hết hạn vào tháng 7 năm 1994.
; Tháng 11 năm 1994: Dự thảo đầu tiên (revision 00) của HTML 2.0 phát hành bởi IETF (được gọi là "HTML 2.0" từ revision 02), cuối cùng dẫn đến việc xuất bản  vào tháng 11 năm 1995.
; Tháng 4 năm 1995 (tác giả tháng 3 năm 1995): HTML 3.0 đã được đề xuất như một tiêu chuẩn cho IETF, nhưng đề xuất này đã hết hạn sau năm tháng (28 tháng 9 năm 1995) mà không có thêm hành động nào. Nó bao gồm nhiều khả năng có trong đề xuất HTML+ của Raggett, chẳng hạn như hỗ trợ các bảng, dòng văn bản xung quanh các số liệu và hiển thị các công thức toán học phức tạp.
:W3C đã bắt đầu phát triển trình duyệt Arena của riêng mình để làm nền tảng thử nghiệm cho HTML 3 và Cascading Style Sheets, nhưng HTML 3.0 đã không thành công vì một số lý do. Dự thảo được coi là rất lớn với 150 trang và tốc độ phát triển trình duyệt, cũng như số lượng các bên quan tâm, đã vượt xa các nguồn lực của IETF. Các nhà cung cấp trình duyệt, bao gồm Microsoft và Netscape vào thời điểm đó, đã chọn triển khai các tập hợp con khác nhau của các tính năng dự thảo của HTML 3 cũng như giới thiệu các phần mở rộng của riêng họ cho nó. (xem Cuộc chiến trình duyệt). Những phần mở rộng này bao gồm để kiểm soát các khía cạnh phong cách của tài liệu, trái với "niềm tin [của cộng đồng kỹ sư hàn lâm] rằng những thứ như màu văn bản, kết cấu nền, kích thước font chữ và font face chắc chắn nằm ngoài phạm vi của một ngôn ngữ khi mục đích duy nhất của họ là để chỉ định cách sắp xếp tài liệu." Dave Raggett, người đã từng là Thành viên của W3C trong nhiều năm, đã nhận xét chẳng hạn: "Ở một mức độ nhất định, Microsoft đã xây dựng hoạt động kinh doanh của mình trên Web bằng cách mở rộng các tính năng HTML."

; Tháng 1 năm 2008: HTML5 được giới thiệu như một Working Draft bởi W3C.
:Mặc dù cú pháp của nó gần giống với SGML, HTML5 đã từ bỏ bất kỳ nỗ lực nào để trở thành một ứng dụng SGML và đã xác định rõ ràng việc tuần tự hóa "html" của riêng nó, ngoài việc tuần tự hóa XHTML5 dựa trên XML thay thế.
; &nbsp;HTML5 – Last Call
:Ngày 14 tháng 2 năm 2011, W3C đã mở rộng điều lệ của HTML Working Group của mình với các mốc quan trọng rõ ràng cho HTML5. tháng 5 năm 2011, nhóm làm việc đã nâng cấp HTML5 thành "Last Call", một lời mời đến các cộng đồng trong và ngoài W3C để xác nhận tính hợp lý về mặt kỹ thuật của đặc tả. W3C đã phát triển một bộ thử nghiệm toàn diện để đạt được khả năng tương tác rộng rãi cho đặc điểm kỹ thuật đầy đủ vào năm 2014, đó là ngày mục tiêu để đề xuất. Tháng 1 năm 2011, WHATWG đổi tên "HTML5" living standard của họ thành "HTML". Tuy nhiên, W3C vẫn tiếp tục dự án phát hành HTML5.
; &nbsp;HTML5 – Candidate Recommendation
:Tháng 7/2012, WHATWG và W3C quyết định về mức độ tách biệt. W3C sẽ tiếp tục công việc đặc tả HTML5, tập trung vào một tiêu chuẩn xác định duy nhất, được coi là "snapshot" của WHATWG. Tổ chức WHATWG sẽ tiếp tục công việc của mình với HTML5 như một "Living Standard". Khái niệm về một living standard là không bao giờ hoàn thiện và luôn được cập nhật và cải thiện. Các tính năng mới có thể được thêm vào nhưng chức năng sẽ không bị xóa.
:Tháng 12 năm 2012, W3C đã chỉ định HTML5 là Candidate Recommendation. Tiêu chí để tiến tới W3C Recommendation là "cả hai triển khai và tương tác hoàn chỉnh 100%".
; &nbsp;HTML5 – Proposed Recommendation and Recommendation
:Tháng 9 năm 2014, W3C đã chuyển HTML5 sang Proposed Recommendation.
:Ngày 28 tháng 10 năm 2014, HTML5 đã được phát hành dưới dạng W3C Recommendation ổn định, có nghĩa là quá trình đặc tả đã hoàn tất.
#### Đánh dấu
Có bốn loại phần tử đánh dấu trong HTML:
* Đánh dấu *Có cấu trúc* miêu tả mục đích của phần văn bản
* Đánh dấu *trình bày* miêu tả phần hiện hình trực quan của phần văn bản bất kể chức năng của nó là gì (ví dụ,  sẽ hiển thị đoạn văn bản **boldface**) (Chú ý là cách dùng đánh dấu trình bày này bây giờ không còn được khuyên dùng mà nó được thay thế bằng cách dùng CSS),
* Đánh dấu *liên kết ngoài* chứa phần liên kết từ trang này đến trang kia (ví dụ,  sẽ hiển thị từ Wikipedia như là một liên kết ngoài đến một URL) cụ thể, và
* Các phần tử *thành phần điều khiển* giúp tạo ra các đối tượng (ví dụ, các nút và các danh sách).

## Tách phần trình bày và nội dung
Nỗ lực tách phần nội dung ra khỏi phần hình thức trình bày của trang HTML đã đưa đến sự xuất hiện của các chuẩn mới như XHTML. Các chuẩn này nhấn mạnh vào việc sử dụng thẻ đánh dấu vào việc xác định cấu trúc tài liệu như phần đề mục, đoạn văn, khối văn bản trích dẫn và các bảng, chứ không khuyên dùng các thẻ đánh dấu mang tính chất trình bày trực quan, như `&lt;font>`, `&lt;b>` (in đậm), và `&lt;i>` (in nghiêng). Những mã mang tính chất trình bày đó đã được loại bỏ khỏi HTML 4.01 Strict và các đặc tả XHTML nhằm tạo điều kiện cho CSS. CSS cung cấp một giải pháp giúp tách cấu trúc HTML ra khỏi phần trình bày của nội dung của nó. Xem phần tách nội dung và trình bày.

## Cấu trúc trang HTML

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
    <script data-ad-client="ca-pub-2883196244040435" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</head>
<body>
</body>
</html>
```


## Xem thêm
 
* C-HTML
* DHTML
* Mã hóa trong HTML
* Màu sắc trên Web
* Nội dung không có trở ngại
* Phần tử HTML
* Phần tử khối
* Script trong HTML
* Tim Berners-Lee
* Trình biên tập HTML
* Unicode và HTML
* XHTML
* XML

## Tham khảo

## Liên kết ngoài

 
* Đặc tả ngôn ngữ HTML 4.01 Tiếng Anh
* ASCII - ISO 8859-1 Table with HTML Entity Names 
* W3C's HTML Validator
* HTML/XHTML Validator Project on SourceForge
* HTML Tag Reference and Tutorials 
* HTML Discussion Forum 
* The Importance of HTML Validation
* Programming:HTML - Wikibooks
* HTML+ Discussion Document (obsolete)
* NCSA's Beginner's Guide to HTML