Tests performed to examine how browsers handle HTTP response codes with variation on response headers and included\omitted content payload.
All tests performed using form POST to request test response
Tests performed with and without response body content
Tests performed with and without Location header
Firefox, Opera, Safari & Chrome tested on OSX 10.6
IE tested on Windows 7 64-bit
Render = Response body, if exists, rendered by UA
Status | Message | Firefox 3.x | Opera 11.x | Safari 5.x | Chrome 10.x | IE 9.x | |
---|---|---|---|---|---|---|---|
1xx Informational | |||||||
100 | Continue | Timeout - Response HTTP/0.9 200 OK | Timeout - Browser Error Page | Timeout - Browser Error Page | Timeout - Response 200 OK | Timeout - Browser Error Page | |
101 | Switch Protocols | Timeout - Repsonse HTTP/0.9 200 OK | Timeout - Browser Error Page | Timeout - Browser Error Page | Timeout - Response 200 OK | Timeout - Browser Error Page | |
102 | Processing | Timeout - Response HTTP/0.9 200 OK | Timeout - Browser Error Page | Timeout - Browser Error Page | Timeout - Response 200 OK | Timeout - Browser Error Page | |
122 | Request URI Too Long | Timeout - Response HTTP/0.9 200 OK | Timeout - Browser Error Page | Timeout - Browser Error Page | Timeout - Response 200 OK | Timeout - Browser Error Page | |
2xx Success | |||||||
200 | OK | Render | Render | Render | Render | Render | |
201 | Created | Render | Render | Render | Render | Render | |
202 | Accepted | Render | Render | Render | Render | Render | |
203 | Non-Authoritative Information | Render | Render | Render | Render | Render | |
204 | No Content | If (content) Rewrite: 200 | If (content) Rewrite: 200 | If (content) Rewrite: 200 | If (content) Rewrite: 200 | If (content) Rewrite: 200 else Abort | |
205 | Reset Content | No content | Render | Render | Timeout | Render | |
206 | Partial Content | Render | Render | Render | Render | Render | |
207 | Multi-Status | Render | Render | Render | Render | Render | |
3xx Redirection | |||||||
300 | Multiple Choices | if (content) Render else Follow Location | if (content) Render else Follow Location | Render | Render | if (content) Render else Follow Location | |
301 | Moved Permenantly | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Browser Error Page else Follow Location | |
302 | Moved Permenantly | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Browser Error Page else Follow Location | |
303 | See Other | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Browser Error Page else Follow Location | |
304 | Not Modified | No Content | Open\Save Dialog Box | if (content) Hang else No Content | if (content) Escape else Browser Error Page: ERR_FILE_NOT_FOUND | if (content) Timeout else No Content | |
305 | Use Proxy | Render | Render | if (content) Render else Follow Location | Render | Render | |
306 | Switch Proxy | Render | Render | if (content) Render else Follow Location | Render | Render | |
307 | Temporary Redirect | if (content) Render else Popup Confirmation Redirect | if (content) Render else Popup Confirmation Redirect | if (content) Render else Follow Location | if (content) Render else Follow Location | if (content) Browser Error Page else Follow Location | |
4xx Client Error | |||||||
400 | Bad Request | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
401 | Unauthorized | Render | Render | Render | Render | Render | |
402 | Payment Required | Render | Render | Render | Render | Render | |
403 | Forbidden | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
404 | Not Found | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
405 | Method Not Allowed | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
406 | Not Acceptable | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
407 | Proxy Authentication Required | Render | Render | Render | Browser Error Page: ERR_UNEXPECTED_PROXY_AUTH | Render | |
408 | Request Timeout | Browser Error Page | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
409 | Conflict | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
410 | Gone | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
411 | Length Required | Render | Render | Render | Render | ||
412 | Precondition Failed | Render | Render | Render | Render | Render | |
413 | Request Entity Too Large | Render | Render | Render | Render | Render | |
414 | Request-URI Too Long | Render | Render | Render | Render | Render | |
415 | Unsupported Media Type | Render | Render | Render | Render | Render | |
416 | Requested Range Not Satisfiable | Render | Render | Render | Render | Render | |
417 | Expectation Failed | Render | Infinite 100-Continue | Render | Render | Render | |
422 | Unprocessable Entity | Render | Render | Render | Render | Render | |
423 | Locked | Render | Render | Render | Render | Render | |
424 | Failed Dependency | Render | Render | Render | Render | Render | |
425 | Unordered Collection | Render | Render | Render | Render | Render | |
426 | Upgrade Required | Render | Render | Render | Render | Render | |
440 | Login Timeout | Render | Render | Render | Render | Render | |
444 | No Response | Render | Render | Render | Render | Render | |
449 | Retry With | Render | Render | Render | Render | Render | |
499 | Client Closed Request | Render | Render | Render | Render | Render | |
5xx Server Error | |||||||
500 | Internal Server Error | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
501 | Not Implemented | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
502 | Bad Gateway | Render | Render | Render | Render | Render | |
503 | Service Unavailable | Render | Render | Render | Render | Render | |
504 | Gateway Timeout | Render | Render | Render | Render | Render | |
505 | HTTP Version Not Supported | Render | Render | Render | Render | if (content < 512 bytes) Browser Error Page else Content | |
506 | Variant Also Negotiates | Render | Render | Render | Render | Render | |
507 | Insufficient Storage | Render | Render | Render | Render | Render | |
508 | Bandwidth Limit Exceeded | Render | Render | Render | Render | Render | |
510 | Not Extended | Render | Render | Render | Render | Render |