Слеш в конце URL-адреса, нужен ли
он? |
|
Когда Вы ставите ссылку на своей странице, не
задумываетесь ли вы о том, как нужно записывать URL сайта: http://www.site.ru
или http://www.site.ru/ (с символом "/" в конце адреса).
Вопрос этот далеко не праздный. Предположим, что вы поставили
ссылку на старый, добрый Rambler, опустив в конце URL слеш: http://top100.rambler.ru/top100.
Давайте посмотрим, что происходит, когда пользователь щелкает мышью по этой
ссылке.
Естественно, ничего экстраординарного не случается. На сервер
от браузера пользователя приходит запрос на получение документа
http://top100.rambler.ru/top100, а сервер отправляет в браузер следующий ответ:
HTTP/1.1 301 Moved Permanently
Date: Mon, 22 Mar 1999 09:15:18 GMT
Server: Apache/1.2.6 rus/PL22.2
Location: http://top100.rambler.ru/top100/
Connection: close
Content-Type: text/html; charset=windows-1251
Vary: accept-charset
<HTML><HEAD>
<TITLE>301 Moved Permanently</TITLE>
</HEAD><BODY>
<H1>Moved Permanently</H1>
The document has moved <A
HREF="http://top100.rambler.ru/top100/">here</A>.
</BODY></HTML>
Это означает, что документ был перемещен по
другому адресу, который отличается всего лишь наличием слеша "/" в
конце URL: http://top100.rambler.ru/top100/. И браузер снова обращается
к серверу уже по новому адресу.
Таким образом, ничтожный слеш является причиной возрастания
нагрузки на сервер, замедления скорости открытия требуемой страницы и
увеличения трафика пользователя. Поэтому при записи адреса сайта если это
каталог на сервере (например, http://webholm.ru/top69/), ставить слеш в конце
URL нужно обязательно.
А вот если при ссылке на корневой каталог сервера (например,
http://www.rambler.ru/) вы опустите слеш в конце URL, браузер пользователя сам
подставит его. Дело в том, по HTTP-протоколу он должен послать запрос:
GET <URL>
HTTP/1.0
где <URL> не может отсутствовать. Поэтому запросы по
ссылкам http://www.rambler.ru и http://www.rambler.ru/ шлются совершенно
одинаковые.