# 305 Use Proxy

> https://http-status.org/docs/305

**Family:** 3xx Redirection

## Rationale

Historical and deprecated: told the client to access the resource through a proxy named in Location.

## In Plain Terms

This is an old HTTP idea that said, 'Use this proxy instead,' but modern systems should not rely on it.

## Description

The HTTP 305 Use Proxy status code is deprecated and should not be used in modern HTTP systems. Historically it told the client that the requested resource had to be accessed through the proxy identified by the Location header, but that in-band proxy configuration model created security concerns.

## Server Perspective

### Usage
- Avoid 305 for real application behavior because it is deprecated and unsafe as a proxy-configuration signal
- Use explicit proxy setup or ordinary redirect codes instead of trying to steer clients through a proxy this way
- When reading historical HTTP documentation or troubleshooting legacy traffic captures
- When teaching why modern HTTP avoids server-directed proxy configuration

### Implementation
- If you maintain a legacy component that still knows about 305, plan to remove or replace that behavior
- Do not introduce new 305 responses in APIs, gateways, or web applications

### Common Headers
- Location

### Body
- No modern product flow should depend on a 305 response body; the historical proxy target was carried in Location

### Pitfalls
- Do not use 305 as a shortcut for network routing or access control
- Do not trust clients to safely follow proxy instructions delivered in-band
- Modern APIs, browsers, or application redirects
- Proxy authentication flows; use explicit proxy configuration and 407 where appropriate
- Temporary or permanent resource moves; use the normal redirect codes instead

## Client Perspective

### Pitfalls
- Do not treat 305 like a safe modern redirect

## Examples

### Legacy proxy instruction in an old spec example

This reflects the historical meaning, but modern clients generally should not obey such instructions automatically.

**Request:**
```
GET https://api.example.test/resource
```

**Response:**
```
305 Use Proxy
Location: http://proxy.example.net:8080
```

## Related Codes

- [306 Unused](/docs/306.md)
- [307 Temporary Redirect](/docs/307.md)
- [407 Proxy Authentication Required](/docs/407.md)

