note 112509 deleted from function.http-get-request-body by sobak
| From: | sobak@php.net | Date: | Sun, 04 Dec 2016 07:20:50 +0000 |
| Subject: | note 112509 deleted from function.http-get-request-body by sobak | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-208049@lists.php.net to get a copy of this message | ||
Note Submitter: jimfr06 at gmail dot com
----
@slave at codegrunt dot com
If you leave out Content-Length and have no Transfer-Encoding, your request is no longer valid.
RFC261 says at chapter 4.3:
"The presence of a message-body in a request is signaled by the inclusion of a Content-Length
or Transfer-Encoding header field in the request's message-headers."
Without those headers, the server has no way of figuring out what the length of the body is. For a
response, you could indicate it with a connection close, but obviously if you do that on a request
you will never get a response!
So, I assume the PhP behaviour you describe is OK as you cannot expect it to auto-magically repair
all sorts of broken requests!
@Tim Trinidad
Reading php://input or using http_get_request_body_stream() must be very similar.
The documentation says:
"This function can not be used after http_get_request_body_stream() if the request method was
another than POST."
So it looks very similar to what you describe. The documentation should then read:
"This function can not be used after http_get_request_body_stream() or reading php://input, if
the request method was another than POST."