HTTP-заголовок Content-Location должен объявлять уникальное местоположение ресурса, который использовался для ответа на HTTP GET (например, запрос был GET /frontpage HTTP/1.1
, сервер может добавить HTTP-заголовок Content-Location: <a href="http://domain.com/frontpage.english.msie-optimized">http://domain.com/frontpage.english.msie-optimized</a>
, информирующий пользовательский агент, что если это конкретный ответ потребуется позже, следует использовать предоставленное местоположение, поскольку исходное местоположение может зависеть от различных вещей, которые затем должны быть объяснены через заголовок "Vary
").
Однако обратите внимание, что заголовок HTTP Content-Location проблематичен в реальном мире, потому что разные браузеры (пользовательские агенты) обрабатывают его по-разному:
http://mail.python.org/pipermail/web-sig/2004-October/000985.html
Это из-за раздела 14.14 RFC 2616, в котором говорится, что «Значение Content-Location также определяет базовый URI для объекта». Короче говоря, соответствующий пользовательский агент будет вычислять BASE URL для извлеченного документа с использованием заголовка Content-Location, что может привести к использованию различных относительных URL, если извлеченный документ не определяет URL BASE, а реальный извлеченный URL и Content-Location достаточно различаются (часть URL "directory" / "path" отличается).
Кроме того, я еще не видел каких-либо преимуществ использования HTTP Content-Location (однажды я надеялся, что это можно использовать для подсказки о постоянном расположении закладки в случае, если просматриваемый в настоящий момент URL-адрес является изменчивым, например domain.com/news / последнее, но, похоже, это не так).
Мой текущий совет: забудьте о Content-Location для HTTP, но вы можете использовать его для электронной почты MIME.