Fact-checked by Grok 2 weeks ago

HTTP 302

The HTTP 302 status code, also known as "Found", is a standard redirection response in the Hypertext Transfer Protocol (HTTP) that indicates the target resource has temporarily relocated to a different (), with the server providing the new via the Location header field to guide the client in issuing a follow-up request. This code belongs to the 3xx family of redirection codes and signals a temporary change, meaning clients should continue using the original for future requests rather than treating the relocation as permanent. Defined in the HTTP/1.1 semantics, it allows servers to respond to a request without fulfilling it directly, often including an optional representation of the resource or a hypertext note with a to the temporary . In practice, web browsers and user agents typically handle 302 responses by automatically redirecting the client to the URI in the Location header, often converting non-GET methods (such as POST) to GET requests per the Fetch Standard to avoid unintended side effects like resubmitting form data. This behavior makes 302 commonly used for scenarios like temporary maintenance redirects, load balancing across servers, or post-submission confirmations where the original resource might return to its prior location later. However, unlike the 301 (Moved Permanently) code, which implies a lasting change, a 302 does not update search engine indexing permanently and is not intended for long-term redirects; the 301 allows for SEO link equity transfer while 302 does not. Similarly, it differs from 303 (See Other), which explicitly mandates a GET redirect regardless of the original method, making 302 more flexible but potentially leading to method changes in some implementations. Servers issuing a 302 response must include a valid header with an absolute or relative , and clients are encouraged—but not required—to follow it, with provisions to detect and avoid infinite redirection loops. The code originated in HTTP/1.0 as "Moved Temporarily" but was renamed "Found" in HTTP/1.1 to better reflect its semantics of rather than , and it remains unchanged in modern HTTP specifications. While effective for temporary scenarios, developers are advised to use 307 (Temporary Redirect) for preserving the original request method or 303 for forcing GET in cases involving unsafe methods like , to ensure predictable behavior across clients.

Overview

Definition

The HTTP 302 status code, officially designated as "302 Found," indicates that the target resource resides temporarily under a different URI. This response informs the client that the requested resource has been moved to a new location on a short-term basis, and the redirection may change over time. Semantically, the server instructs the client to issue a subsequent request to the URI provided in the Location header field, reusing the original request method and payload where applicable. However, due to historical ambiguities in earlier HTTP specifications, user agents may change the request method from POST to GET in the redirected request, a behavior that the 302 code does not strictly prohibit. A key attribute of the 302 Found code is its non-permanent nature; clients ought to continue using the effective request URI for future requests and should not update bookmarks, cached references, or permanent links based on this redirection. This temporary redirection ensures that the original resource location remains the primary reference point until a more stable change is indicated by other status codes.

Purpose

The HTTP 302 Found status code serves as a mechanism for servers to indicate that the requested resource is temporarily available at a different , prompting the client to redirect its request accordingly without implying a permanent change. This allows web servers to handle transient situations where the original resource location is unavailable or suboptimal, ensuring that future requests to the original continue to be directed there until the temporary condition resolves. The response typically includes a header specifying the alternative URI, and the server may provide a brief hypertext note with a to facilitate user navigation. In practice, the 302 code is commonly used for temporary resource relocation in scenarios such as site maintenance or load balancing. It supports the code's non-committal nature, avoiding permanent changes in or long-term updates that could occur with permanent redirects like 301. By enabling seamless navigation to these interim locations, the 302 response enhances in dynamic web environments. User agents typically automatically follow the redirect, preserving the original method where possible, but may change non-idempotent methods like to GET. This maintains continuity in resource retrieval while preserving the original request for subsequent interactions. Unlike 4xx client error or 5xx server codes, the 302 is a redirection status within the 3xx family, signifying a successful initial response that instructs the client to take further action rather than indicating a failure. This classification ensures it does not trigger handling in applications but instead facilitates proactive , with caching possible only if explicitly allowed by accompanying headers like Cache-Control.

History and Specifications

Origins in HTTP/1.0

