Потому что часто в наше время HTML-страницы генерируются динамически.
В большинстве случаев расширение описывает производителя HTML-страницы. Например, .asp означает, что страница была сгенерирована ASP- кодом (программный код, встроенный в страницу). То же самое для .jsp, Java Server Pages, которые находятся на страницах сервера, содержащих смесь кода HTML и Java. Есть много других расширений, которые используют тот же механизм (.do, .aspx, .cf, ...)
В конце концов, все, что получает браузер - это HTML, но вся компиляция и логика были запущены на серверах.
Для www.mydomain.com это фактически означает, что вы обращаетесь к серверу (или маршрутизатору) с именем "www" в домене mydomain.com. Хотя это соглашение, вы не обязаны следовать ему. Домены (в записях DNS) можно настроить так, чтобы они говорили «если не указано явное имя сервера, отправляйте запросы на веб-сервер»).
Вы также можете дать любое другое имя веб-серверу и сделать его известным как, например, http://mywebserver.mydomain.com .
Обратите внимание, что внешнее имя (www, mywebserver) в большинстве случаев не относится к физическому имени веб-сервера. На больших сайтах несколько серверов обрабатывают запросы, приходящие к одному имени.