
Many HTTP clients such as popular browsers like Mozilla Firefox and Internet Explorer do not obey this status code for security reasons.
HTTP 305 Use Proxy means the resource the client requested is only accessible through a proxy, and the server provides the proxy address in its response. It is part of the 3xx redirect class of status codes. In practice, this code is deprecated and rarely encountered in modern web development.
A server returns 305 when it wants to instruct the client to re-send the request through a specific proxy rather than accessing the resource directly. The proxy address is included in the Location header of the response. This behavior was defined in the HTTP/1.1 specification under RFC 2616.
HTTP 305 was deprecated primarily due to security concerns around in-band proxy configuration, where a malicious server could redirect a client's traffic through an attacker-controlled proxy. Because of this risk, major browsers deliberately ignore 305 responses. The HTTP specification itself advises against its use.
No — most browsers and HTTP clients intentionally do not act on a 305 response. This means even if a server correctly sends a 305, the client will likely not follow the proxy instruction.
HTTP 305 was a proxy-specific redirect that directed clients to access a resource through a designated proxy server, while HTTP 307 Temporary Redirect is a general-purpose redirect telling the client to repeat the request at a different URL using the same HTTP method. Unlike 305, HTTP 307 is actively supported and widely used in modern applications.
Because 305 is deprecated and unsupported by most clients, proxy configuration should be handled outside of HTTP responses — for example, through network-level or browser-level proxy settings. If you need to redirect a client to a different location, use a standard redirect code such as 307 Temporary Redirect or 308 Permanent Redirect instead.