Какой смысл иметь «www» в URL?


238

Кроме исторических причин, есть ли причина иметь «www» в URL?

Должен ли я создать постоянное перенаправление с www.xyz.comна xyz.comили с xyz.comна www.xyz.com? Какой бы вы предложили и почему?



И наоборот, какой смысл не в. Для целей cookie и поддоменов при успешном присутствии в Интернете полезно выделить несколько процессов.
Fiasco Labs

Этот ответ , хотя и не имеет прямого отношения, кажется актуальным.
Skippy le Grand Gourou

Ответы:


202

Одна из причин, по которой вам нужен wwwили какой-то другой поддомен, связана с причудой DNS и записью CNAME.

Предположим, для целей этого примера, что вы работаете с большим сайтом и заключаете договор на хостинг с CDN (Content Distribution Network), такой как Akamai. Обычно вы настраиваете запись DNS для вашего сайта как CNAME по какому-либо akamai.comадресу. Это дает CDN возможность предоставить IP-адрес, близкий к браузеру (в географическом или сетевом выражении). Если вы используете запись A на своем сайте, вы не сможете предложить такую ​​гибкость.

Причудой DNS является то, что если у вас есть запись CNAME для имени хоста, вы не можете иметь никаких других записей для этого же хоста. Однако ваш домен верхнего уровня example.comобычно должен иметь записи NS и SOA. Поэтому вы также не можете добавить запись CNAME для example.com.

Использование www.example.comдает вам возможность использовать CNAME для того, wwwчто указывает на ваш CDN, оставляя при этом необходимые записи NS и SOA example.com. example.comЗаписи, как правило , также запись A , чтобы указать на хост , который будет перенаправлять с www.example.comиспользованием HTTP редиректа.


3
Вы можете предоставить запись CNAME по умолчанию, указывающую на CDN, вам не нужно использовать «www». Это позволяет вашему DNS-серверу иметь записи SOA, NS, CNAME и т. Д. Для одного и того же доменного имени.
Крис С

1
Почему никто не упоминает ALIAS(или ANAMEзаписи) в этой теме? Разве он не достигает тех же результатов, что и CNAME на nakeddomain (кроме вопроса cookie ...)?
Августин Ридингер

3
@AugustinRiedinger: записи ANAME не являются стандартным типом DNS RR. Они являются собственностью конкретных поставщиков услуг.
Грег Хьюгилл

Но порождает ли это какую-либо проблему совместимости или что-то? Есть ли какая-то причина, по которой мы не должны их использовать (кроме того, что они не стандартные, а проприетарные)?
Августин Ридингер

2
@AugustinRiedinger не поддерживается на большинстве DNS- серверов . Но если у вашего провайдера есть DNS-сервер, который поддерживает эти функции, то это не должно создавать проблем с клиентами.
Коен.

104

Примечание. Что касается ратификации и реализации (всеми текущими браузерами, за исключением, возможно, MSIE 11 , см. Комментарии) RFC 6265 в 2011 году, следующее уже не является точным, поскольку файлы cookie по умолчанию никогда не устанавливаются в поддоменах.

Исторически , одна хорошая техническая причина сделать www.example.comканоническим было то, что куки основного домена (то есть example.com) были отправлены всем поддоменам.

Таким образом, если ваш сайт использует куки, они будут отправлены на все его субдомены.

Теперь, это часто имеет смысл, но это положительно вредно, если вы хотите загружать только статические ресурсы, поскольку это просто тратит пропускную способность. Рассмотрите все таблицы стилей и изображения на вашем веб-сайте: обычно нет причин отправлять файлы cookie на сервер при запросе ресурса изображения.

Поэтому хорошее решение состоит в том, чтобы использовать поддомен для статических ресурсов, например static.example.com, чтобы сэкономить пропускную способность, не отправляя файлы cookie. Все изображения и другие статические загрузки могут быть загружены оттуда. Если вы сейчас используете www.example.comдинамический контент, это означает, что куки-файлы нужно только отправлять www.example.com, а не отправлять static.example.com.

Если, однако, example.comваш основной сайт, то куки будут отправлены на все субдомены, в том числе static.example.com.

Теперь это не относится к большинству сайтов, но изменение канонического URL в дальнейшем не является хорошей идеей, поэтому, как только вы согласились, example.comвместо этого www.*вы в основном застряли с этим.

Альтернативой является использование совершенно другого URL для статических ресурсов. Например, использование переполнения стека, использование sstatic.netYouTube ytimg.comи т. Д.


11
Кстати, мне действительно не нравится www.xканонический URL, поэтому лично я, вероятно, использовал бы другой URL для статических ресурсов, если бы я проектировал большой сайт.
Конрад Рудольф

1
@RobinWinslow Но установка Cookes на domain=example.comустановит cookie на домене apex и поддоменах , и способ избежать этого - не использовать домен apex для HTTP. Хотя, согласился, другим способом было бы просто не указывать domainпри настройке cookie. Интересно, изменилось ли это с тех пор, как я написал свой ответ (который предшествовал соответствующему RFC 6265 !), Но я не могу потрудиться посмотреть его сейчас.
Конрад Рудольф

