Ask HN | http compliance if post with content-length:0
2 comments
To my mind, as long as the Content-type header is set, the server should try to parse the body accordingly.
In the case of JSON, an empty body cannot be a JSON representation, but for other formats an empty body can have a meaning.
In the case of JSON, an empty body cannot be a JSON representation, but for other formats an empty body can have a meaning.
For instance for a plain text content-type,
no string != empty string
What does it matter?
What you should do is have the error messages be the same for detecting a length 0 submission and of attempting to parse the empty string as JSON.
You can think of the check for length==0 and length==1 as a sort of optimization (no JSON document can be 1 byte long), rather than a corner case.
What you should do is have the error messages be the same for detecting a length 0 submission and of attempting to parse the empty string as JSON.
You can think of the check for length==0 and length==1 as a sort of optimization (no JSON document can be 1 byte long), rather than a corner case.
I have a corner case :-)
A library client do a POST request on my server, with 2 headers : > Content-type: application/json > Content-length: 0
So ATM the server response is 400 (bad request) because json is invalid
So the question is : When the content-length of a request is 0, should we parse the body or not ?