Pull to refresh

Быть или не быть… Использовать ли www на своём домене?

Reading time 5 min
Views 23K
Original author: Bjørn Johansen
В течение 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 устанавливает файл куки, браузер также отправит этот файл при посещении www.example.com. Звучит неплохо, ведь это тот же сайт, верно? Но куки также отправятся на cdn.example.com, email.example.com, intranet.example.com, thirdpartyservice.example.com и так далее. И многие сторонние сервисы позволяют вам использовать ваш домен именно так.

Файл куки, установленный с хоста www.example.com, *не* будет отправлен ни на какой «братский» хост вроде вышеупомянутых. Ваш браузер понимает, что это не «подсервисы», а абсолютно разные сервисы, которые не должны получить доступ к вашим кукам.

Ненужные куки вредят производительности


Способ работы HTTP и cookies заключается в том, что они отправляются из браузера с каждым запросом на веб-сервер. Это означает, что если ваш сайт устанавливает куки для origin (example.com) этот файл также должен быть отправлен на каждый запрос, который вы делаете, например, на email.example.com или intranet.example.com. Это замедляет связь.

Куки могут прочитать третьи лица


Итак, если веб-сайт совпадает с origin (example.com) и использует систему CMS, то после авторизации он будет выдавать куки в ваш браузер, чтобы держать сессию открытой. Затем, когда вы посетите someinternalservice.example.com, администратор этой службы может прочитать этот файл куки, скопировать его и использовать для входа в корпоративную 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'!
Tags:
Hubs:
+9
Comments 20
Comments Comments 20

Articles