Кратко
- Часть адреса после
#отделяется от адреса получения ресурса и разбирается на стороне читателя с учётом полученного представления. - Именованные якоря HTML были первым знакомым применением; позднее фрагменты научились указывать диапазоны строк и символов простого текста.
Ссылка на начало длинного документа — это вежливое предложение поискать нужное место самостоятельно. Ссылка с # похожа на раскрытую книгу с пальцем на нужном абзаце. Сервер передаёт документ; автор ссылки указывает место; браузер доставляет туда взгляд. Для этого абзацу не требуется собственный адрес на сервере.
Такое разделение видно уже в RFC 1808, опубликованном в июне 1995 года. При разборе относительного URL алгоритм сначала отделяет # и следующий за ним фрагмент. В том же году HTML 2.0 в RFC 1866 описал наглядный случай: #fragment ведёт к якорю в документе, например к элементу A с соответствующим атрибутом NAME. По сети приходит вся страница, но читатель может оказаться сразу у нужного фрагмента.
В архитектурной заметке W3C от апреля 1997 года Tim Berners-Lee объяснил передачу эстафеты. Сервер возвращает представление ресурса; клиент отдаёт фрагмент программе, понимающей его тип данных. HTTP-сервер этого суффикса не получает. Даже само слово «фрагмент», заметил автор, способно ввести в заблуждение: суффикс может обозначать часть, способ просмотра или иной объект, определённый форматом. Закладка в книге — лишь самая удобная метафора.
RFC 3986, вышедший в 2005 году, описал более общий механизм косвенной ссылки. Фрагмент обозначает вторичный ресурс через основной, а его смысл зависит от типа полученного представления. Здесь у технической нормы появляется редакционное следствие. Цитирующий может выбрать точку внутри уже опубликованного материала, не дожидаясь, пока издатель создаст отдельный серверный путь для каждого абзаца. Издатель задаёт содержание; автор ссылки задаёт точку входа.
Дальше дело вышло за пределы HTML. RFC 5147 2008 года задал фрагменты для text/plain: позиции и диапазоны символов и строк. В обычном текстовом файле нет идентификаторов HTML-элементов, зато есть строки и символы. Один и тот же знак позволяет выбрать подходящую карту для разных видов документов.
Граница осталась и в современной семантике HTTP, RFC 9110: фрагмент не входит в целевой URI, отправляемый в запросе. Сервер получает запрос на основной ресурс, браузер разбирает адресную подсказку после получения представления. Если якорь переименован или строки переместились, старая закладка может промахнуться. Устойчивые внутренние имена потому и ценны, что ссылки живут дольше очередной перестановки текста.
У символа # скромная должность на клавиатуре и дерзкая роль в чтении. Хозяин страницы устраивает парадный вход. Тот, кто пишет ссылку, вправе пригласить читателя прямо к картине в дальнем зале.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





