HTML е съкращение от HyperText Markup Language (буквално „Хипертекстов език за маркиране“). Създаден е в края на 80-те години от англичанина Тим Бърнърс-Лий, който се опитва да изнамери нов метод за обмяна на информация с колегите си учени от Европейската Лаборатория по Физика на Елементарните Частици в Женева. Същността на неговия метод е създаване на текстови документи, обвързани помежду си с хипервръзки, които да могат да се прехвърлят чрез мрежата до отдалечен потребител. Така се появява необходимостта от специален език за създаване на този вид документи.

Организацията за стандартизиране на HTML се нарича World Wide Web Consortium (официален сайтwww.w3.org). Към нея се отправят всички предложения за допълване и изменение на HTML.

Последната версия на езика е HTML 4.01. World Wide Web Consortium подготвиха и следващото поколение на HTML, което се нарича XHTML (Extensible HiperText Markup Language).

Между HTML и XHTML съществуват няколко различия:

1. В HTML няма значение дали таговете (командите на езика) се изписват с големи или малки букви. В XHTML има изискване таговете да се изписват с малки букви. Например командата за нов ред e BR, като буквите са затворени в ъглови скоби (както всички команди на езика). В HTML командата може да се изпише така: <BR>. В XHTML е задължително буквите да са малки: <br>.

2. HTML не изисква затварянето на стойностите на командните атрибути в кавички. В XHTML съществува изискване за поставяне на двойни кавички. Например атрибута за ширина на таблица, който е width, ако предположим, че трябва да е със стойност 150 пиксела, може да се изпише в HTML така: width=150. В XHTML стойността на атрибута задължително трябва да е в кавички, т.е. да изглежда така: width=“150″.

3. Почти всички тагове в HTML се въвеждат по двойки – начален и краен таг. Съществуват и няколко команди, които нямат краен (затварящ) таг. В XHTML е задължително всички команди да имат затварящи тагове. Ако командата е без затварящ таг, тогава в отварящия таг се изписва и наклонената на дясно черта за затваряне на тага, като тази черта трябва да е на една стъпка разстояние от края на текста на командата. Например командата за нов ред <br> няма затварящ таг, затова в XHTML нейния вид трябва да е такъв: <br />.

4. На почти всички атрибути в HTML се задава някаква стойност. Съществуват и атрибути които нямат стойност. В XHTML е задължително на всички атрибути да се задава стойност. Щом един атрибут няма стойност в HTML, тогава в XHTML като стойност се задава самото име на атрибута. Например атрибута за премахване сянката на линия е noshade и той няма стойност, затова в XHTML трябва да се изпише така: noshade=“noshade“.