Вопрос заключается в следующем: должен ли сервер выполнить обновление для / People / Bob?
С спецификации HTTP , 406 означает:
Ресурс, идентифицированный запросом, способен генерировать только объекты ответа, которые имеют неприемлемые характеристики содержимого в соответствии с заголовками принятия, отправленными в запросе.
Если это не запрос HEAD, ответ ДОЛЖЕН включать в себя объект, содержащий список доступных характеристик объекта и местоположений, из которых пользователь или пользовательский агент может выбрать наиболее подходящий. Формат объекта определяется типом мультимедиа, указанным в поле заголовка Content-Type. В зависимости от формата и возможностей пользовательского агента, выбор наиболее подходящего варианта МОЖЕТ выполняться автоматически. Однако эта спецификация не определяет какого-либо стандарта для такого автоматического выбора.
Note: HTTP/1.1 servers are allowed to return responses which are
not acceptable according to the accept headers sent in the
request. In some cases, this may even be preferable to sending a
406 response. User agents are encouraged to inspect the headers of
an incoming response to determine if it is acceptable.
Если ответ может быть неприемлемым, пользовательский агент ДОЛЖЕН временно прекратить получение дополнительных данных и запросить у пользователя решение о дальнейших действиях.
Это примечание по поводу HTTP / 1.1 может быть вашим ответом. Я читаю это как "вы можете вернуть 200 в ответ на запрос PUT / People / Bob, когда пользовательский агент указывает application / xml в заголовке Accept, выбирая любой подходящий тип контента, и что этот результат может быть предпочтительнее возвращение 406. "
При этом сценарии PUT будет успешным на сервере, вернет 200, но клиент получит представление application / json. Клиент должен иметь возможность обрабатывать эту возможность, убедившись, что он понимает тип мультимедиа, указанный в заголовке Content-type, и ведет себя четко определенным образом, если это не так.
Но это всегда так.
Еще одна вещь: вы можете подумать о том, чтобы не использовать обычные типы мультимедиа, такие как application / xml и application / json, а вместо этого определять свои собственные типы мультимедиа, возможно, на основе XHTML или JSON. Все соединение клиент-сервер в RESTful-приложении происходит через типы носителей. Без типов мультимедиа, достаточно богатых для представления концепций вашего домена, вы не полностью указали свой REST API.