[ https://issues.apache.org/jira/browse/TS-2650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bryan Call updated TS-2650: --------------------------- Attachment: ts2650.diff Fix a couple logic errors in is_redirect_required() > Redirect handling enhancements in ATS > ------------------------------------- > > Key: TS-2650 > URL: https://issues.apache.org/jira/browse/TS-2650 > Project: Traffic Server > Issue Type: Improvement > Components: Core > Reporter: Sudheer Vinukonda > Assignee: Bryan Call > Labels: review, yahoo > Fix For: 5.0.0 > > Attachments: ts2650.diff, ts2650.diff, ts2650.diff > > > This Jira attempts to enhance/fix multiple issues found with ATS's support > for redirect follow. Below is a summary of issues: > 1. Support relative path in the location header in the 301/302/303 response. > Description: Currently, if ATS receives a relative url path (with either the > host or the scheme missing) in the location header in the 302 redirect > request, it returns a "400 Host Header Required" error. This enhancement is > to try the redirection with the current origin connection's host/scheme when > that happens. > 2. Strip off default ports from Host header during redirect follow. > Description: ATS includes port in the host header as host:port during > redirect follow. It has been observed that some origins choke (and return 4xx > error) when the default port (80/http, 443/https) is included within the host > header. This enhancement is to strip off the default port (80/http, > 443/https) from the host header during redirect follow. This behavior is > controlled via a configuration parameter > "proxy.config.http.redirect_host_no_port". When enabled, ATS will strip off > the default port from the host header during redirect follow. Note that the > default setting for proxy.config.http.redirect_host_no_port is disabled, > which means, ATS will continue to include the port in the host header. > 3. Force DNS lookup during redirect follow > Description: It has been observed that, ATS doesn't perform a DNS lookup > during redirect follow. This may work when the host is unchanged during > redirect follow, but, will fail if the host is changed. This fix forces dns > lookup (either by way of hostdb lookup or an altogether new dns lookup) > during redirect follow > 4. Handle null path correctly during redirect follow > Description: It has been observed that, if a subsequent redirect follow > includes null path (e.g. /), ATS incorrectly uses the path received during a > previous redirect request. This fix resets the path during each redirect to > ensure that the path is correctly set to the newly received value. > 5. Cache not working during redirect > Description: It has been observed that ATS is not writing to cache the final > response at the end of a successful 3xx redirect follow. This fix is to force > ATS write to cache a valid non-3xx response received at the end of a redirect > follow. > 6. Support 303 status code to trigger redirect follow > Description: Currently, ATS supports only 301/302 based redirect follow. This > enhancement is to also handle 303 based redirect follow. Note that, in terms > of the response and redirect follow handling, 303 handling is identical to > 301/302, except for the status code. > 7. SEND_RESPONSE_HDR_HOOK plugin breaks redirect follow: > Description: Currently, when a plugin enables SEND_RESPONSE_HDR_HOOK, ATS has > a bug that breaks redirect handling. This fix is to allow redirect handling > to be completed (unto the configured max number of attempts) before invoking > the plugin with SEND_RESPONSE_HDR_HOOK. -- This message was sent by Atlassian JIRA (v6.2#6252)