XHTML
XHTML is a term that was historically used to describe HTML documents written to conform with XML syntax rules.
The following example shows an HTML document and corresponding "XHTML" document, and the accompanying HTTP Content-Type
headers they should be served with.
HTML document
Content-Type: text/html
<!DOCTYPE html>
<html lang=en>
<head>
<meta charset=utf-8>
<title>HTML</title>
</head>
<body>
<p>I am a HTML document</p>
</body>
</html>
XHTML document
Content-Type: application/xhtml+xml
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>XHTML</title>
</head>
<body>
<p>I am a XHTML document</p>
</body>
</html>
In practice, very few "XHTML" documents are served over the web with a Content-Type: application/xhtml+xml
header. Instead, even though the documents are written to conform to XML syntax rules, they are served with a Content-Type: text/html
header — so browsers parse those documents using HTML parsers rather than XML parsers, which can cause a variety of sometimes-very-surprising problems. The problems are described in more details in the following articles:
- Beware of XHTML by David Hammond
- Sending XHTML as text/html Considered Harmful by Ian Hickson
- XHTML's Dirty Little Secret by Mark Pilgrim
- XHTML - What's the Point? by Henri Sivonen
- XHTML is not for Beginners by Lachlan Hunt