Слеш в конце 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/ шлются совершенно одинаковые.

 

Hosted by uCoz