Натисніть посилання. З’явиться сторінка. Але уважно подивіться на адресний рядок.

.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.

Розширення тепер менше говорять про операційну систему. Вони говорять про переваги розробника.

Ця технологія все ще існує. У ній все ще є логіка.

Але сигнал згасає. Ми прагнемо динамічної доставки незалежно від імені файлу. Ці відмінності стають історичними реліквіями.