305 Use Proxy
The HTTP 305 Use Proxy status code is a deprecated status code returned by an origin server to indicate the requested resource is accessible only through a proxy.
Usage
The 305 Use Proxy status code instructs the client to obtain the requested resource through a proxy. The proxy address is specified in the Location header.
Deprecated
The 305 Use Proxy status code has been deprecated due to security concerns. Most HTTP clients do not act on this status code.
Example
The client requests a specific resource, and the server responds with 305 Use Proxy to indicate where the client sends an identical request.
Request
GET /document.pdf HTTP/1.1
Host: www.example.re
Response
HTTP/1.1 305 Use Proxy
Location: https://proxy.example.re:8080
Code references
.NET
HttpStatusCode.UseProxy
Rust
http::StatusCode::USE_PROXY
Rails
:use_proxy
Go
http.StatusUseProxy
Symfony
Response::HTTP_USE_PROXY
Python3.5+
http.HTTPStatus.USE_PROXY
Java
java.net.HttpURLConnection.HTTP_USE_PROXY
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_USE_PROXY
Angular
@angular/common/http/HttpStatusCode.UseProxy
Takeaway
The 305 Use Proxy status code indicates the request needs to go through a proxy at the Location specified in the response. This status code is deprecated and not honored by most modern clients.