The HTTP 302 status code, known as "Moved Temporarily," was introduced in the HTTP/1.0 specification outlined in RFC 1945, published in May 1996. This document, authored by , , and Henrik Frystyk Nielsen, represented the first formal standardization of HTTP as part of the foundational infrastructure for the , initially developed at to enable distributed information sharing among researchers. The code was defined in Section 9.3 to signal that a requested resource had been temporarily relocated to a new URI, with the server providing the temporary location via the Location header, while advising clients to continue using the original URI for future requests. In the context of the early 1990s pre-commercial internet, HTTP/1.0 emerged during the web's infancy, when the protocol primarily supported simple, text-based hypermedia navigation over nascent networks like the early successors. The 302 code was crafted to handle basic scenarios of resource relocation, such as during site maintenance or experimental server configurations at institutions like , without assuming persistent changes that might disrupt the evolving ecosystem of interconnected documents. This design prioritized minimalism to accommodate limited and rudimentary client-server interactions, focusing on temporary redirects to maintain accessibility in a system still dominated by academic and research use cases. The HTTP/1.0 specification provided directives on handling redirected requests under 302 responses, requiring user agents not to automatically redirect POST requests without user confirmation to avoid changing request conditions, though this led to inherent ambiguity and inconsistent implementations as some early user agents erroneously transformed non-GET methods to GET, potentially altering intended semantics like form submissions. Such variations stemmed from the protocol's experimental origins and the absence of robust testing frameworks, highlighting the challenges of standardizing behaviors in a rapidly growing but fragmented web environment.

Evolution in HTTP/1.1 and Later

In the specification for HTTP/1.1, outlined in RFC 2616 published in June 1999, the 302 status code was renamed from "Moved Temporarily" (as used in HTTP/1.0) to "302 Found," with explicit emphasis on its role in indicating temporary resource relocation rather than a permanent change. This update aimed to clarify that the redirection applies only for the current request session, and user agents were required not to automatically redirect non-GET or non-HEAD requests without user confirmation, preserving the original request method. RFC 7231, published in June 2014 and obsoleting key aspects of RFC 2616, provided further clarifications to the 302 code's semantics while retaining the "Found" designation. It deprecated the prior strict rule against automatic redirection for requests by permitting user agents to change the method to GET, reducing interoperability issues with legacy clients, and reinforced that 302 responses denote temporary moves without encouraging caching of the redirect itself unless overridden by explicit headers like Cache-Control. These adjustments addressed ambiguities in earlier implementations, ensuring more consistent handling across diverse HTTP/1.1 environments. Following the 2014 updates, the 302 status code has seen no substantive changes in subsequent protocol versions, maintaining stability in its core definition. , specified in 7540 (May 2015), preserves all 3xx redirection codes including 302 with identical semantics, leveraging the protocol's binary framing and multiplexing for more efficient transmission of redirect responses without altering their meaning. Likewise, as defined in 9114 (June 2022) adopts the unchanged 302 semantics from the consolidated HTTP core in 9110, benefiting from QUIC's low-latency transport to streamline redirect processing in modern networks.

Syntax and Implementation

Response Structure

The HTTP 302 response follows the standard structure of an HTTP message, consisting of a status line, zero or more header fields, a blank line indicating the end of headers, and an optional message body. The status line begins with the HTTP version (e.g., HTTP/1.1), followed by a space, the numeric status code 302, another space, and a reason phrase such as "Found", terminated by a and line feed (CRLF, or \r\n). This indicates a temporary redirection, where the target resource resides temporarily under a different . The response requires a Location header field containing a URI reference (absolute or relative) to the temporary location of the resource; relative URIs are resolved relative to the original target URI, and any fragment identifier from the original URI may be inherited if not present in the Location value. No other headers are strictly mandatory for a 302 response, though general HTTP headers like or may be included for protocol compliance. If a message body is present, it is typically short and human-readable, such as a hypertext note with a link to the new URI, but including a body is discouraged for redirects to avoid unnecessary data transfer; in such cases, a Content-Type header (e.g., text/html) would specify the body's media type. The body, if included, follows the blank line after the headers and is terminated by the connection close or a Content-Length header. An example of a minimal 302 response in wire format is:
HTTP/1.1 302 Found\r\n
Date: Sun, 09 Nov 2025 12:00:00 GMT\r\n
Server: ExampleServer/1.0\r\n
Location: https://example.com/temporary-location\r\n
Content-Length: 0\r\n
\r\n
This snippet shows the status line, common headers, and an empty body indicated by Content-Length: 0.

