RFC2616 является базовым RFC для HTTP 1.1
В наиболее общей форме HTTP-сообщение является следующим (обратите внимание на необязательное тело):
generic-message = start-line
*(message-header CRLF)
CRLF
[ message-body ]
start-line = Request-Line | Status-Line
Чтение далее дает следующее:
9.5 POST
The POST method is used to request that the origin server accept the
entity enclosed in the request as a new subordinate of the resource
identified by the Request-URI in the Request-Line. ...
и
9.6 PUT
The PUT method requests that the enclosed entity be stored under the
supplied Request-URI. ...
The fundamental difference between the POST and PUT requests is
reflected in the different meaning of the Request-URI. The URI in a
POST request identifies the resource that will handle the enclosed
entity. That resource might be a data-accepting process, a gateway to
some other protocol, or a separate entity that accepts annotations.
In contrast, the URI in a PUT request identifies the entity enclosed
with the request -- the user agent knows what URI is intended and the
server MUST NOT attempt to apply the request to some other resource.
И POST, и PUT включают фразу , заключенную в запросе .
Исходя из моего прочтения, я считаю, что для POST и PUT желательно тело (как я знаю, ненормативное описание).
В контексте REST, POST - это создание, PUT - это обновление.Я могу представить себе создание пустого объекта (возможно, заполнителя для будущей информации), но я не представляю себе большого применения пустого обновления.