Модераторы: Illuminaty
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как браузер отличает файл без расширения от папки? 
V
    Опции темы
Dims
Дата 23.9.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Допустим, на некотором сайте есть папка:

http://www.domain.ru/papka

когда пользователь запросит этот УРЛ, сервер найдёт в этой папке файл index.html. Допустим, такой файл существует. Допустим, внутри этого файла есть относительная ссыла

<a href="drugoi.html">ссылка</a>

Если пользователь ткнёт в эту ссылку, то браузер сформирует адрес

http://www.domain.ru/papka/drugoi.html

и откроет его.

Теперь рассмотрим другой сайт, на нём есть ФАЙЛ без расширения с этим же именем

http://www.domain2.ru/file

допустим, внутри этого файл есть ссылка

<a href="drugoi2.html">ссылка</a>

Вопрос: почему, когда я тыкаю в этот файл, браузер формирует адрес

http://www.domain2.ru/drugoi2.html

а не

http://www.domain2.ru/file/drugoi2.html

Откуда браузер может знать, что это файл, а не папка?
PM MAIL   Вверх
bars80080
Дата 23.9.2008, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



в смысле откуда? ему вернулся адрес полученного пути. если это папка, то ему вернётся именно http://www.domain.ru/papka/index.html 
он и будет строить относительные пути от http://www.domain.ru/papka/
а во втором случае ему вернётся адрес: http://www.domain2.ru/file

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

кстати, советую обратить внимание на тот факт, что путь в адресной строке никоим образом не имеет отношения к реальной файловой системе сервера
PM MAIL WWW   Вверх
Dims
Дата 23.9.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Мы разобрались. Не совсем так, как Вы пишете. Если браузер запрашивает

http://www.domain.ru/papka

то сервер ему отвечает сообщением Moved Permanently и указывает Location

http://www.domain.ru/papka/

после чего браузер делает переапрос. Но теперь уже по УРЛу видно, что это не файл, а папка.
PM MAIL   Вверх
bars80080
Дата 23.9.2008, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



если стоит апач с модулем re-write то на запрос http://server.ru/papka он может и http://bukina.server.ru/nyam/nyam/developer.exebit выдать
PM MAIL WWW   Вверх
SelenIT
Дата 23.9.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



В протоколе HTTP, по которому браузер общается с сервером, вообще нет никакх файлов и папок. Есть запросы браузера и ответы сервера. И какой контент выдавать на какой запрос (и выдавать ли вообще) - сугубо личное дело сервера (есть, конечно, определенные традиции - типа вышеописанного редиректа "на слеш" - но это легко перепрограммировать). Именно сервера, а не браузера.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Stampede
Дата 26.9.2008, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 1
Всего: 144



Dims, тебе в общем все правильно тут рассказали. Я только хотел бы добавить немного лирики smile

По-хорошему, адресам вида www.domain.ru/file, то есть, с одной стороны, без звершающего слеша, а с другой - без указания на тип файла, то есть без расширения .htm, .php, .jsp и т. д. - так вот, таким адресам не место в цивилизованном вебе! Правильная схема именования: если папка, то со слешем, если файл - то с расширением. Тогда не будет никаких непоняток.

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

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

И даже при том, что некоторые из них (такие как Spectator или, скажем, 37 Signals) стали впоследствии весьма влиятельными перцами, изжить в себе пэтэушную привычку прописывать путь как не-то-файл-не-то-папку им так и не удалось.

И лучше им в этом не подражать.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.