Associated Headers

The header is a required component of an HTTP 302 response, specifying the target to which the client should redirect for the temporary relocation of the . Per 7231, the server must include this header field containing a URI reference for the alternative URI, and user agents are expected to resolve it according to the rules in RFC 3986. To manage caching and avoid serving stale redirects, servers often include Cache-Control or Expires headers in 302 responses. The Cache-Control directive "no-cache" instructs caches to store the response but validate it with the origin server before reuse, using mechanisms like conditional requests, while "no-store" prevents storage altogether to ensure freshness for temporary redirects. Similarly, an Expires header can set a specific expiration time, but directives like Cache-Control: max-age=0 effectively render the response immediately stale, prompting revalidation. Other headers may accompany HTTP 302 responses to handle specific scenarios, such as Retry-After, which indicates the minimum time the client should wait before issuing the redirected request, expressed in seconds or an HTTP-date. The Set-Cookie header can also be included to establish or update for session , allowing the client to send them in the subsequent request to the new after the redirect. For interoperability, the Location header supports relative URI references, which user agents resolve against the effective request URI to form an absolute URI, ensuring consistent redirection even without a full absolute path.

Versus 301 Permanent Redirect

The HTTP 302 Found status code indicates that a resource has temporarily relocated to a different , prompting clients to issue a new request to the provided header without updating their references to the original . In contrast, the Moved Permanently status code signals a lasting relocation, directing clients to adopt the new for all future requests and update any stored references, such as bookmarks. This distinction in permanence ensures that 302 redirects do not alter long-term client behavior, while 301 redirects facilitate a seamless transition to the updated resource . Regarding request method handling, both 302 and 301 responses result in user agents typically converting the redirected request to GET regardless of the original method (such as ), per the Fetch Standard, to avoid unintended side effects. This behavior aligns with the specifications' cautions against automatic redirection for unsafe methods without safeguards. Thus, both codes maintain safe, retrieval-oriented follow-ups without implying method preservation, though 301's permanence may influence caching and reference updates more enduringly. In terms of (SEO), a 302 redirect passes minimal link equity to the target , as search engines like treat it as temporary and continue prioritizing the original in indexing and rankings. Conversely, a 301 redirect fully transfers link equity—often 90-99% of the original's value—to the new , enabling it to inherit the SEO authority and appear in search results. This makes 301 ideal for preserving ranking signals during permanent changes, while 302 risks diluting equity if misused for ongoing redirects. Use cases for 302 diverge from 301 by focusing on short-term scenarios, such as redirecting users to a page during brief site downtime or landing pages without committing to a new structure. In these situations, the temporary signal avoids unnecessary updates to client references or search indices. 301, however, suits long-term URL updates, like domain migrations or content reorganizations, where the new location becomes the definitive endpoint. Misapplying 302 for permanent moves can lead to fragmented signals, underscoring the need for precise selection based on relocation duration.

Versus 303 See Other and 307 Temporary Redirect

