[ 
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

Reply via email to