When Tim Berners-Lee defined the HTTP protocol and the HTML markup system, he could hardly have expected that the whole world would be talking ".com" 20 years later. The explosion of the Web is without a doubt one of the highlights of the end of the twentieth century.
HTML is a markup system—a set of rules for the structure and the semantics of tags.
It is based on SGML, the Standard Generalized Markup Language—"generalized" in the sense that it has no semantics, only rules for writing. An SGML document is composed of elements. An element is represented by a pair of tags: the opening tag (written <name>) and the closing tag (written </name>). Between these tags is the element's "content", which can contain other tags and/or textual content. An element can have any number of metadata called attributes. Attributes take the form of "key—value" pairs written within the opening tag. Their number and their order are arbitrary.
An SGML document may be accompanied by a Document Type Definition (DTD), included in the file or stored in an external file. This DTD is a set of data of two types: first, a list of all the elements allowed in the SGML document, together with their attributes and the types of data that may have these attributes; second, a list of rules for the behavior of the elements with one another. We can specify, for example, that a given element may contain another given element a certain number of times, or that it must be empty, or that ...