Когда пользователь нажимает на ссылку на рисунок на моем сайте http://mysite.com/some-drawing
, Я бы хотел, чтобы мой сервер ответил кодом статуса 300 и двумя локациями ресурсов: http://mysite.com/some-drawing.png
и http://mysite.com/some-drawing.myapp
, и чтобы клиентский браузер автоматически определял, какой из них использовать на основе по своим возможностям:Какова структура ответа для кода статуса HTTP 300 (множественный выбор)?
Если MyApp установлен на компьютере пользователя, то браузер должен загрузить версию
*.myapp
и использовать MyApp для его отображения.Однако, если MyApp не установлен, и браузер не может отобразить эту версию, то я бы хотел, чтобы он выбрал версию
*.png
.
Однако, я с трудом выяснить структуру ответа HTTP с кодом состояния 300.
rfc2616 говорит:
Запрошенный ресурс соответствует любому из набор представлений, каждый со своим конкретным местоположением, и агент- управляемая информация о переговорах (раздел 12) предоставляется так, что пользователь (или пользовательский агент) может выбрать предпочтительное представление и перенаправить запрос на это место.
Если это был не запрос HEAD, ответ ДОЛЖЕН содержать объект , содержащий список характеристик и адресов (ов) из которых пользователь или агент пользователя может выбрать один наиболее подходящий. Формат объекта задается типом носителя, указанным в поле заголовка Content- . В зависимости от формата и возможностей пользовательский агент, выбор наиболее подходящего варианта может быть выполнен автоматически. Однако эта спецификация не определяет любой стандарт для такого автоматического выбора.
Если у сервера есть предпочтительный выбор представления, он ДОЛЖЕН включать конкретный URI для этого представления в поле ; пользовательские агенты МОГУТ использовать значение поля Location для автоматического перенаправления . Этот ответ можно кэшировать, если не указано иное.
Формулировка «объект, содержащий список характеристик и местоположения (ов)» кажется неоднозначным. Что это значит? Кто-нибудь знает, как это делается?
rfc говорит: «В зависимости от формата и возможностей пользовательский агент, выбор наиболее подходящего варианта МОЖЕТ быть выполнен автоматически ». Вы говорите, что все основные браузеры обрабатывают все ответы о состоянии 300 одинаково, предлагая пользователю выбрать вручную? –
Да. Вы знаете формат, который * позволит * пользовательскому агенту выбрать для вас? –
Например: объект типа "multipart/alternative" metia. Это, по крайней мере, то, что используется почтовыми клиентами для определения наилучшего выбора для пользователя. –