HTTP Status Codes
2020-02-16
Technical and Programming
Many developers are familiar with a few key HTTP status codes and what they mean, but looking at the RFCs can be a time consuming and convoluted process if we want to keep up with all of them.
Here’s a cheat sheet I use to translate the official RFC description to something more understandable. It’s a little sweary, but all the good things in IT are.
# 1xx Wait for your shit
Code | HTTP Description | Definition | RFC |
---|---|---|---|
100 | Continue | I’m waiting for your shit, get on with it | RFC7231 |
101 | Switching Protocols | This ear’s shitty, talk to my good ear | RFC7231 |
102 | Processing | Piss off, I’m thinking | RFC2518 |
103 | Early Hints | Here’s the first bit of the answer, it might help you get shit done | RFC8297 |
# 2xx Here’s your shit
Code | HTTP Description | Definition | RFC |
---|---|---|---|
200 | OK | Shit! We’re all good | RFC7231 |
201 | Created | Look Mum, I made a thing | RFC7231 |
202 | Accepted | Got it, thanks! | RFC7231 |
203 | Non-Authoritative Information | A friend of a friend told me… | RFC7231 |
204 | No Content | I may or may not have done your shit, you don’t need to know | RFC7231 |
205 | Reset Content | I did your shit and I’ll do it again | RFC7231 |
206 | Partial Content | I’ve got more shit, but you told me not to say it | RFC7233 |
207 | Multi-Status | Different shit for some of those requests | RFC4918 |
208 | Already Reported | I’ve told you this shit before | RFC5842 |
226 | IM Used | This shit changed, you should know the other shit | RFC3229 |
# 3xx Your shit’s over here
Code | HTTP Description | Definition | RFC |
---|---|---|---|
300 | Multiple Choices | You gotta be more specific, but try this shit | RFC7231 |
301 | Moved Permanently | We moved that shit | RFC7231 |
302 | Found | We moved that shit and we’ll move it again | RFC7231 |
303 | See Other | Shit, I dunno, ask my friend | RFC7231 |
304 | Not Modified | Oh c’mon, I’ve already told you this shit | RFC7232 |
305 | Use Proxy | Our security is shit, so go via this proxy | RFC7231 (deprecated) |
306 | Switch Proxy | Not only is our security shit, but you’re talking to the wrong shitty security | DRAFT |
307 | Temporary Redirect | We moved this shit, but we’ll move it back soon | RFC7231 |
308 | Permanent Redirect | We moved this shit, here’s a map | RFC7523 |
# 4xx You fucked up
Code | HTTP Description | Definition | RFC |
---|---|---|---|
400 | Bad Request | You fucked up so bad we don’t know what you want | RFC7231 |
401 | Unauthorized | We know who you are, we just aren’t telling you shit | RFC7235 |
402 | Payment Required | This shit is gonna cost you | RFC7231 |
403 | Forbidden | We know that shit, but we aren’t telling you | RFC7231 |
404 | Not Found | That shit doesn’t exist | RFC7231 |
405 | Method Not Allowed | We can’t do that shit for you | RFC7231 |
406 | Not Acceptable | We know that shit, but we can’t explain in terms you understand | RFC7231 |
407 | Proxy Authentication Required | Some fucker in the middle wants a password | RFC7235 |
408 | Request Timeout | Fuck you talk slow! | RFC7231 |
409 | Conflict | That would fuck shit up | RFC7231 |
410 | Gone | That shit’s been deleted | RFC7231 |
411 | Length Required | I won’t do that shit unless you tell me how big it is | RFC7231 |
412 | Precondition Failed | I told me not to do shit if something was different; it was fucking different | RFC2518 |
413 | Payload Too Large | Stop sending me so much shit | RFC7231 |
414 | URI Too Long | No, seriously, stop sending me so much shit | RFC7231 |
415 | Unsupported Media Type | Piss off, I don’t speak that language | RFC7231 |
416 | Range Not Satisfiable | I know some shit about that, but you didn’t ask for the shit I know | RFC7233 |
417 | Expectation Failed | You made an assumption that was wrong, idiot | RFC7231 |
421 | Misdirected Request | Someone likely knows that shit, but it isn’t me | RFC7540 |
422 | Unprocessable Entity | You don’t know what the fuck you’re saying | RFC4918 |
423 | Locked | I refuse to modify that shit | RFC4918 |
424 | Failed Dependency | The last thing fucked up, so this one won’t work | RFC4918 |
425 | Too Early | You’re sending shit before you’re supposed to | RFC8470 |
426 | Upgrade Required | Get with the times slowpoke | RFC7231 |
428 | Precondition Required | Your shit may break other shit, you need to tell me how to avoid breaking other shit | RFC6585 |
429 | Too Many Requests | Stop talking so much shit | RFC6585 |
431 | Request Header Fields Too Large | Just get to the fucking point! | RFC6585 |
451 | Unavailable For Legal Reasons | Fucking lawyers! | RFC7725 |
# 5xx We fucked up
Code | HTTP Description | Definition | RFC |
---|---|---|---|
500 | Internal Server Error | We fucked up so bad we can’t tell you what went wrong | RFC7231 |
501 | Not Implemented | We didn’t think you’d use this shit, so we didn’t waste our time on it | RFC7231 |
502 | Bad Gateway | The translator forgot how to say shit | RFC7231 |
503 | Service Unavailable | We’re fixing shit, or too many people want some shit from us | RFC7231 |
504 | Gateway Timeout | I asked for a something and didn’t get a fucking response | RFC7231 |
505 | HTTP Version Not Supported | Speak my fucking language | RFC7231 |
506 | Variant Also Negotiates | We fucked up our server and want to negotiate after we’ve finished negotiations | RFC2295 |
507 | Insufficient Storage | Fuck, the disk is full | RFC4918 |
508 | Loop Detected | Infinite loops are like the Euthanasia Coaster | RFC5842 |
510 | Not Extended | You gotta be bigger than that to ride | RFC2774 |
511 | Network Authentication Required | The free WiFi you’re using wants all your personal information | RFC6585 |
# Further Information
If you need some more information about HTTP Status Codes, IANA maintains a Hypertext Transfer Protocol (HTTP) Status Code Registry.
# Unofficial Status Codes
Code | HTTP Description | Definition | RFC |
---|---|---|---|
209 | Contents of Related | I should tell you to ask a friend, but they told me, so here’s your shit | W3C proposed draft (2014) |
210 | Content Different | My shit is different to your shit | RFC2518 WebDav draft |
211 | System Status/Healthy | This isn’t fucking FTP! | Unknown |
418 | I’m a Teapot | Yes, yes you are you! | RFC2324 Hyper Text Coffee Pot Control Protocol April Fools Joke |
420 | Enhance Your Calm | Smoke a bowl and slow down a bit |
# Other Codes
If you have any additional HTTP Code that should be added here please let me know via a message on LinkedIn.