2015-06-25 2 views
1

Я создаю API и стараюсь сделать его как RESTFul возможным.HTTP-перенаправление на частичный ответ (206)

С этой целью я построил поисковый «контроллер», это позволяет запрашивать параметры поиска, и отправка на него будет перенаправлять (302) на контроллер/ресурс, являющийся результатом поиска.

Этот другой контроллер поддерживает заголовок «Диапазон:», чтобы клиент мог запросить, сколько и где находится в списке предметов, которые он хочет.

Чтение спецификации HTTP, в ней говорится, что сервер должен отвечать только частичным содержимым 206, если запрос содержит заголовок диапазона. Действительно ли HTTP отправляет заголовок диапазона вместе с запросом POST ?.

Плохо для меня ответить первым, сказать 10 предметов, с 206, даже если заголовок Range не был поставлен ?. 206 предоставит клиенту знания о том, что он может запросить больше предметов, если ему это нужно.

ответ

0

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html & http://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7233.html указывает, что RANGE применим только к запросам GET.

Интересно, почему вы не используете запрос GET для своего поиска, я предполагаю, что это будет идемпотент, поэтому GET будет более подходящим.

Также обратите внимание, что единственный зарегистрированный блок диапазон байт, который, вероятно, не было бы слишком полезно для вас (см http://www.iana.org/assignments/http-parameters/http-parameters.xhtml#range-units) вы можете, конечно, иметь свои собственные местные единицы ... но ...

то, что я получаю, - если вы уже покидаете спецификацию нормального диапазона, чтобы добавить свой собственный блок, вы можете так же легко сказать, что диапазон применяется для POST в вашем пространстве имен.

лично я нахожу это странным, чтобы ограничить код ответа конкретным типом запроса ... не должен ли сервер сообщить клиенту, что он только возвращает диапазон, даже если он запросил все это?

Смежные вопросы