[#106341] [Ruby master Bug#18369] users.detect(:name, "Dorian") as shorthand for users.detect { |user| user.name == "Dorian" } — dorianmariefr <noreply@...>
Issue #18369 has been reported by dorianmariefr (Dorian Mari辿).
14 messages
2021/11/30
[#106351] [Ruby master Bug#18371] Release branches (release information in general) — "tenderlovemaking (Aaron Patterson)" <noreply@...>
Issue #18371 has been reported by tenderlovemaking (Aaron Patterson).
7 messages
2021/11/30
[ruby-core:106240] [Ruby master Bug#17835] Net::HTTP should automatically add Accept-Encoding request header on HEAD request as well
From:
"hsbt (Hiroshi SHIBATA)" <noreply@...>
Date:
2021-11-24 05:10:57 UTC
List:
ruby-core #106240
Issue #17835 has been updated by hsbt (Hiroshi SHIBATA). Assignee set to naruse (Yui NARUSE) Status changed from Open to Assigned https://github.com/ruby/net-http/pull/26 was merged for Ruby 3.1. But I'm not sure that we should backport this to Ruby 3.0 or old versions. ---------------------------------------- Bug #17835: Net::HTTP should automatically add Accept-Encoding request header on HEAD request as well https://bugs.ruby-lang.org/issues/17835#change-94860 * Author: jrsyo (Shohei Maeda) * Status: Assigned * Priority: Normal * Assignee: naruse (Yui NARUSE) * 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:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>