Следует ли мне включать тип мультимедиа в свой ETag?

Должен ли я включать тип носителя при добавлении ETag в ответ HTTP? Конечно, я понимаю, что ETag непрозрачен, но вот пример:

  • Допустим, у меня есть клиент, который запрашивает Person в application / json. Я ищу его, создаю свой ETag и отправляю обратно JSON-представление человека
  • . Теперь тот же клиент делает еще один запрос для того же человека (который не был изменен) с тем же URI, но хочет его в application / xml.

Ясно, что просто возвращать 304 неправильно, но мой вопрос: во втором запросе я ожидал бы совпадения ETags, но не кеширования, основанного на заголовке Accept (или заголовке содержимого). Кроме того, возможно ли, что кеш будет иметь два представления из одного и того же URI, или у вас всегда будет недопустимый кеш каждый раз, когда ваш Content-Type переключается?

6
задан jhericks 2 November 2011 в 00:07
поделиться