HTTP-запросы имеют тело, если у них есть заголовок Content-Length или Transfer-Encoding ( RFC 2616 4.3 ). Если у запроса нет ни того, ни другого, у него нет тела, и ваш сервер должен рассматривать его как таковой.
Тем не менее, для запроса PUT необычно не иметь тела, и поэтому, если бы я проектировал клиента, который действительно хотел отправить пустое тело, я бы передал Content-Length: 0. Действительно, в зависимости от чтения POST и определения методов PUT ( RFC 2616 9.5, 9.6 ) можно было бы возразить, что тело подразумевается как обязательное, но разумный способ не обрабатывать тело - это принять тело нулевой длины.