RFR: 8283544: HttpClient GET method adds Content-Length: 0 header [v8]
Julian Reschke
duke at openjdk.org
Thu Sep 15 08:02:01 UTC 2022
On Thu, 31 Mar 2022 08:42:35 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
>> RFC 7230 section 3.3.2 says:
>> "A user agent SHOULD NOT send a
>> Content-Length header field when the request message does not contain
>> a payload body and the method semantics do not anticipate such a
>> body."
>> I don't think the DELETE method anticipates a a request body. So, it shouldn't have a Content-Length header either IMO. Same for HEAD also.
>
> Thanks @Michael-Mc-Mahon Michael. Let's do as @djelinski Daniel suggests then - and only set Content-Length if requestPublisher != null (that is remove the `|| !"GET".equals(request.method())` part of the if). The test would need to be extended to test DELETE and HEAD but that shouldn't be too difficult.
FWIW, the relevant text now is in https://www.rfc-editor.org/rfc/rfc9110.html#section-8.6:
> A user agent SHOULD send Content-Length in a request when the method defines a meaning for enclosed content and it is not sending Transfer-Encoding. For example, a user agent normally sends Content-Length in a POST request even when the value is 0 (indicating empty content). A user agent SHOULD NOT send a Content-Length header field when the request message does not contain content and the method semantics do not anticipate such data.
-------------
PR: https://git.openjdk.org/jdk/pull/8017
More information about the net-dev
mailing list