The HTTP 302 Found status code, while indicating a temporary redirection similar to 307 Temporary Redirect, differs primarily in its handling of the original request method, leading to historical ambiguities that 303 See Other and 307 were designed to address. Specifically, 302's flexible semantics allow user agents to change non-GET methods, such as POST, to GET during redirection; this has resulted in consistent implementations converting to GET per the Fetch Standard, potentially risking loss of request body data in legacy contexts. In contrast, 303 See Other explicitly mandates that the client use the GET method to retrieve the redirected resource, regardless of the original request method, making it particularly suitable for scenarios like form submissions following a POST to prevent accidental resubmission of the form data. This forced method change in 303 ensures a safe, retrieval-oriented follow-up without preserving the original semantics. The 307 Temporary Redirect, introduced alongside 303 in HTTP/1.1, provides a stricter alternative to 302 by requiring that the original request method and body be preserved in the redirected request, thus avoiding any automatic conversion to GET. Unlike 302's permissive behavior, which could lead to unintended method alterations, 307 ensures the integrity of method-sensitive operations, such as retrying a POST at a temporary alternative URI. Both 303 and 307 were created to resolve the ambiguities inherent in 302's legacy usage, especially in handling form submissions where preserving or altering the method could affect data submission reliability. In modern HTTP semantics as updated in RFC 9110, 307 is preferred over 302 for temporary redirects in scenarios requiring method preservation, offering clearer intent and reducing compatibility issues with diverse clients. This preference stems from 302's observed inconsistencies in practice, prompting servers to use 303 for GET-forced redirects after POST actions and 307 for method-preserving temporary shifts.

Client Behavior and Implications

Browser Handling

Web browsers and HTTP clients, such as those in and , process an HTTP 302 Found response by automatically initiating a new request to the specified in the header, treating the redirection as temporary. This behavior aligns with the Fetch Standard, which mandates following redirects for status codes including 302 when the redirect mode is set to "follow," the default for most browser-initiated requests. For requests using methods other than GET or , such as , browsers typically convert the method to GET and nullify the request body in the redirected request, a practice rooted in historical HTTP/1.1 semantics to ensure safe idempotency, though this can lead to loss of form data unless a 303 See Other code is used instead. To prevent infinite redirect loops, browsers impose strict limits on the length of redirect chains, as defined in the Fetch Standard with a default maximum of 20 redirects before terminating the process and returning a network error. In , this limit is configurable via the network.http.redirection-limit preference, which defaults to 20. enforces the same maximum of 20 redirects, after which it displays an error like ERR_TOO_MANY_REDIRECTS. Exceeding this threshold triggers a failure state, protecting users from resource exhaustion or denial-of-service scenarios induced by cyclic redirections. User-facing interactions with 302 redirects are generally seamless and transparent, with the browser navigating to the new location without prompting or interrupting the user experience. However, the redirection process becomes visible in developer tools, such as the Network tab in Chrome DevTools or Firefox's Inspector, where the chain of requests and responses can be inspected for debugging. In cases of failure, such as loop exceedance or invalid Location URIs, browsers may surface an error page or console message to inform the user, though successful redirects remain imperceptible during normal browsing. Regarding cross-origin scenarios, browsers enforce the on the target resource following a 302 redirect, ensuring that scripts and other features cannot access the redirected content unless it shares the origin with the initiating page. For cross-origin redirects—where the Location URI differs in scheme, host, or port—CORS preflight checks and Access-Control-Allow-Origin headers are required if the request involves credentials or non-simple methods, as the redirection updates the request's URL list and may taint the response as cross-site. This mechanism prevents unauthorized data leakage while allowing legitimate navigational redirects across origins in standard hyperlink or form submissions.

Caching and Performance Effects

