HTTPError.net

The fastest way to diagnose, understand, and fix any HTTP status code

305 Use Proxy

Fault: Neither
TL;DR

A deprecated redirect telling the client to use a specific proxy. It is no longer used because of security concerns and is ignored by modern browsers.

The requested resource must be accessed through the proxy given in the Location header.

What HTTP 305 Use Proxy Means

The requested resource must be accessed through the proxy given in the Location header.

A deprecated redirect telling the client to use a specific proxy. It is no longer used because of security concerns and is ignored by modern browsers.

Common Causes

How to Fix It (For Visitors)

How to Fix It (For Developers/Admins)

Returning a 305 Use Proxy (Code Examples)

If you build APIs or web apps, here is how to send an HTTP 305 response and how to test for it:

Node.js (Express)

app.get('/resource', (req, res) => {
  res.status(305).json({ error: 'Use Proxy' });
});

Python (Flask)

@app.route('/resource')
def resource():
    return jsonify(error='Use Proxy'), 305

PHP

<?php
http_response_code(305);
header('Content-Type: application/json');
echo json_encode(['error' => 'Use Proxy']);

Check the status with curl

curl -I https://example.com/resource
# Look for: HTTP/1.1 305 Use Proxy

Frequently Asked Questions

What does HTTP 305 Use Proxy mean?

A deprecated redirect telling the client to use a specific proxy. It is no longer used because of security concerns and is ignored by modern browsers. In short: The requested resource must be accessed through the proxy given in the Location header.

How should I handle an HTTP 305 Use Proxy response?

Do not use 305 - it is deprecated and unsupported. Configure proxies through standard client/network settings instead.

Official Specification

The 305 Use Proxy status code is defined in RFC 9110 Section 15.4.6.

View the IANA HTTP Status Code Registry →