На самом деле это не вопрос эстетики, а техническая разница.Справочник думает об этом полностью правильно и в значительной степени объясняет все.Давайте разберемся:
Вы сейчас в каменном веке или обслуживаете только статические страницы
У вас фиксированная структура каталогов на вашем веб-сервере и только статические файлы, такие как изображения, html и т. Д.on - никаких серверных сценариев или чего-либо еще.
Браузер запрашивает /index.htm
, он существует и доставляется клиенту.Позже у вас есть много, скажем, DVD фильмов, просмотренных и html-страница для каждого из них в каталоге /dvd/
.Теперь кто-то запрашивает /dvd/adams_apples.htm
, и он доставляется, потому что он там есть.
В какой-то день кто-то просто запрашивает /dvd/
- , который является каталогом , и сервер пытается выяснить,что доставить.Помимо ограничений доступа и т. Д., Есть две возможности: показать пользователю содержимое каталога (держу пари, что вы уже видели это где-то) или показать файл по умолчанию (в Apache это: DirectoryIndex: sets the file that Apache will serve if a directory is requested.
)
Пока все хорошо, это ожидаемый случай. Он уже показывает разницу в обработке, поэтому давайте разберемся:
В 5:34 вы допустили ошибку при загрузке ваших файлов
(что, кстати, вполне понятно.) Итак, вы сделали что-то совершенно не так, и вместо загрузки /dvd/the_big_lebowski.htm
вы загрузили этот файл как dvd
(без расширения) в /
.
Кто-то добавил в ваш список каталогов /dvd/
(конечно, вы не хотели создавать и всегда обновляли этот отличный index.htm
) и посещает ваш веб-сайт.Содержимое каталога доставлено - все в порядке.
Кто-то слышал о вашем списке и печатает /dvd
.И теперь это прикручено.Вместо списка каталогов на DVD-диске сервер находит файл с таким именем и доставляет ваш файл Big Lebowski.
Итак, вы удаляете этот файл и говорите парню перезагрузить страницу.Ваш сервер ищет файл /dvd
, но его больше нет.После этого большинство серверов заметят, что существует каталог с таким именем, и сообщат клиенту, что он действительно ищет что-то другое.Скорее всего, ответ будет:
Status Code:301 Moved Permanently
с Location: http://[...]/dvd/
Таким образом, полностью игнорируя то, что вы думают о каталогах или файлах, сервер может обрабатывать только сервертакие вещи и - если не указано иное - решает для вас значение "косая черта или нет".
Наконец, после получения этого ответа, клиент загружает /dvd/
и все в порядке.
Это нормально?
«Просто отлично» недостаточно для вас
У вас есть динамическая страница, где все передается /index.php
и обрабатывается.До сих пор все работало довольно хорошо, но все это начинает ощущаться медленнее, и вы начинаете расследование.
Вскоре вы заметите, что /dvd/list
делает то же самое: перенаправление на /dvd/list/
, которое затем внутреннепереведено на index.php?controller=dvd&action=list
.Еще один запрос - но еще хуже!customer/login
перенаправляет на customer/login/
, который, в свою очередь, перенаправляет на HTTPS URL-адрес customer/login/
.В итоге вы получите тонн ненужных перенаправлений HTTP (= дополнительные запросы), которые замедляют работу пользователя.
Скорее всего, у вас здесь также есть индекс каталога по умолчанию: index.php?controller=dvd
безaction
просто внутренне загружает index.php?controller=dvd&action=list
.
Сводка:
Если он заканчивается на /
, он может никогда быть файлом. Нет предположений сервера.
Косая черта или косая черта - это совершенно разные значения. Существует техническая / ресурсная разница между косой чертой или косой чертой, и вы должны знать об этом ииспользуйте его соответственно.Просто потому, что сервер, скорее всего, загружает /dvd/index.htm
- или загружает правильный сценарий - когда вы говорите /dvd
: он делает это, но не потому, что вы сделали правильный запрос.Который был бы /dvd/
.
Пропуск косой черты, даже если вы действительно имеете в виду урезанная версия дает вам дополнительное наказание за HTTP-запрос. Что всегда плохо (подумайте о задержке мобильной связи) и имеет большевес, чем «красивый URL» - тем более, что сканеры не так глупы, как считают или хотят, чтобы вы верили;)