HTTP 302 responses are not cacheable by default, as the 302 status code is not listed among cacheable status codes in RFC 9111, to ensure clients always fetch the latest redirect target given the temporary nature of the relocation. Servers can explicitly prevent caching by including the Cache-Control: no-store directive, which instructs clients and intermediaries to avoid storing the response. This behavior aligns with the semantics in RFC 9111, where redirects without freshness indicators like max-age or Expires are considered uncacheable unless explicit directives permit caching, to prevent serving outdated temporary redirects. Intermediaries such as content delivery networks (CDNs) and proxies may 302 responses if explicitly permitted by headers like Cache-Control: public, max-age=3600, but this introduces risks of delivering stale redirects that no longer point to the correct temporary location. For instance, Akamai's property manager allows configurable for 302 and 307 redirects to optimize delivery, yet documentation warns that improper settings can lead to prolonged exposure of invalid URIs. Such is generally discouraged for temporary redirects unless the backend guarantees short-lived changes, as it can undermine the "found" semantics intended to reflect dynamic resource movement. The use of HTTP 302 introduces performance overhead primarily through additional round-trip times (RTTs), as clients must issue a follow-up request to the header's after receiving the redirect. In real-world networks, this typically adds 100-300 milliseconds of per redirect, depending on factors like and quality, with CDN-optimized redirects on the lower end around 10-200 milliseconds. Multiple chained redirects exacerbate this, potentially increasing total load times by hundreds of milliseconds and contributing to higher abandonment rates in user-facing applications. To mitigate these effects, protocols like enable multiplexing, allowing parallel streams that reduce during redirect chains, though the sequential nature of resolution still incurs RTT costs. Client-side techniques such as resource prefetching via <link rel="prefetch"> can anticipate redirects and preload targets, minimizing perceived in scenarios like single-page applications. Overall, minimizing 302 usage or combining it with caching directives for stable temporary redirects balances performance without compromising correctness.

Security and Best Practices

Vulnerability Risks

The HTTP 302 Found status code is frequently implicated in open redirect vulnerabilities, where a incorporates untrusted user input into the Location header without proper validation, allowing attackers to redirect users to arbitrary malicious sites. This occurs when parameters such as a are directly used to construct the redirect target, enabling attacks by tricking users into believing they are visiting a legitimate domain. For instance, an attacker might append a malicious to a legitimate site's redirect , such as example.com/redirect?url=phishingsite.com, prompting the to issue a 302 response that leads the to the attacker's controlled page. Beyond client-side deception, HTTP 302 redirects can contribute to server-side request forgery (SSRF) risks if the server automatically follows untrusted redirects to internal or restricted resources. In such scenarios, an attacker supplies a redirect URL that points to localhost or internal network endpoints, and poor handling of the 302 response on the server side may result in unintended requests exposing sensitive data like metadata services or administrative panels. This vulnerability has been documented in frameworks where redirect logic fails to sanitize or block follow-on requests, potentially amplifying SSRF impacts in cloud environments. Historically, HTTP 302 open redirects have been exploited in authentication flows, particularly OAuth implementations and login pages, to facilitate account takeovers or token theft. In OAuth scenarios, attackers manipulate the redirect_uri parameter to an open redirect endpoint, intercepting authorization codes or access tokens during the callback process, as seen in vulnerabilities affecting platforms like Microsoft and GitHub services. The Open Web Application Security Project (OWASP) highlighted unvalidated redirects as a top risk in its 2013 Top 10 list (A10), and while not a standalone category in the 2021 edition, it remains a critical component of broken access control (A01), with ongoing prevalence in phishing campaigns targeting email security filters.

Mitigation Strategies

To mitigate risks associated with HTTP 302 redirects, server-side validation of the Location header is essential, involving whitelisting of permitted domains or paths to ensure redirects only point to trusted destinations and prevent unauthorized external routing. This approach uses allow-lists—such as regex patterns matching specific or relative paths—rather than deny-lists, which can be bypassed more easily. For instance, applications can parse and validate the , , and port against a predefined set before issuing the redirect response. On the client side, modern browsers employ built-in protections like Google's Safe Browsing, which scans and warns users about suspicious redirect chains potentially leading to sites by analyzing patterns and reputation data in . Additionally, implementing strict Referrer-Policy headers, such as "strict-origin-when-cross-origin," limits the exposure of sensitive referrer information during redirects, reducing the risk of information leakage across origins. Among best practices, developers should prefer HTTP 307 Temporary Redirect over 302 when method preservation is required, as 302 may convert requests to GET, potentially leading to unintended or exposure, whereas 307 mandates retaining the original method and body. Furthermore, logging all redirect attempts—including the originating request, target URI, , and timestamp—enables through (SIEM) systems, allowing identification of unusual patterns like repeated external redirects. For enhanced protection, integrate web application firewalls (WAFs) such as with the Core Rule Set (CRS), which includes rules to inspect and block invalid headers in real-time; support was added in 2024 (version 4.0.0), with ongoing updates including improved regex validation in subsequent releases as of 2025. This setup provides layered defense by automatically denying requests attempting open redirects while permitting legitimate internal navigation.

