Бути чи не бути… Використовувати www на своєму домені?
Протягом 20 років або близько того йде дискусія, чи використовувати www в канонічному імені хоста (CNAME) вашого веб-сайту. Так що, використовувати чи ні?
Хоча багато взаємозамінні використовують терміни «доменне ім’я» і «ім’я хоста», між ними є різниця, і справа не тільки в семантиці. Я трохи спрощуючи цей опис, щоб сконцентруватися на суті.
Для вас як IT-адміністратора вашим доменом буде ваша мережа. Розумно дати назва домену. Для цього пристосована система DNS, тому ви реєструєте доменне ім’я, наприклад, example.com
. Тепер, під цим доменом у вас будуть свої хости. Кожна машина з підключенням до мережі вважається хостом. Машина для обслуговування документів WWW, природно, отримає у вашому домені ім’я хоста www
, так що її повне доменне ім’я (FQDN) www.example.com
. Ви зробите те ж саме і для інших хостів у своїй мережі, у вас є веб-сервер чи ні. Так ви наводьте порядок у своїй мережі.
Щоб перейти до веб-сервера в домені example.com
вам слід звернутися до хосту з ім’ям www.example.com
. До речі, в ті часи, коли по Павутині бродили динозаври, віртуальних хостів не існувало. Кожен веб-сервер обслуговував тільки один веб-сайт (принаймні, на один IP-адресу). Ім’я хоста не мало значення, якщо воно вказувало на правильну IP-адресу.
«Голе доменне ім’я», тобто ім’я домену без ‘www’, як example.com
з точки зору DNS, називається origin. У міру зростання популярності Всесвітньої павутини в середині 1990-х років деякі адміністратори почали вказувати в якості origin той же IP-адресу, що й хост www. Це дозволяє відвідувачам сайту вводити в браузері просто example.com
замість повного імені хоста.
Тоді прийшов SEO
Оскільки example.com
і www.example.com
можуть вказувати на різні IP-адреси, а з січня 1997 року на різні веб-сайти на одному IP-адресі — фахівці з SEO почали нам розповідати, що слід вибрати канонічне ім’я хоста, а інші повинні вказувати туди (з кодом стану HTTP 301).
Мало сенс вибрати одне ім’я. Але яке саме? Для SEO це дійсно не має значення. Головне, щоб було одне. Але крім SEO є й інші проблеми. Читайте далі.
Як люди розуміють URL
Коли я працював в маркетинговому агентстві на рубежі століть, мене турбувало, що люди можуть не зрозуміти, що перед ними адреса Всесвітньої павутини, якщо ми опустимо частина ‘www’. Я маю на увазі, ми тільки почали пропускати “http://”. Крім того, з історичних причин особисто я волів використовувати повне «правильне» ім’я хоста, тобто www.example.com
.
Сьогодні я не думаю, що це важливо. Люди зрозуміють, що це веб-адресу, є там www чи ні, коли перед ними широко відомий домен верхнього рівня. Оскільки одна версія все одно перенаправляє на іншу, не має значення, що ваше канонічне ім’я хоста www.example.com
, а ви використовуєте в друкованій рекламі тільки example.com
заради краси. У той же час, якщо у вас один з тисяч нових доменів верхнього рівня типу .beer, то є сенс додати www з тих же міркувань, що були в маркетингу на рубежі століть.
Без www простіше і красивіше
Мушу визнати: example.com
швидше набирати, легше читати і це просто економія місця. Цілком зрозуміло, що люди почали відкидати www — і просто вказувати origin в якості канонічного імені хоста.
Так чому про це сперечаються до цих пір?
Чому ми все ще обговорюємо, використовувати ‘www’ чи ні? Нехай кожен використовує що хоче, хіба не можна?
Звичайно можна.
Але якщо ви адміністратор веб-сайту, то, ймовірно, хочете зробити обґрунтований вибір і заздалегідь продумати деякі речі. Наприклад, куки.
Куки передаються в піддомени
Куки, встановлені від імені хоста, також будуть встановлені для всіх піддоменів. Тобто якщо сайт example.com
встановлює файл cookie, браузер також відправить цей файл при відвідуванні www.example.com
. Звучить непогано, адже це той же сайт, вірно? Але куки також відправляться на cdn.example.com
, email.example.com
, intranet.example.com
, thirdpartyservice.example.com
і так далі. І багато сторонні сервіси дозволяють вам використовувати ваш домен саме так.
Файл cookie, встановлений з хоста www.example.com
, *не* буде відправлений на «братський» хост кшталт вищезгаданих. Ваш браузер розуміє, що це не «подсервисы», а абсолютно різні сервіси, які не мають отримати доступ до ваших кукам.
Непотрібні cookies шкодять продуктивності
Спосіб роботи HTTP cookies полягає в тому, що вони відправляються з браузера з кожним запитом на веб-сервер. Це означає, що якщо ваш сайт встановлює куки для origin (example.com цей файл також повинен бути відправлений на кожен запит, який ви робите, наприклад, на email.example.com
або intranet.example.com
. Це уповільнює зв’язок.
Куки можуть прочитати треті особи
Отже, якщо веб-сайт збігається з origin (example.com) і використовує систему CMS, то після авторизації він буде видавати куки в ваш браузер, щоб тримати сесію відкритою. Потім, коли ви відвідаєте someinternalservice.example.com
адміністратор цієї служби може прочитати цей файл cookie, скопіювати його і використовувати для входу в корпоративну CMS для example.com
від вашого імені. Те ж саме відноситься і до вендору електронної пошти при відвідуванні email.example.com
або постачальнику CDN, який завантажує ресурси, наприклад, static.example.com
, і так далі.
Якщо ви турбуєтеся про безпеку хоч чогось на example.com
, то обов’язково вкажіть перед ним ‘www’. Якщо навіть це не переконало вас використовувати ‘www’, то я не знаю, що може переконати. Ні HTTPS, ні 2FA не допоможуть, так як цей кукі є чарівним токеном. Однак можуть допомогти інші заходи безпеки, такі як обмеження по IP.
Куки з піддоменів, можуть бути загальними, якщо хочете
Якщо у вас є служба на піддомені, наприклад, sso.example.com
, то RFC 6265 дозволяє встановити куки для origin і зробити його спільним з example.com
або www.example.com
. Таким чином, відмова від «голого домену в якості імені хоста, насправді, дає вам більше гнучкості.
Обмеження DNS
Говорячи про гнучкість, ми повинні знову повернутися до розмови про DNS.
В DNS є обмеження, що origin повинен бути А-записом, тобто вказувати на фіксований IP-адресу.
Коли ваш сайт стає великим, і ви переміщаєте його на хостинг або хочете направити його на файрвол або сервіс захисту від DDoS, то використовуєте запис CNAME, щоб направити ім’я хоста на інший непостійне ім’я хоста, яким керує постачальник залежно від вашого трафіку і потреб.
Але якщо сайт розміщений на голому домені (example.com), ви не можете цього зробити. Однак немає ніякої проблеми вказати в CNAME ім’я хоста з ‘www’. Так що якщо хочете будь-якої гнучкості масштабування, зараз або в майбутньому, слід з самого початку встановити ім’я хоста з ‘www’.
Висновок: вибираємо www
Це важливо, використовуєте ви ‘www’ чи ні. Я згоден, що голі домени виглядають красивіше, але це всього лише практичний питання для адресного рядка браузера. Ви можете використовувати www.example.com
в якості канонічного імені хоста, а в інших місцях просто використовувати голий домен. Користувачів все одно перенаправлять куди треба.
Але важливі аргументи говорять на користь використання повного імені хоста з ‘www’: для продуктивності, безпеки і гнучкості.
Так що раз і назавжди покладемо кінець дискусії: вибір на користь ‘www’!