[
https://issues.apache.org/jira/browse/TS-2650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sudheer Vinukonda updated TS-2650:
----------------------------------
Attachment: ts2650.diff
Updated the patch per Bryan's comments:
1. remove a unnecessary null terminations.
2. Added a few more similar 3xx redirect response codes that return Location
header
> 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, 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)