Какой код состояния должен быть возвращен, если клиент отправляет HTTP-запрос и указывает заголовок Content-Encoding, который не может быть декодирован сервером?
Пример
Клиентские POST-данные JSON для ресурса REST и кодируют тело сущности с использованием кодирования gzip. Тем не менее, сервер может только декодировать коды DEFLATE, поскольку он не прошел класс gzip в серверной школе.
Какой код ответа HTTP должен быть возвращен? Я бы сказал, 415 Unsupported Media Type, но это не объект Content-Type, который является проблемой - это кодировка тела, поддерживаемого в противном случае.
Что более подходит: 415? 400? Возможно, пользовательский код ответа?
Добавление: Я, конечно, тщательно проверил rfc2616. Если ответ есть, мне могут понадобиться новые корректирующие очки, но я не верю, что это так.
Update:
Это не имеет никакого отношения к отправке ответа, который может быть неприемлемым для клиента. Проблема в том, что клиент отправляет сервер, что может или не может быть допустимым типом носителя в кодировке, которую сервер не может понять (согласно заголовку Content-Encoding
, который клиент упакован с сообщением запроса).
Это крайний случай и не будет встречаться при работе с пользовательскими агентами браузера, но в REST API может появиться возможность принимать тела сущностей для создания/изменения ресурсов.