2
Похоже, что поведение, которое я описываю, имело место, по крайней мере, в 2011 году, когда был написан RFC 6265 (скорее как краткое изложение текущего поведения браузера, чем утверждение о том, как они должны работать). К настоящему времени мы можем предположить, что все браузеры будут следовать за ним. См stackoverflow.com/questions/1062963/... и bayou.io/draft/cookie.domain.html . Учитывая это, я думаю, что ваш ответ вводил в заблуждение не менее 7 лет, хотя в некоторых случаях он мог быть точным на момент написания статьи. Не могли бы вы обновить его, чтобы уточнить этот факт?
Робин Уинслоу

2
@RobinWinslow Да, сделаю.
Конрад Рудольф

2
Еще одно доказательство того, что IE11 делает плохо: developer.microsoft.com/en-us/microsoft-edge/platform/issues/…
Робин Уинслоу

12

wwwявляется поддоменом, обычно используемым для веб-сервера в домене вместе с другими для других целей, таких как mailи т. д. В настоящее время парадигма поддоменов не нужна; если вы подключитесь к веб-сайту в браузере, вы получите веб-сайт или отправите почту на сервер, используя его почтовый сервис.

Использование wwwили нет - вопрос личных предпочтений. Противоположные точки зрения можно найти на http://no-www.org/ и http://www.yes-www.org/, однако я считаю, что wwwэто излишне и просто добавляет больше URI.

Большинство серверов отправляют один и тот же сайт в любом случае, но не перенаправляют. В целях SEO выберите один, а затем получите другой, чтобы перенаправить на него. Например, некоторый код PHP для этого:

if (preg_match('/www/', $_SERVER['SERVER_NAME'])) {
  header("Location: http://azabani.com{$_SERVER['REQUEST_URI']}");
  exit;
}

Однако, некоторые причины, способствующие использованию wwwсубдомена, сделанного другими ответчиками, также велики, например, не отправка файлов cookie на статические серверы (кредит Konrad Rudolph ).


2
Похоже, no-www.org перешел на выставленную на продажу припаркованную страницу, где yes-www.org по-прежнему набирает силу . Я предполагаю, что это решает это. Теперь все используют «www».
нуня

9

Это довольно исторически. Когда-то у нас были сайты www.example.com, ftp.example.com, images.example.com, uk.example.com и т. Д., Которые казались логичными и обеспечивали простой метод распределения нагрузки между сервера.

В эти дни я бы просто пошел на example.com для основного сайта и перенаправил на него версию www.

Инструменты Google для веб-мастеров позволяют вам указать предпочитаемый домен , поэтому убедитесь, что вы тоже используете его.

Смотрите также:
https://stackoverflow.com/questions/1109356/www-or-not-www-what-to-choose-as-primary-site-name
https://stackoverflow.com/questions/1884157/to- WWW-или-не-к-WWW


8

Если у вас будут субдомены для других целей (например, в блоге), вы можете различать сайты и иметь wwwпрефикс для обычного сайта. Кроме того, единственная важная вещь - это выбрать один из двух и придерживаться его (по причинам SEO).


1
Я не могу найти ссылку на данный момент, но это также может повлиять на ту же политику происхождения.
Коби

Да, это будет, к сожалению. Вы не можете AJAX www.example.comот example.comили наоборот без чего-то вроде JSONP.
Делан Азабани

7

Я бы сделал первый. wwwКонвенции происходит от первых дней HTTP , где www.cmu.edu и cmu.edu были очень вероятно разные машины.


10
в первые дни вы редко видели запись A для домена - возможно, там была бы запись MX, но у вас там редко был хост.
Джо Х.

2

Вот еще одна небольшая перспектива.

Отсутствие www означает незначительный недостаток, когда речь идет о текстовых средствах массовой информации, будь то печатных или онлайн, и это признает его в качестве веб-адреса. В печати обычно довольно очевидно, что example.com - это веб-адрес, и вы можете добавить штрихи к стилю, чтобы подчеркнуть это. Но обычный текст онлайн? Не так просто. Скорее всего, если вы отправите текстовое сообщение - будь то электронное письмо, твит, публикация в Facebook, SMS или что-то еще - он распознает URL, начинающийся с http: // или www. но не узнает ни одного без них. Таким образом, чтобы превратить URL в кликабельную ссылку, вы должны указать www. или http: // на передней панели, и из двух, www. короче, менее неуклюже на вид и легче для чтения.


2
http://example.com/полностью квалифицирован, тогда www.example.comкак нет. Я предпочитаю полностью квалифицированный подход , потому что он всегда узнаваем как URL , независимо от того , это он https://example.uk/или https://blog.example.eu/или любой другой . Это согласуется с указанием протокола защищенного сайта как HTTPS; www.example.comэто просто домен и ничего не говорит о том, какой протокол следует использовать для доступа к нему.
Джеймс Хей
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.