doRedirectsWithClient() — fiber Function Reference
Architecture documentation for the doRedirectsWithClient() function in transport.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 973b023d_d4d8_36a4_1c37_32dd70b4b0c5["doRedirectsWithClient()"] cfe2515b_ab6b_e576_a031_f986d4835acf["transport.go"] 973b023d_d4d8_36a4_1c37_32dd70b4b0c5 -->|defined in| cfe2515b_ab6b_e576_a031_f986d4835acf af9bc46a_b42c_7b43_469d_8b3a6d336038["composeRedirectURL()"] 973b023d_d4d8_36a4_1c37_32dd70b4b0c5 -->|calls| af9bc46a_b42c_7b43_469d_8b3a6d336038 style 973b023d_d4d8_36a4_1c37_32dd70b4b0c5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
client/transport.go lines 299–348
func doRedirectsWithClient(req *fasthttp.Request, resp *fasthttp.Response, maxRedirects int, client redirectClient) error {
currentURL := req.URI().String()
redirects := 0
singleRequestOnly := maxRedirects <= 0
if maxRedirects < 0 {
maxRedirects = defaultRedirectLimit
singleRequestOnly = false
}
for {
req.SetRequestURI(currentURL)
if err := client.Do(req, resp); err != nil {
return err
}
statusCode := resp.Header.StatusCode()
if !fasthttp.StatusCodeIsRedirect(statusCode) {
return nil
}
if singleRequestOnly {
return nil
}
redirects++
if redirects > maxRedirects {
return fasthttp.ErrTooManyRedirects
}
location := resp.Header.Peek("Location")
if len(location) == 0 {
return fasthttp.ErrMissingLocation
}
nextURL, err := composeRedirectURL(currentURL, location, req.DisableRedirectPathNormalizing)
if err != nil {
return err
}
currentURL = nextURL
if req.Header.IsPost() && (statusCode == fasthttp.StatusMovedPermanently || statusCode == fasthttp.StatusFound || statusCode == fasthttp.StatusSeeOther) {
req.Header.SetMethod(fasthttp.MethodGet)
req.SetBody(nil)
req.Header.Del(fasthttp.HeaderContentType)
req.Header.Del(fasthttp.HeaderContentLength)
}
}
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does doRedirectsWithClient() do?
doRedirectsWithClient() is a function in the fiber codebase, defined in client/transport.go.
Where is doRedirectsWithClient() defined?
doRedirectsWithClient() is defined in client/transport.go at line 299.
What does doRedirectsWithClient() call?
doRedirectsWithClient() calls 1 function(s): composeRedirectURL.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free