Ответ 1
Он не снимается. Ищите его в Request.Content.Headers. Похоже, что они согласовали заголовки с спецификациями HTTP/1.1 - перемещение заголовков объектов в Request.Content.Headers.
Я попробовал его в запросе образца и нашел его там.
Я нашел это изменение после прочтения соответствующих разделов RFC 2616. В последнее время я перебираю его, потому что главный автор, Филдинг, также является изобретателем архитектурного стиля REST, и я стараюсь следовать этому стилю с помощью ASP.NET Web API.
Я понял, что существует различие между "запросом", "ответом", "общим" (используется как для запросов, так и для ответа, но не связанных с сущностью) и заголовков "сущность".
Похоже, что команда ASP.NET пересмотрела модель класса, чтобы лучше отразить RFC, создав три подкласса HttpHeaders:
- HttpRequestHeaders для "5.3 Поля заголовка запроса" и "4.5 Общие сведения Поля заголовка "
- HttpResponsHeaders для "6.2 полей заголовка ответа" и "4.5 Общие сведения Поля заголовка "
- HttpContentHeaders для "7.1 полей заголовка Entity"
Это дословные описания трех классов в MSDN (ссылки мои):
- HttpRequestHeaders: Представляет коллекцию Заголовок запроса, как определено в RFC 2616.
- HttpResponseHeaders: Представляет коллекцию заголовков ответов, как определено в RFC 2616.
- HttpContentHeaders: Представляет коллекцию Заголовки содержимого, как определено в RFC 2616. Content-Range - это заголовок Entity, поэтому ContentRange находится в HttpContentHeaders.
Обратите внимание, что хотя описание класса MSDN немного ошибочно - в RFC отсутствует определение заголовков содержимого, но ясно, что они означают заголовки Entity.