305 Redirection (Deprecated) πŸ“‹

305 Use Proxy: A Deprecated Status Code

Last updated: June 28, 2026 β€’ 3 min read

✦ The Golden Answer: The 305 Use Proxy status code was historically used to tell the client that the requested resource must be accessed through a specific proxy, identified in the Location header. However, this status code is now deprecated and should not be used. It was removed from the HTTP/1.1 specification due to security concerns, as a malicious server could force a client to route traffic through a rogue proxy. Modern clients ignore 305 entirely.

Original Purpose

In early HTTP specifications, 305 was intended to support proxy configuration. The server would respond with:

HTTP/1.1 305 Use Proxy Location: http://proxy.example.com:8080/

The client would then repeat the request through the specified proxy. This was meant to simplify network administration.

Why It Was Deprecated

  • Security risks – a compromised server could redirect clients to a malicious proxy that intercepts or modifies traffic.
  • Poor client support – most browsers never implemented 305 correctly.
  • Better alternatives – manual proxy configuration (PAC files, system settings) is more secure and flexible.
  • HTTP/1.1 update – the specification (RFC 7231) explicitly states that 305 is deprecated and clients should treat it as equivalent to 302.

Current Behavior

Modern browsers and HTTP clients:

  • Do not automatically switch to the proxy.
  • Treat 305 as if it were a 302 Found or ignore it.
  • May display a warning or error, but will not route through the specified proxy.

What to Use Instead

  • Manual proxy configuration – users can set proxy settings in their browser or operating system.
  • PAC (Proxy Auto-Configuration) – a JavaScript file that tells browsers which proxy to use for which URLs.
  • WPAD (Web Proxy Auto-Discovery) – a DNS-based discovery method.
  • Application‑level proxies – if you control the client, configure the proxy in your code directly.

For HTTP status codes, simply avoid 305. If you need to indicate that a resource is accessible via a proxy, it's better to use 200 with a body containing the proxy information, or to handle proxy configuration at the client level.

Frequently Asked Questions

Is 305 Use Proxy still used anywhere?

No, it is effectively obsolete. It may appear in legacy systems, but it is not supported by modern browsers. Some proxy software may still send it, but clients ignore it.

What should I do if I receive a 305 response?

You should treat it as a temporary redirect (like 302) and ignore the proxy suggestion. Most libraries handle this automatically.

Can I use 305 for my own purposes?

No, it is reserved and deprecated. Using it may cause unexpected behavior in clients. Choose another status code or a custom header instead.