пятница, 20 мая 2011 г.

Почему слова, начинающиеся с "home", трактуются как URL?

Это перевод Why do words beginning with "home" get treated as URLs? Автор: Реймонд Чен.

Vitaly спросил в Suggestion Box (исправлена грамматика):
А ты можешь объяснить, почему Windows запускает web-браузер, если имя файла, который ты передаёшь в ShellExecute, начинается с "home"?
Для начала надо заметить что эта URL-изация начинается только после того, как ShellExecuteEx попробовала все прочие способы интерпретации. Если файл с именем "homestar" будет найден в текущей папке, в PATH или App Paths, то он и будет использован, как вы и ожидаете. Только когда функция ShellExecuteEx уже почти готова сдаться, она пробует это "угадать, что ты имел в виду".

То, что вы видите - это снова работа авто-коррекции. Если вы зайдёте в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\URL\Prefixes, то вы увидите возможные правила автокоррекции, с которыми ShellExecuteEx консультируется, когда она не может вас понять. К примеру, если вы набрали что-то, начинающееся на "www", то она добавит "http://" в начало строки и попробует интерпретировать результат снова. Вот почему вы можете просто набрать "www.microsoft.com" в диалоге Пуск/Выполнить, вместо того, чтобы набирать длинный и неудобный "http://www.microsoft.com".

Большинство правил авто-корректировки достаточно прозрачны для понимания: что-то, начинающееся на "ftp", вероятно, означает FTP-сервер. Что-то, начинающееся на "www", вероятно, означает web-сайт. Но почему строки, начинающиеся на "home", также трактуются как web-сайты?

Для начала, некоторые web-сайты имеют имена, начинающиеся с "home". Более того, некоторые интернет-провайдеры настраивают их DNS так, что не полностью квалифицированные доменные имена указывают на сервера провайдера, специально установленные для предоставления услуг клиентам. К примеру, "mail" отправил вас на web-интерфейс почтового сервера провайдера, а "home" отправит вас на вашу домашнюю страничку (предоставленную провайдером).

Использование слова "home" быстро вышло из моды, так что это правило больше не является полезным, но оно всё ещё остаётся, потому что никому не мешает, а соображения обратной совместимости, как всегда, диктуют вам ничего не трогать, если это не сломано если только вы на 100% не уверены в том, что это никто не использует (чёрт возьми, да если вы посмотрите на этот список, то увидите правило для "gopher". Как будто кто-то сегодня ещё использует gopher).

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.