(A post only an SEO or Dev could love)
Not too long ago, the Portent SEO team was sitting around in a meeting when we came across a 4xx level HTTP status error and couldn’t remember the meaning. Might have been a 410 or a 418…
Anyway, when you have a flock of SEOs in the room you do what SEOs do and search the world wide web for the answer. Wikipedia had the featured snippet and the first organic result so, we gave them the click for their efforts. (Had to pay it forward, not that Wikipedia needs it.)
We scrolled through the page and found what we were looking for but, something else caught my attention. I am a father of two, a ten and soon-to-be-seven-year-old, and a lot of the 4xx errors and their explanations sound strikingly similar to some of the things I have to say to my kids on an extremely regular basis. I started chuckling to myself and as we read through the entire list, it got to the point that every one of the 4xx status codes was applicable to my parenting life.
So, here is an actually useful list of 4xx HTTP status codes and their explanations as seen by an SEO Dad (in that the parent is the server and the child is the client/user):
HTTP Server Responses
400 Bad Request
The server can’t process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing)
SEO Dad: It doesn’t count as a question unless you say “please”.
Authentication is required and has failed or has not yet been provided. 401 means the user does not have the necessary credentials.
SEO Dad: Where did you get that?! You didn’t ask if you could have any candy, hand it over.
402 Payment Required
The original intention was that this might be used as part of some form of digital cash scheme, but that hasn’t happened, and this code is not usually used. Google Developers API uses this status if a developer has exceeded the daily limit on requests.
SEO Dad: [at the arcade outside the movie theater] Sorry buddy, I don’t have any quarters.
[7 yo sits at the steering wheel, grabs on, and pretends along with the demo for 15 minutes]
Side note: Did you know that most games at the arcade now are like a dollar?!
The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource or may need an account of some sort.
SEO Dad: No, you may not play Grand Theft Auto! I don’t care if your friend’s parents let them.
404 Not Found
The requested resource could not be found but may be available in the future.
SEO Dad: I can’t find anything in this messy room! You need to spend some time in here cleaning up and then find the missing library books. Oh, and I’m not paying the late fees, that’s coming out of your piggy bank.
405 Method Not Allowed
A request method is not supported for the requested resource.
SEO Dad: You can’t just grab things that you want. Ask nicely and wait your turn, please.
406 Not Acceptable
The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.
SEO Dad: Keep your hands to yourself. It is not OK to push your sister like that.
407 Proxy Authentication Required
The client must first authenticate itself with the proxy.
SEO Dad: If your mom says it’s ok, I don’t see why not.
408 Request Timeout
The server timed out waiting for the request. According to HTTP specifications: “The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.”
SEO Dad: I have to leave or I’m going to miss the bus. You can ask me about it after I pick you up from school.
The request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.
SEO Dad: You and your sister must agree on which movie to watch or else you’re just going to go to bed.
Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future.
SEO Dad: Well, you weren’t playing with it anymore so we donated it.
411 Length Required
The request did not specify the length of its content, which is required by the requested resource.
SEO Dad: Yeah, I said you could watch cartoons but, I didn’t say for how long. Time to turn it off.
412 Precondition Failed
The server does not meet one of the preconditions that the requester put on the request.
SEO Dad: No dessert until you’ve finished all your dinner!
413 Payload Too Large
The request is larger than the server is willing or able to process.
SEO Dad: It costs how much?! No, pick something from the dollar bin.
414 URI Too Long
The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request.
SEO Dad: It was a yes-or-no question… All I wanted to know was if you made your bed already.
415 Unsupported Media Type
The request entity has a media type which the server or resource does not support.
SEO Dad: iPad time is up, go play outside!
416 Range Not Satisfiable
The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.
SEO Dad: No, you can’t go to the park by yourself, its way to far away.
417 Expectation Failed
The server cannot meet the requirements of the Expect request-header field.
SEO Dad: I’m not mad, just a little disappointed…
418 I’m a teapot
This code was defined in 1998 as part of an April Fools’ jokes, the Hyper Text Coffee Pot Control Protocol or HTCPCP (https://tools.ietf.org/html/rfc2324). The RFC specifies this code should be returned by teapots requested to brew coffee.
SEO Dad: Well, now I just want another cup of coffee…
421 Misdirected Request
The request was directed at a server that is not able to produce a response.
SEO Dad: Go ask your mom.
422 Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.
SEO Dad: What’s the magic word?
The resource that is being accessed is locked.
SEO Dad: Yeah, I did change the WiFi password. Just like I told you I would if you guys didn’t stop fighting.
424 Failed Dependency
The request failed due to failure of a previous request.
SEO Dad: I thought I told you to clean your room, don’t ask me again until it’s done.
426 Upgrade Required
The client should switch to a different protocol.
SEO Dad: Well, throwing a fit doesn’t seem to be getting you what you want. Maybe next time, try asking politely first.
428 Precondition Required
The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.
SEO Dad: The answer is ‘no’, and you guys can’t come out of your room until you apologize to each other and come out as friends again.
429 Too Many Requests
The user has sent too many requests in a given amount of time.
SEO Dad: So many questions! I’m tired, ask me again later.
431 Request Header Fields Too Large
The server is unwilling to process the request because the header fields are too large.
SEO Dad: I’m sorry sweetheart, daddy’s back hurts. I can’t do any more shoulder rides today.
451 Unavailable For Legal Reasons
A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.
SEO Dad: Nope, you still can’t drive until you’re 16. It doesn’t matter how good you are at Mario Kart.
Prologue: We hope you enjoyed the list as much as we enjoyed writing it.
And remember kids: sharing is caring!