Sobes.tech
Junior

Quali sono le differenze tra HTML5, HTML4.01 e XHTML 1.0?

sobes.tech AI

Risposta dell'AI

HTML5 amplia le capacità di HTML4.01 con tag semantici (<nav>, <article>, <aside>), nuovi tipi di input per i moduli (email, date, range), supporto multimediale nativo (<video>, <audio>), API per il lavoro offline (Service Worker, Cache Storage) e lo storage locale (localStorage, sessionStorage), oltre a un'API per i websocket. La sintassi di HTML5 è più flessibile, permette di omettere alcuni tag di chiusura e attributi in certi casi.

XHTML 1.0 è una riformulazione di HTML 4.01 come applicazione XML. La principale differenza è una sintassi più rigorosa: tutti i tag devono essere chiusi (inclusi quelli auto-chiudenti come <br />), tutti gli attributi devono essere tra virgolette, e i nomi di tag e attributi sono sensibili al maiuscolo/minuscolo. L'obiettivo era creare una sintassi più strutturata e valida per una migliore compatibilità con parser XML. Tuttavia, nella pratica, la maggior parte dei browser trattava XHTML come HTML, ignorando le regole rigorose se il documento non veniva inviato con il MIME type application/xhtml+xml.

Confronto in tabella:

Caratteristica HTML4.01 XHTML 1.0 HTML5
Sintassi Più flessibile Rigorosa (basata su XML) Più flessibile di XHTML, strutturata
Chiusura dei tag Non sempre richiesta Sempre richiesta (<br />, <img>) Non sempre richiesta (<p>, <li>, ecc.)
Maiuscole/minuscole Insensibile Sensibile Insensibile
Virgole in attributi Non sempre necessarie Sempre necessarie Non sempre necessarie in certi casi
Supporto media Richiede plugin Richiede plugin Nativo (<video>, <audio>)
Tag semantici Meno (<div>, <span>) Analogo a HTML4.01 Più (<nav>, <article>, <aside>)
Nuove API Limitate Limitate WebSocket, Local Storage, Canvas, SVG
Supporto offline Quasi assente Quasi assente Cache API, Service Worker
Tipo MIME text/html application/xhtml+xml (rigido), text/html (come HTML) text/html
Estendibilità Limitata Basata su XML Tramite API e elementi personalizzati (futuro)

Esempio di sintassi:

<!-- HTML 4.01 -->
<p>Paragrafo.
<img src="image.jpg" alt=Immagine>
<!-- XHTML 1.0 -->
<p>Paragrafo.</p>
<img src="image.jpg" alt="Immagine" />
<!-- HTML5 -->
<p>Paragrafo.
<img src="image.jpg" alt="Immagine">

HTML5 è diventato lo standard de facto per lo sviluppo web, combinando la flessibilità di HTML4.01 con nuove capacità e ereditando in parte le idee di rigore di XHTML, puntando sulla compatibilità.