303 See Other
Fault: Neither
TL;DR
Redirect to another resource using GET method.
The response to the request can be found at another URL using GET.
What HTTP 303 See Other Means
The response to the request can be found at another URL using GET.
Redirect to another resource using GET method.
Common Causes
- POST/PUT/DELETE redirect to GET resource
- Form submission redirect
How to Fix It (For Visitors)
- Browser should automatically redirect
How to Fix It (For Developers/Admins)
- Use after POST to redirect to GET resource
- Prevents form resubmission
Returning a 303 See Other (Code Examples)
If you build APIs or web apps, here is how to send an HTTP 303 response and how to test for it:
Node.js (Express)
app.get('/resource', (req, res) => {
res.status(303).json({ error: 'See Other' });
});
Python (Flask)
@app.route('/resource')
def resource():
return jsonify(error='See Other'), 303
PHP
<?php
http_response_code(303);
header('Content-Type: application/json');
echo json_encode(['error' => 'See Other']);
Check the status with curl
curl -I https://example.com/resource
# Look for: HTTP/1.1 303 See Other
Frequently Asked Questions
What does HTTP 303 See Other mean?
Redirect to another resource using GET method. In short: The response to the request can be found at another URL using GET.
How should I handle an HTTP 303 See Other response?
Use after POST to redirect to GET resource. Prevents form resubmission.
Official Specification
The 303 See Other status code is defined in RFC 7231 Section 6.4.4.