Нажмите на ссылку. Появится страница. Но внимательно посмотрите на адресную строку.
.htm. .html. .shtml. .asp. .php. .cgi. .pl.
Эти расширения не случайны. Это отпечатки пальцев. Они показывают, как именно сервер за экраном构建了 страницу, прежде чем она достигнет глаз пользователя.
Большинство пользователей игнорируют это. Вам не следует. Понимание этих различий может раскрыть то, как на самом деле работает сеть изнутри. Это объясняет, почему одни сайты загружаются быстро, а другие зависают. Это объясняет уязвимости безопасности. Это объясняет, почему разработчики Microsoft и Linux ведут тихую войну уже десятилетия.
Вот что на самом деле означают эти буквы.
Разделение Htm против Html
В ранние дни Всемирной паутины всё работало на UNIX. UNIX любит длинные имена файлов. Ему нравился .html. Это был стандарт. Статичный. Простой.
Затем появились ПК. DOS. Windows.
Эти системы следуют правилам именования 8.3. Имя состоит из 8 символов. 3 символа отводится под расширение. .html имеет длину 4 символа. Это слишком много. Система «захлебывалась».
Таким образом, веб адаптировался. Остались два расширения: .html и .htm.
В прошлом можно было отличить серверы UNIX от Windows, просто посмотрев на их расширения файлов. Эти дни прошли.
Сегодня это различие несущественно. Сайты, работающие на серверах UNIX, могут использовать .htm. Серверы Windows могут предоставлять .html. Это чисто выбор веб-мастера.
Например, HowStuffWorks работает на UNIX и использует .htm. Почему? Потому что веб-мастер так выбрал. Контент статичен. Файл находится на диске. Сервер его захватывает. Отправляет ваш браузеру как есть. Без обработки. Без размышлений. Просто чтение.
Shtml: Препроцессор
.shtml похож на .html, но работает иначе.
s означает Server Side Includes (SSI, серверные включения).
Сервер ничего не делает для обычных страниц .htm или .html. Он извлекает файл. Отправляет его.
.shtml приостанавливает работу сервера. Проверяет файлы на наличие специальных идентификаторов. Нашел их. Выполняет их.
Представьте веб-сайт, где на каждой странице есть заголовок и подвал.
Если вы хотите изменить логотип, вам нужно отредактировать каждый статичный файл. Тысячи файлов.
Используйте SSI, чтобы сохранить заголовок в отдельном файле. Страница .shtml содержит теги, похожие на . Когда пользователь запрашивает страницу, сервер загружает страницу, добавляет код заголовка, и затем отправляет результат.
Это упрощает обновление всего сайта. Отредактируйте файл заголовка. Все страницы, содержащие SSI, обновятся мгновенно. Это простой трюк. Однако вы видите, что, помимо хранения данных, сервер также выполняет работу.
Asp: Гибкое чудовище от Microsoft
.asp означает Active Server Pages (Активные серверные страницы).
Это ответ Microsoft на динамический контент. Работает на сервере Windows. Это позволяет разработчикам встраивать Visual Basic Scripting Edition (VBScript) или JScript непосредственно в HTML.
Сервер распознает .asp. Он знает, что ему нужно запустить код, прежде чем что-либо отправлять клиенту.
Этот код может читать базу данных. Можно проверить ваше имя пользователя. Можно форматировать контент в зависимости от вошедшего пользователя. Вы получаете большую гибкость.
Но за это приходится платить.
В вашем коде есть ошибка. Если VBScript аварийно завершает работу, страница падает. Сервер возвращает ошибку. Пользователи увидят сломанную страницу. Со статичным HTML этого никогда не происходит. Статичные файлы нельзя «уничтожить».
За свободу приходит ответственность. Страницы ASP мощны. Они также хрупки.
Php, Jsp, Perl: открытые вызовы
Microsoft не одинок. Остальная часть сети создала свои собственные инструменты.
.php — самая популярная замена ASP.
Раньше это было сокращением от «personal homepage» (личная домашняя страница). Сейчас означает просто PHP. Это язык сценариев, предназначенный для встраивания в HTML. Он работает преимущественно на серверах Linux. Он с открытым исходным кодом. Он бесплатный.
.jsp означает JavaServer Pages (Страницы сервера Java). Это ответ Java на ASP. Встраиваемый код — это Java. Работает на сервере, совместимом с Java. Он тяжеловесен. Запуск медленный. Но он надежен. Он используется крупными компаниями, где стабильность важнее скорости.
.pl означает PERL.
PERL — старый язык сценариев. Он известен своей обработкой текста. Файлы .pl обычно представляют собой скрипты, которые динамически создают страницы. Можно сделать всё, что можно сделать с ASP. Это мощно. Он также известен тем, что его трудно читать. Синтаксис плотный. Код выглядит так, будто кошка ходила по клавиатуре.
Cgi: Дикое место
.cgi означает Common Gateway Interface (Общий шлюзовой интерфейс).
Это не язык. Это протокол.
Файлы .cgi могут быть созданы с использованием C++. Можно также писать на PERL. Можно также писать на Python. Их можно создать практически с помощью чего угодно, что может быть скомпилировано или запущено на сервере.
Сервер обнаруживает запрос .cgi. Запускает исполняемый файл. Исполняемый файл генерирует HTML. Сервер отправляет этот HTML клиенту.
На HowStuffWorks некоторые файлы .cgi на самом деле являются скомпилированным кодом C++. Это очень быстро. Сложность высока.
Почему вам стоит об этом беспокоиться?
Большинству пользователей всё равно. Они просто хотят, чтобы страница загрузилась.
Однако понимание этих расширений может помочь вам понять архитектуру Интернета.
Статичные страницы (.htm, .html ) безопасны. Они быстры. Стоимость хостинга низкая.
Динамические страницы (.asp, .php, .jsp, .cgi ) очень гибки. Они взаимодействуют с базой данных. Настраивают ваш контент. Они уязвимы для атак внедрения.
Если вы видите .shtml, вы знаете, что ваш сайт использует серверные включения. Это может быть большой сайт со множеством страниц.
Если вы видите .php, вы знаете, что сайт, возможно, работает на Linux. Это может быть программное обеспечение с открытым исходным кодом.
Если вы смотрите на .asp, вы увидите, что, вероятно, это корпорация Microsoft.
Сеть не монолитна. Это лоскутное одеяло технологий. Расширение — это шов.
В следующий раз, когда вы нажмете на ссылку, посмотрите на конец.
Что это расширение говорит нам о машине, ожидающей с другой стороны?
Ничего не гарантировано. Интернет размывает эти границы. Сервер Linux может обслуживать .htm. Серверы Windows могут предоставлять .php.
Расширения теперь меньше говорят об операционной системе. Они говорят о предпочтениях разработчика.
Эта технология всё ещё существует. В ней всё ещё есть логика.
Но сигнал затухает. Мы стремимся к динамической доставке независимо от имени файла. Эти различия становятся историческими реликвиями.

