Usage Examples

Basic Redirect Scenario

In a typical web maintenance scenario, a website administrator may need to temporarily redirect traffic from an outdated , such as /old-page, to a new one like /new-page, to avoid broken links during a site update without implying permanence to search engines or users. This use of the HTTP 302 status code signals that the redirection is transient, prompting clients to refetch the resource at the new location, typically using the GET regardless of the original request method. On the server side, this can be implemented simply in using the mod_alias module within an .htaccess file. The directive Redirect /old-page /new-page issues a 302 response by default, appending the new path to the host's scheme and authority. For more precise control, mod_rewrite allows specifying the explicitly, as in:
RewriteEngine On
RewriteRule ^/old-page$ /new-page [R=302,L]
This rule matches the exact path /old-page and redirects it with a 302 , stopping further rewriting with the L flag. Similarly, in Nginx, the ngx_http_rewrite_module handles this via a return directive in the server or location block:
server {
    ...
    location = /old-page {
        return 302 $scheme://$host/new-page;
    }
}
Here, return 302 generates the redirect response using the request's scheme and host, ensuring the new URL is fully qualified. To trace the redirect chain from a client perspective, the curl command with verbose output (-v) and location following (-L) reveals the process. Executing curl -v -L http://example.com/old-page first receives the 302 response:
< HTTP/1.1 302 Found
< Location: http://example.com/new-page
< 
* Following redirect to http://example.com/new-page
The client then issues a new GET request to /new-page, fetching its content seamlessly. Without -L, would stop after the 302, displaying only the headers. In a , this 302 redirect results in automatic navigation to /new-page without user intervention or visible prompts, maintaining a smooth while the temporary change is in effect. The response includes a Location header pointing to the new , which user agents process to issue the follow-up request.

Advanced Configuration

In RESTful APIs, the HTTP 302 status code is employed for temporary endpoint redirection, such as during API versioning transitions where clients are guided from an older version to a newer one without implying permanence. For instance, a request to /api/v1/users might return a 302 response with a Location header pointing to /api/v2/users, allowing servers to phase out deprecated endpoints while maintaining for a limited period. This approach aligns with the temporary semantics of 302, as defined in RFC 9110, which specifies that the redirection may change and clients should not assume the new URI is enduring. Server-side scripts can dynamically generate the Location header value for 302 responses based on runtime factors like user input, session data, or geolocation. In with Express, the res.redirect() method defaults to issuing a 302 and supports constructing paths from request parameters; for example, a route handler might compute the target using query strings or headers to tailor the redirect, such as users to region-specific resources. This enables flexible, context-aware redirections without hardcoding URLs, though the computed URI must conform to URI-reference syntax per RFC 3986 to ensure validity. Chaining multiple 302 redirects occurs in distributed systems like load-balanced environments, where initial requests are sequentially forwarded across proxies or balancers to reach the appropriate backend, distributing traffic while preserving the temporary nature of each . To prevent loops, implementations must alter at least one URI component—such as , , , or —in each Location header, as unchanged redirects can trigger loop detection after a small number of iterations (e.g., 5–10 in common implementations), since clients are required to detect and avoid such loops. AWS Application Load Balancers, for example, enforce this by requiring modifications in redirect rules to avoid cycles during traffic routing. The Location header in a 302 response accepts URIs with query parameters and fragments, enabling preservation of stateful information like search terms or anchor points during redirection. Query parameters append after the path with a ? delimiter (e.g., Location: /newpage?param=value), while fragments follow with # (e.g., Location: /newpage#section), as permitted by the URI-reference format in RFC 9110, though servers should use absolute URIs to minimize ambiguity and browsers may strip or reattach fragments based on the response context. This handling supports complex scenarios like maintaining form data or client-side navigation states across redirects.

