[ https://issues.apache.org/jira/browse/HTTPCORE-778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17934485#comment-17934485 ]
Oleg Kalnichevski edited comment on HTTPCORE-778 at 3/12/25 11:49 AM: ---------------------------------------------------------------------- [~peterhalicky] HttpComponents approach to various RFC interpretations has always been simple: be lenient as a consumer, be strict as a producer. In this case however I do have to admit the way URIBuilder handles `query` and `fragment` component encoding is inconsistent and I can accept this as a bug in 5.3.x. Any further changes will have to be done as a change request in 5.4.x. Oleg was (Author: olegk): [~peterhalicky] HttpComponents approach to various RFC interpretations has always been simple: be lenient as a consumer, be strict as a producer. In this case however I do have to admin that the way URIBuilder handles `query` and `fragment` component encoding is inconsistent and I can accept as a bug in 5.3.x. Any further changes will have to be done as a change request in 5.4.x. Oleg > Inconsistency in encoding method for query and fragment components by > URIBuilder > -------------------------------------------------------------------------------- > > Key: HTTPCORE-778 > URL: https://issues.apache.org/jira/browse/HTTPCORE-778 > Project: HttpComponents HttpCore > Issue Type: Bug > Components: HttpCore > Affects Versions: 5.3.3 > Reporter: Peter Halicky > Priority: Minor > Fix For: 5.3.4, 5.4-alpha1 > > > URI fragment is encoded in URIBuilder using: > {code:java} > PercentCodec.encode(sb, this.fragment, this.charset); {code} > (line 401, end of buildString method) > This encodes all characters except UNRESERVED using the percent-format. > As per (obsoleted) RFC2396, URI fragment should use URIC safe-chars. > As per RFC3986, quite a bit more characters should not be encoded: > {code:java} > pct-encoded = "%" HEXDIG HEXDIG > unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" > sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / > "=" > pchar = unreserved / pct-encoded / sub-delims / ":" / "@" > fragment = *( pchar / "/" / "?" ) {code} > Note that URIBuilder in httpclient 4.5.13 conforms to at least the old > RFC2396, as it uses URIC set of safe characters (i.e. this is in fact a > regression). -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org