You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (JIRA)" <ji...@apache.org> on 2009/12/11 19:56:19 UTC

[jira] Updated: (HTTPCLIENT-899) Traling slash is not added to the end of Location header value when proccessing redirect.

     [ https://issues.apache.org/jira/browse/HTTPCLIENT-899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oleg Kalnichevski updated HTTPCLIENT-899:
-----------------------------------------

      Component/s: HttpClient
         Priority: Minor  (was: Major)
    Fix Version/s: 4.1 Alpha2
       Issue Type: Improvement  (was: Bug)

Alexey,

I think the target server is clearly at fault here: it should either return a perfectly well-formed absolute redirect URI or be prepared to handle whatever redirect location it sent to the client. Having said that I do not mind rewriting redirect URIs at the client side if the location URI is unambiguous.

http://narod.yandex.ru -> http://narod.yandex.ru/ - OK
http://narod.yandex.ru/whatever -> http://narod.yandex.ru/whatever/ - NOT OK
 
Oleg

ЗЫ: ZX_Spectrum/1997 (Sinclair_BASIC) эта типа прикол?


> Traling slash is not added to the end of Location header value when proccessing redirect.
> -----------------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-899
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-899
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>          Components: HttpClient
>    Affects Versions: 4.0.1
>         Environment: httpclient-4.0.1
>            Reporter: Alexey Fansky
>            Priority: Minor
>             Fix For: 4.1 Alpha2
>
>
> When httpclient receives 302(or any other redirect) response from server, it redirects directly to Location header value without adding trailing slash to the end of uri. Please see log:
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultClientConnection - Receiving response: HTTP/1.0 302 Found
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << HTTP/1.0 302 Found
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Date: Fri, 11 Dec 2009 11:01:05 GMT
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Server: ZX_Spectrum/1997 (Sinclair_BASIC)
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Set-Cookie: Virtual_id=26; path=/; domain=.yandex.ru;
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Location: http://narod.yandex.ru
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Content-Type: text/html; charset=windows-1251
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << X-Cache: MISS from narod.yandex.ru
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Connection: close
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.ResponseProcessCookies - Cookie accepted: "[version: 0][name: Virtual_id][value: 26][domain: .yandex.ru][path: /][expiry: null]". 
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.DefaultRedirectHandler - Redirect requested to location 'http://narod.yandex.ru'
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.ClientParamsStack - 'http.route.default-proxy': http://79.117.160.xxx:8000
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.DefaultRequestDirector - Redirecting to 'http://narod.yandex.ru' via HttpRoute[{}->http://79.117.160.xxx:8000->http://narod.yandex.ru]
> 13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultClientConnection - Connection closed
> 13:01:03,811 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.ClientParamsStack - 'http.tcp.nodelay': true
> 13:01:03,811 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.ClientParamsStack - 'http.socket.buffer-size': 8192
> 13:01:03,811 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.ClientParamsStack - 'http.protocol.version': HTTP/1.1
> 13:01:03,811 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.ClientParamsStack - 'http.useragent': Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.02
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.ClientParamsStack - 'http.protocol.cookie-policy': compatibility
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: compatibility
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: yandex_mail][value: o-razocharovannyi2009][domain: .yandex.ru][path: /][expiry: null] match [narod.yandex.ru:80/]
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: yandex_login][value: o.razocharovannyi2009][domain: .yandex.ru][path: /][expiry: null] match [narod.yandex.ru:80/]
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: Session_id][value: 1260529235.-4301.0.79308534.2:216563882:250.8:1260529235871:1333108959:15.62953.10893.2cc1963276a9d131887679b99a753abf][domain: .yandex.ru][path: /][expiry: null] match [narod.yandex.ru:80/]
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: L][value: Rlc7XlBoBGJjY0FWfkZ4WnVWAlhja1puCQ1FKUVAVjUBXTMMHwQuCQwXZxgXDSgiXS9KXj4QWhouDGAJSFY1fw==.1260529235.6343.211563.a4588e45abb86ea112f2c24ab959eca9][domain: .yandex.ru][path: /][expiry: Thu Mar 11 13:00:35 EET 2010] match [narod.yandex.ru:80/]
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: yandexuid][value: 872959911260529238][domain: .yandex.ru][path: /][expiry: Mon Dec 09 13:00:38 EET 2019] match [narod.yandex.ru:80/]
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: Virtual_id][value: 26][domain: .yandex.ru][path: /][expiry: null] match [narod.yandex.ru:80/]
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.impl.client.DefaultRequestDirector - Attempt 5 to execute request
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultClientConnection - Sending request: GET http://narod.yandex.ru HTTP/1.1
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "GET http://narod.yandex.ru HTTP/1.1[EOL]"
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "Host: narod.yandex.ru[EOL]"
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "Proxy-Connection: Keep-Alive[EOL]"
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.02[EOL]"
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "Cookie: yandex_mail=o-razocharovannyi2009; yandex_login=o.razocharovannyi2009; Session_id=1260529235.-4301.0.79308534.2:216563882:250.8:1260529235871:1333108959:15.62953.10893.2cc1963276a9d131887679b99a753abf; L=Rlc7XlBoBGJjY0FWfkZ4WnVWAlhja1puCQ1FKUVAVjUBXTMMHwQuCQwXZxgXDSgiXS9KXj4QWhouDGAJSFY1fw==.1260529235.6343.211563.a4588e45abb86ea112f2c24ab959eca9; yandexuid=872959911260529238; Virtual_id=26[EOL]"
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "[EOL]"
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> GET http://narod.yandex.ru HTTP/1.1
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> Host: narod.yandex.ru
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> Proxy-Connection: Keep-Alive
> 13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.02
> 13:01:03,813 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> Cookie: yandex_mail=o-razocharovannyi2009; yandex_login=o.razocharovannyi2009; Session_id=1260529235.-4301.0.79308534.2:216563882:250.8:1260529235871:1333108959:15.62953.10893.2cc1963276a9d131887679b99a753abf; L=Rlc7XlBoBGJjY0FWfkZ4WnVWAlhja1puCQ1FKUVAVjUBXTMMHwQuCQwXZxgXDSgiXS9KXj4QWhouDGAJSFY1fw==.1260529235.6343.211563.a4588e45abb86ea112f2c24ab959eca9; yandexuid=872959911260529238; Virtual_id=26
> 13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">[EOL]"
> 13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
> 13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "<HTML><HEAD>[EOL]"
> 13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: <HTML><HEAD>
> 13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "<TITLE>400 Bad Request</TITLE>[EOL]"
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: <TITLE>400 Bad Request</TITLE>
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "</HEAD><BODY>[EOL]"
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: </HEAD><BODY>
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "<H1>Bad Request</H1>[EOL]"
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: <H1>Bad Request</H1>
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "Your browser sent a request that this server could not understand.<P>[EOL]"
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: Your browser sent a request that this server could not understand.<P>
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "Invalid URI in request GET  HTTP/1.1<P>[EOL]"
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: Invalid URI in request GET  HTTP/1.1<P>
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "</BODY></HTML>[EOL]"
> 13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: </BODY></HTML>
> 13:01:08,374 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultClientConnection - Connection closed
> 13:01:08,374 DEBUG threadPoolExecuter-1 org.apache.http.impl.conn.DefaultClientConnection - Connection shut down

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org