References

  1. [1]
  2. [2]
  3. [3]
    302 Found - HTTP - MDN Web Docs - Mozilla
    Jul 4, 2025 · The HTTP 302 Found redirection response status code indicates that the requested resource has been temporarily moved to the URL in the Location header.
  4. [4]
  5. [5]
  6. [6]
  7. [7]
  8. [8]
    Performing A/B Testing with NGINX and NGINX Plus - F5
    A/B testing is an effective way to analyze and track changes to your application and monitor application performance by splitting different amounts of traffic ...
  9. [9]
    Redirections in HTTP - MDN Web Docs - Mozilla
    Jul 4, 2025 · Temporary redirections are also used when creating, updating, or deleting resources, to show temporary progress pages. Code, Text, Method ...
  10. [10]
    RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0 - IETF Datatracker
    If the 302 status code is received in response to a request using the POST method, the user agent must not automatically redirect the request unless it can ...
  11. [11]
  12. [12]
  13. [13]
    Evolution of HTTP - MDN Web Docs
    This was known as RFC 1945 and defined HTTP/1.0. HTTP/1.1 – The standardized protocol. In the meantime, proper standardization was in progress. This happened ...
  14. [14]
    A short history of the Web | CERN
    By the end of 1990, Tim Berners-Lee had the first Web server and browser up and running at CERN, demonstrating his ideas. He developed the code for his Web ...Missing: specification | Show results with:specification
  15. [15]
    RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1) - IETF Datatracker
    This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header ...RFC 9110 · RFC 7234 · RFC 7230 · RFC 7235
  16. [16]
  17. [17]
  18. [18]
  19. [19]
    RFC 9114 - HTTP/3 - IETF Datatracker
    This document defines HTTP/3: a mapping of HTTP semantics over the QUIC transport protocol, drawing heavily on the design of HTTP/2.Missing: 302 | Show results with:302
  20. [20]
  21. [21]
  22. [22]
  23. [23]
  24. [24]
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
    Redirects and Google Search | Documentation
    Learn about the different types of redirects, how Google can interpret them, and how they can be useful in Google Search.Implement Server-Side... · Meta Refresh And Its Http... · Javascript Location...
  30. [30]
  31. [31]
  32. [32]
  33. [33]
  34. [34]
  35. [35]
  36. [36]
    Fetch Standard
    Summary of each segment:
  37. [37]
    Networking Preferences - Mozilla
    Jul 26, 2007 · 1.1 (default) 1.0. network.http.redirection-limit, 20. network.http.request.max-start-delay, 10. network.http.sendRefererHeader, 2. network.http ...
  38. [38]
    In Chrome, how many redirects are "too many"? - Stack Overflow
    Feb 21, 2012 · Google Chrome 17.0.963.56 allows a maximum of 20 redirects, as tested with this PHP script: <?php $redirect = (isset($_GET['redirect'])) ?What is the maximum number of HTTP redirections allowed by all ...Increase allowed redirects in browser? - Stack OverflowMore results from stackoverflow.com
  39. [39]
    Cross-Origin Resource Sharing (CORS) - HTTP - MDN Web Docs
    Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its ownReason: Credential is not... · Reason: CORS request... · Cross-site request forgery
  40. [40]
    Reason: CORS request external redirect not allowed - MDN Web Docs
    Jul 4, 2025 · The CORS request was responded to by the server with an HTTP redirect to a URL on a different origin than the original request, which is not permitted during ...
  41. [41]
  42. [42]
  43. [43]
    Cache HTTP Temporary Redirects - Akamai TechDocs
    Control the caching of HTTP 302 and 307 redirects. Temporary redirects only: This behavior covers only the caching of 302 and 307 temporary redirects.
  44. [44]
    HTTP Semantics - IETF HTTP Working Group
    This document updates RFC 3864 and obsoletes RFCs 2818, 7231 ... HTTP requirements for cache behavior and cacheable responses are defined in [CACHING] .
  45. [45]
    Why can redirects be slow? - httpstatus.io
    Good: Below 100ms - Redirect latency below 100ms is considered good and indicates a fast redirection process with minimal delay in the redirection process.Missing: metrics | Show results with:metrics
  46. [46]
    Web Performance 101 – Redirects - Catchpoint
    Apr 19, 2017 · Each redirect on a page adds latency to the overall page load time. Too many redirects translate to higher page overhead and this delays the page load.Missing: metrics | Show results with:metrics
  47. [47]
    Unvalidated Redirects and Forwards - OWASP Cheat Sheet Series
    Unvalidated redirects/forwards occur when untrusted input is used to redirect to a URL, potentially leading to phishing or access to privileged functions.Safe URL Redirects · Dangerous URL Redirects · Preventing Unvalidated...
  48. [48]
    Open redirection (reflected) - PortSwigger
    Open redirection vulnerabilities arise when an application incorporates user-controllable data into the target of a redirection in an unsafe way.
  49. [49]
    CWE-601: URL Redirection to Untrusted Site ('Open Redirect') (4.18)
    Open redirect vulnerability in the software allows remote attackers to redirect users to arbitrary web sites and conduct phishing attacks via a URL in the ...
  50. [50]
    Server-Side Request Forgery (SSRF) due to bad 302 redirect handling
    As the framework is quite complex, I'm going to take the default configuration as reference for the whole report. 🔒️ Requirements.
  51. [51]
    Lab: Stealing OAuth access tokens via an open redirect - PortSwigger
    To solve the lab, identify an open redirect on the blog website and use this to steal an access token for the admin user's account.
  52. [52]
    Microsoft and GitHub OAuth Implementation Vulnerabilities Lead to ...
    Dec 8, 2021 · Proofpoint has discovered several new, previously unknown methods to initiate a URL redirection attack using Microsoft and others' popular OAuth2.0 security ...
  53. [53]
    OWASP TOP 10 2013: Unvalidated redirects and forwards
    Aug 15, 2016 · Unvalidated redirects and forwards, also referred to as Open Redirect, is featured on OWASP's list of the ten most common vulnerabilities.
  54. [54]
    A01 Broken Access Control - OWASP Top 10:2025 RC1
    Broken access control means users can act outside their permissions, leading to unauthorized data access, modification, or destruction. 94% of applications ...
  55. [55]
    Open Redirect Vulnerability: How It Works & How to Prevent It
    Jul 30, 2025 · Understand what open redirect vulnerabilities are, how attackers exploit them, and how to prevent open redirects in APIs, OAuth, ...
  56. [56]
    Logging - OWASP Cheat Sheet Series
    This cheat sheet is focused on providing developers with concentrated guidance on building application logging mechanisms, especially related to security ...Which Events To Log · Event Attributes · Deployment And OperationMissing: anomaly | Show results with:anomaly
  57. [57]
    mod_alias - Apache HTTP Server Version 2.4
    If no status argument is given, the redirect will be "temporary" (HTTP status 302). This indicates to the client that the resource has moved temporarily. The ...
  58. [58]
    RewriteRule Flags - Apache HTTP Server Version 2.4
    R|redirect​​ Any valid HTTP response status code may be specified, using the syntax [R=305], with a 302 status code being used by default if none is specified. ...
  59. [59]
    Module ngx_http_rewrite_module - nginx
    In addition, a URL for temporary redirect with the code 302 can be specified as the sole parameter. Such a parameter should start with the “ http:// ”, “ https ...break · return · rewrite
  60. [60]
    Redirects - Everything curl
    A redirect is a server instruction to a client to look elsewhere. Curl doesn't follow redirects by default; use -L to enable it.
  61. [61]
    HTTP Status Codes - REST API Tutorial
    Aug 9, 2024 · 302 (Found). The HTTP response status code 302 Found is a common URL redirection method. An HTTP response with this status code will ...
  62. [62]
    Express 5.x - API Reference
    Summary of each segment: