Antwort: Es gibt keinen !
Ich habe schon viele (teilweise abenteuerliche) Erklärungen gelesen. Aber die richtige war nur selten dabei...
Zuerst mal die Bedeutung von "HTML". Dies ist eine Abkürzung und bedeutet:
HyperText-Markup-Language
Die Existenz der beiden Endungen ist auf folgenden Umstand zurück zu führen:
In den Anfangszeiten von MS-DOS war die maximale Anzahl eines Dateinamens auf 8 Stellen vor dem Punkt, und 3 Stellen nach dem Punkt begrenzt. Deswegen war es nicht möglich, für Web-Dateien die Endung "html" zu benutzen, also nahm man einfach "htm".
Als diese Begrenzung aufgehoben war, benutzten die meisten dann die originale Bezeichnung "html", denn die Dateiendung beschreibt nach wie vor den Inhalt einer Datei (zumindest sollte sie es).
Aus diesem Grund sollte man Dateien, die HTML-Text enthalten und mit einem Internet-Browser geöffnet werden, immer mit der Endung "html" versehen.
Der Ehrlichkeit halber muss ich noch folgendes gestehen:
Ich betreibe sowohl Linux- als auch Windows-Server. Damit ich nun beim Aufruf im Browser ungefähr weiß, von welchem Server eine HTML ausgeliefert wird, bekommen Seiten vom Windows-Server die Endung "htm" und Seiten vom Linux-Server die Endung "html" ('l' für Linux).
Entspricht zwar nicht den Regeln, richtet aber auch keinen Schaden an...
:

