![]() |
|
Модераторы: Illuminaty |
![]()
|
|
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 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 Откуда браузер может знать, что это файл, а не папка? |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 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-сервер, которому прописали что и как обрабатывать. браузер тут не причём. с таким же успехом ты можешь набрать адрес, и даже если именно этот адрес чётко указывает на нужный файл, тебя легко может не допустить к нему. на то воля сервера и его настройщиков кстати, советую обратить внимание на тот факт, что путь в адресной строке никоим образом не имеет отношения к реальной файловой системе сервера |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Мы разобрались. Не совсем так, как Вы пишете. Если браузер запрашивает
http://www.domain.ru/papka то сервер ему отвечает сообщением Moved Permanently и указывает Location http://www.domain.ru/papka/ после чего браузер делает переапрос. Но теперь уже по УРЛу видно, что это не файл, а папка. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 50 Всего: 315 |
если стоит апач с модулем re-write то на запрос http://server.ru/papka он может и http://bukina.server.ru/nyam/nyam/developer.exebit выдать
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 97 Всего: 401 |
В протоколе HTTP, по которому браузер общается с сервером, вообще нет никакх файлов и папок. Есть запросы браузера и ответы сервера. И какой контент выдавать на какой запрос (и выдавать ли вообще) - сугубо личное дело сервера (есть, конечно, определенные традиции - типа вышеописанного редиректа "на слеш" - но это легко перепрограммировать). Именно сервера, а не браузера.
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 1 Всего: 144 |
Dims, тебе в общем все правильно тут рассказали. Я только хотел бы добавить немного лирики
По-хорошему, адресам вида www.domain.ru/file, то есть, с одной стороны, без звершающего слеша, а с другой - без указания на тип файла, то есть без расширения .htm, .php, .jsp и т. д. - так вот, таким адресам не место в цивилизованном вебе! Правильная схема именования: если папка, то со слешем, если файл - то с расширением. Тогда не будет никаких непоняток. Не поймите меня правильно: можно, конечно, нарушать и в одну, и в другую сторону, можно на сервере переадресовывать на адрес со слешем, можно не заморачиваться с проблемой двусмысленного разрешения относительных путей, а просто тупо ссылаться на все от корня, и т. д. Но задайте себе вопрос, а нафуя? Когда можно все сделать по-грамотному. И еще, предваряя возможный вопрос: а откуда вообще повелась практика юзать такие кривые УРЛы - не то файл, не то папка? Сообщаю: руку к этому прискорбному явлению приложили пэтэушники от веба, на заре массового интернета. То есть чуваки, которые прослышали о существовании веб стандартов и спецификаций только после того, как наваяли с десяток криворуких сайтов "по наитию" и тыря рецепты один у другого. И даже почитав спеки, не придали вопросу большого значения, ибо привычка, как говорится, вторая натура. И даже при том, что некоторые из них (такие как Spectator или, скажем, 37 Signals) стали впоследствии весьма влиятельными перцами, изжить в себе пэтэушную привычку прописывать путь как не-то-файл-не-то-папку им так и не удалось. И лучше им в этом не подражать. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Вёрстка веб-сайтов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |