Подтвердить что ты не робот

Почему заголовок диапазона содержимого разделен на запросы в ASP.NET Web API?

Я создаю API, в котором можно загрузить файл в порядке.

Идя по этому qaru.site/info/441162/..., заголовок диапазона содержимого кажется наиболее подходящим для этого.

Однако в действии контроллера заголовок был удален, поэтому я не могу получить к нему доступ. Когда я использую заголовок диапазона, он доступен в коллекции заголовков запросов.

Любая идея, почему Content-Range удаляется из запросов?

4b9b3361

Ответ 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 (ссылки мои):

Обратите внимание, что хотя описание класса MSDN немного ошибочно - в RFC отсутствует определение заголовков содержимого, но ясно, что они означают заголовки Entity.