HTML 1.0 is HTML 4.01 rewritten as XML. As an XML language, the requirements are much stricter. In a nutshell:
- Every element in the XHTML language must be lowercase.
- Every attribute must be quoted.
- Each element must either have an opening tag and a closing tag or close itself
These are the most obvious differences between XHTML and HTML. Note there are three "document type definitions", or DTD's, for HTML (Frameset, Transitional, and Strict), so there are likewise three DTD's for XHTML.
XHTML 1.1 is a modified version of XHTML 1.0 Strict, designed to allow for other XML languages to mix in cleanly. This means support for features such as MathML (mathematics in web pages).
XHTML 1.1 (and optionally, XHTML 1.0) must be served with a different content-type than HTML. XHTML may be served with "application/xhtml+xml", "application/xml", or "text/xml".
Now, why would you want to use it?
The strictness of XML forces you to be very careful in how you code your pages. The end result is that it is (usually) very difficult for any browser to render your page differently than the W3C Recommendations for XHTML and HTML indicate.
At present, it's probably better to use HTML 4.01 unless XHTML 1.0+ is necessary. HTML 4.01 is almost as demanding as XHTML 1.0, and the text/html content-type is still the most commonly supported for web pages.
But if you're interested in learning XML, XHTML is an excellent starting point.
Both the HTML & CSS forum and the XML forum welcome XHTML-related questions.
Note the following threads as well for further information: