[#104169] [Ruby master Feature#17938] Keyword alternative for boolean positional arguments — matheusrichardt@...

Issue #17938 has been reported by matheusrich (Matheus Richard).

12 messages 2021/06/04

[#104213] [Ruby master Feature#17942] Add a `initialize(public @a, private @b)` shortcut syntax for defining public/private accessors for instance vars — tyler@...

Issue #17942 has been reported by TylerRick (Tyler Rick).

6 messages 2021/06/09

[#104288] [Ruby master Bug#17992] Upstreaming the htmlentities gem into CGI#.(un)escape_html — alexandermomchilov@...

Issue #17992 has been reported by AMomchilov (Alexander Momchilov).

9 messages 2021/06/15

[#104338] [Ruby master Misc#17997] DevelopersMeeting20210715Japan — mame@...

Issue #17997 has been reported by mame (Yusuke Endoh).

10 messages 2021/06/17

[#104361] [Ruby master Bug#18000] have_library doesn't work when ruby is compiled with --disable-shared --disable-install-static-library — jean.boussier@...

Issue #18000 has been reported by byroot (Jean Boussier).

9 messages 2021/06/18

[#104401] [Ruby master Feature#18007] Help developers of C extensions meet requirements in "doc/extension.rdoc" — mike.dalessio@...

Issue #18007 has been reported by mdalessio (Mike Dalessio).

16 messages 2021/06/25

[#104430] [Ruby master Bug#18011] `Method#parameters` is incorrect for forwarded arguments — josh.cheek@...

Issue #18011 has been reported by josh.cheek (Josh Cheek).

12 messages 2021/06/29

[ruby-core:104178] [Ruby master Bug#17835] Net::HTTP should automatically add Accept-Encoding request header on HEAD request as well

From: jrsyo0905@...
Date: 2021-06-06 09:56:09 UTC
List: ruby-core #104178
Issue #17835 has been updated by jrsyo (Shohei Maeda).


Opened: https://github.com/ruby/net-http/pull/26

----------------------------------------
Bug #17835: Net::HTTP should automatically add Accept-Encoding request header on HEAD request as well
https://bugs.ruby-lang.org/issues/17835#change-92355

* Author: jrsyo (Shohei Maeda)
* Status: Open
* Priority: Normal
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
Currently, Net::HTTP adds the Accept-Encoding request header by default except for HEAD method.
https://github.com/ruby/ruby/blob/v3_0_1/lib/net/http.rb#L1489-L1493
https://github.com/ruby/ruby/blob/v3_0_1/lib/net/http/generic_request.rb#L34-L44

While this unlikely to cause any real-world problems, this isn't an ideal implementation according to the RFC below:
https://tools.ietf.org/html/rfc7230#section-3.3.2
> A server MAY send a Content-Length header field in a response to a
> HEAD request (Section 4.3.2 of [RFC7231]); a server MUST NOT send
> Content-Length in such a response unless its field-value equals the
> decimal number of octets that would have been sent in the payload
> body of a response if the same request had used the GET method.

Since server MAY (can) send the Content-Length header in response to a HEAD request, the client would see a Content-Length value of an uncompressed response if we don't send the Accept-Encoding request header.

```
$ curl -svo /dev/null 'https://www.ruby-lang.org/en/' -I --compressed 2>&1 | grep -i content-length
< content-length: 3380

$ curl -svo /dev/null 'https://www.ruby-lang.org/en/' -I 2>&1 | grep -i content-length
< content-length: 10932
```
 
Say, if the purpose of sending HEAD is to know the content-length beforehand (as an example) doesn’t it make sense to also add the Accept-Encoding request header on HEAD requests as well? In fact, users almost certainly request compressed objects in the subsequent requests (e.g., GET) because of the auto-addition logic above anyway.

https://github.com/smaeda-ks/ruby/commit/020469cfcf5f910a22e9bbb24ba18ba4e147ff19

Thanks,
Shohei



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread