На самом деле это не вопрос эстетики, а техническая разница. Справочник думает об этом полностью правильно и в значительной степени объясняет все. Давайте решим это:
Вы сейчас в каменном веке или обслуживаете только статичные страницы
У вас есть фиксированная структура каталогов на вашем веб-сервере и только статические файлы, такие как изображения, HTML и т. Д. - никаких серверных сценариев или чего-либо еще.
Браузер запрашивает /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/
которые, в свою очередь, перенаправляются на URL-адрес HTTPS customer/login/
. В конечном итоге вы получаете тонны ненужных перенаправлений HTTP (= дополнительные запросы), которые замедляют работу пользователя.
Скорее всего, у вас есть индекс каталога по умолчанию и здесь: index.php?controller=dvd
без action
внутренних загрузок index.php?controller=dvd&action=list
.
Резюме:
Если это заканчивается, /
это никогда не может быть файлом. Нет предположения сервера.
Косая черта или нет - это совершенно разные значения. Существует техническая / ресурсная разница между "косой чертой или без косой черты", и вы должны знать об этом и использовать ее соответствующим образом. Просто потому, что сервер, скорее всего, загружает /dvd/index.htm
- или загружает правильный сценарий - когда вы говорите /dvd
: он делает это, но не потому, что вы сделали правильный запрос. Который был бы /dvd/
.
Пропуск слэша, даже если вы действительно имеете в виду, что урезанная версия дает вам дополнительное наказание за HTTP-запрос. Это всегда плохо (подумайте о задержке мобильной связи) и имеет больший вес, чем «симпатичный URL» - тем более, что сканеры не настолько глупы, как считают SEO или хотят, чтобы вы верили;)