В течение 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'!

Комментарии (18)


  1. kloppspb
    26.11.2018 01:44
    +2

    Почему мы всё ещё обсуждаем, использовать 'www' или нет

    Мы? Обсуждаем?
    «Отучаемся говорить за всю сеть» (TM)


    1. iig
      26.11.2018 07:50

      С какой стороны разбивать яйцо, в конце концов?


  1. bano-notit
    26.11.2018 01:50
    +3

    При создании куки можно указать домены на которых она работает, так что не аргумент. Про балансировку тоже не аргумент, всегда можно всю инфраструктуру за определенный прокси поставить, а так же указать несколько ip в dns (как сделал гугл, яша)


  1. andreymal
    26.11.2018 03:58
    +1

    Но куки также отправятся на cdn.example.com, email.example.com, intranet.example.com, thirdpartyservice.example.com и так далее.

    Только в IE11. Chrome, Firefox и Edge так не делают, проверял, и делать так запрещает RFC 6265 (который, внезапно, упомянут в посте)


  1. andreymal
    26.11.2018 04:00
    +1

    Сайт оригинала www.bjornjohansen.no редиректит на bjornjohansen.no, это прекрасно


    1. mk2
      26.11.2018 04:09

      В комментариях к этому посту сам автор говорил, что хотел переключиться на www. К чему это привело:

      By the way: ~90% of all traffic to this site is from search engines. When I moved to www, the traffic almost immediately dropped ~20%. Now, almost two months later, it is still ~10% lower than what is was before I moved.

      Не менее прекрасно.


  1. ARad
    26.11.2018 08:03

    Как насчет национальных имен сайтов? Например на русском языке в национальном домене?
    Например для домена домен.рф. Что добавлять? www.домен.рф или сайт.домен.рф или что-то другое?


    1. Helldar
      26.11.2018 08:55
      +1

      ввв.домен.рф ))


    1. vesper-bot
      26.11.2018 09:52
      +1

      ввп.домен.рф конечно :)


    1. igruh
      26.11.2018 10:58

      ццц, очевидно.


    1. Revertis
      26.11.2018 12:33

      ппп.домен.рф же!
      (Повсеместно Протянутая Паутина)


  1. Firz
    26.11.2018 11:41

    Судя по тому, что видел я, те, кто не понимают(из контекста рекламы/сообщения) что craft.beer — домен, зачастую и на www.vk.com смотрят как на что-то совершенно не связанное с vk.com


    1. pae174
      26.11.2018 18:50

      Это вы ещё не выслушивали удивлений типа
      — А чего это тут написано www.ru — разве пустые доменные имена бывают?


  1. b1ora
    26.11.2018 18:14

    ввв.ленинград.спб.ру


  1. edogs
    26.11.2018 19:36
    -1

    www.site.ru лучше чем site.ru просто потому что при публикации на сторонних ресурсах первое автоматом подсвечивается (даже на хабре), а второе автоматом не подсвечивается (что логично). Данный коммент тому доказательство между прочим.
    Самоочевидно, что подсвеченая ссылка лучше неподсвеченной.
    Поэтому тут речь идет просто о юзер-френдли подходе, писатель адреса сайта на левом форуме не вынужден дописывать http если хочет сделать ссылку, читатели не вынуждены копировать и вставлять адрес для перехода на сайт если писатель http не дописал… ну и немного сео тоже есть, ибо ссылка есть ссылка, а не ссылка ссылкой не является.


    1. andreymal
      26.11.2018 20:02
      +1

      Всё зависит от самого сайта и пряморукости его разработчиков. ВК даже site.ru отлично подсвечивает, в то время как иные сайты даже http://www.site.ru/ не всегда подсвечивают


      1. edogs
        26.11.2018 21:09

        Дело в том, что это не имеет значения.
        Сайты которые подсвечивают site.ru точно так же подсветят и www,site.ru, поэтому они не важны контексте. Сайты которые не подсвечивают httр://www.site.ru вряд ли подсветят и httр://site.ru, поэтому они тоже не важны в этом контексте. В этом контексте важны сайты, которые подсвечивают www.site.ru и не подсвечивают site.ru, потому то что наоборот не делает никто.
        Сайтов которые подсвечивают www.site.ru и не подсвечивают site.ru более чем достаточно, т.к. во-первых это логично — www.edogs.soft понятно что сайт, а edogs.soft совсем не факт; во-вторых де-факто многие распространенные движки, сервисы, форумы, магазины распознают www но не распознают его отсутствие.
        Т.е. в любом случае ориентация на www даст плюс с точки зрения юзер/сео-френдли подхода, бесплатный по сути плюс, пренебрегать которым бессмысленно.


  1. PaulZi
    27.11.2018 18:55

    Проблема определения по тексту, что это сайт достаточно сложная, особенно учитывая появившиеся национальные домены. Даже человеку сложно распознать что «сайт.москва» — это сайт. Было бы здорово, если бы был бы типографский символ обозначающий сайт, примерно также как если вы видите «1989 ?» — вы понимаете что тут цена, и ничего иное.
    Более того, такой символ есть, по нему мы с лёгкостью определяем адреса электронной почты — @.
    Было бы здорово, если бы у человечества возникло соглашение, что если мы пишем просто @сайт.москва — то здесь мы имеем в виду сайт, а не забыли пробел поставить после точки в предложении.