Какую ошибку мы возвращаем при анализе неверного заголовка HTTP `Range: ...`? - PullRequest
1 голос
/ 24 сентября 2019

Я работаю над проектом, который вручную анализирует поле Range: ....При ошибке всегда возвращается ошибка HTTP 416 ( Range Not Satisfiable ).

Мне кажется, что в большинстве случаев, например, когда диапазон не равен bytes=... или числоявляется недействительным, ошибка HTTP должна быть 400.

У вас уже был опыт работы с этим конкретным случаем?Что мы должны вернуть?

1 Ответ

1 голос
/ 24 сентября 2019

С риском ответа, подобного мнению: RFC 7233 обсуждает 416 в контексте неспособности удовлетворить запрос диапазона, с сильным подтекстом, что запрос синтаксически корректен.

Код состояния 416 (Range Not Satisfiable) указывает, что ни один из диапазонов в поле заголовка Range запроса (раздел 3.1) не перекрывает текущий экстент выбранного ресурса или что запрошенный набор диапазонов был отклонен из-за недопустимых диапазонов или чрезмерного запросамалых или перекрывающихся диапазонов.

https://tools.ietf.org/html/rfc7233#page-15

Ошибки в синтаксисе запроса или неправильная форма по-прежнему соответствуют общим ошибочным запросам 400.

Код состояния 400 (неверный запрос) указывает на то, что сервер не может или не будет обрабатывать запрос из-за чего-то, что воспринимается как ошибка клиента (например, синтаксис неверного запроса, некорректное кадрирование сообщения запросаили обманчивая маршрутизация запросов).

https://tools.ietf.org/html/rfc7231#page-58

Итак, если в запросе не указаны действительные диапазоны bytes (в настоящее время единственный зарегистрированный тип диапазона), я бывернуть 400.

...