ict.ken.be

Delivering solid user friendly software solutions since the dawn of time.

Http status codes explained

Categories: Network WebApi

Funny way to finally remember all of these, the boring text version of http status codes you can find here.

Http status codes explained with pictures

1xx Informational

  • 100 Continue
  • 101 Switching Protocols

2xx Successful

  • 200 OK : should be used to indicate a non-specific success
  • 201 Created : must be used to indicate successful resource creation
  • 202 Accepted : must be used to indicate a succesful start of an asynchronous action and should only be send by controllers
  • 203 Non-Authoritative Information
  • 204 No Content : should be used when the response body is intentionally empty
  • 205 Reset Content
  • 206 Partial Content

3xx Redirection

  • 300 Multiple Choices
  • 301 Moved Permanently : should be used to relocate resources
  • 302 Found : should only redirect automatically when it was a get or head request
  • 303 See Other : should be used to refer the client to a different uri, so sending a reference to a client without forcing it to download it's state
  • 304 Not Modified : should be used to preserve bandwidth and the response body must be empty
  • 305 Use Proxy
  • 306 (Unused)
  • 307 Temporary Redirect : should be used to tell clients to resubmit the request to another uri
  • 308 Permanent Redirect : does not allow to change the method

4xx Client Error

  • 400 Bad Request : may be used to indicate non-specific failure
  • 401 Unauthorized : must be used when there is a problem with the clients credentials
  • 402 Payment Required
  • 403 Forbidden : should be used to forbid access regardless of authorization state, so for any requests outside the clients permitted scope
  • 404 Not Found : must be used when a client uri cannnot be mapped to a resource
  • 405 Method Not Allowed : must be used when the http method is not supported, for example using a PUT on a read-only resource (must include the allow header in response)
  • 406 Not Acceptable : must be used when requested media type cannot be served (accept request header)
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict : should be used to indicate a violation of resource state, for example a client tries to delete a non empty store
  • 410 Gone
  • 411 Length Required
  • 412 Precondition Failed
  • 413 Request Entity Too Large
  • 414 Request-URI Too Long
  • 415 Unsupported Media Type : must be used when the media type of a requests payload cannot be processed (content type header)
  • 416 Requested Range Not Satisfiable
  • 417 Expectation Failed
  • 418 I'm a teapot (RFC 2324)
  • 419 Authentication Timeout
  • 420 Enhance Your Calm (use 429 instead)
  • 421 Bad mapping
  • 422 Unprocessable Entity
  • 423 Locked
  • 424 Failed Dependency
  • 425 Unordered Collection
  • 426 Upgrade Required
  • 427 Soap action required (in case your api is dirty)
  • 428 Precondition Required (RFC 6585)
  • 429 Too Many Requests (RFC 6585)
  • 430 (not used ?? sometimes misused for 431)
  • 431 Request Header Fields Too Large (RFC 6585)

5xx Server Error

  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported

5xx Server Error

  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported
  • 520 Origin Error
  • 521 Web server is down
  • 522 Connection timed out
  • 523 Proxy Declined Request
  • 524 A timeout occured

7xx Developer Error

  • 70x - Inexcusable
  • 701 - Meh
  • 702 - Emacs
  • 703 - Explosion
  • 704 - Goto Fail
  • 705 - I wrote the code and missed the necessary validation by an oversight (see 795)
  • 71x - Novelty Implementations
  • 710 - PHP
  • 711 - Convenience Store
  • 712 - NoSQL
  • 719 - I am not a teapot
  • 72x - Edge Cases
  • 720 - Unpossible
  • 721 - Known Unknowns
  • 722 - Unknown Unknowns
  • 723 - Tricky
  • 724 - This line should be unreachable
  • 725 - It works on my machine
  • 726 - It's a feature, not a bug
  • 727 - 32 bits is plenty
  • 73x - F*cking
  • 731 - F*cking Rubygems
  • 732 - F*cking Unic💩de
  • 733 - F*cking Deadlocks
  • 734 - F*cking Deferreds
  • 735 - F*cking IE
  • 736 - F*cking Race Conditions
  • 737 - F*ckThreadsing
  • 738 - F*cking Bundler
  • 739 - F*cking Windows
  • 74x - Meme Driven
  • 740 - Computer says no
  • 741 - Compiling
  • 742 - A kitten dies
  • 743 - I thought I knew regular expressions
  • 744 - Y U NO write integration tests?
  • 745 - I don't always test my code, but when I do I do it in production
  • 746 - Missed Ballmer Peak
  • 747 - Motherf*cking Snakes on the Motherf*cking Plane
  • 748 - Confounded by Ponies
  • 749 - Reserved for Chuck Norris
  • 75x - Syntax Errors
  • 750 - Didn't bother to compile it
  • 753 - Syntax Error
  • 754 - Too many semi-colons
  • 755 - Not enough semi-colons
  • 756 - Insufficiently polite
  • 757 - Excessively polite
  • 759 - Unexpected T_PAAMAYIM_NEKUDOTAYIM
  • 76x - Substance-Affected Developer
  • 761 - Hungover
  • 762 - Stoned
  • 763 - Under-Caffeinated
  • 764 - Over-Caffeinated
  • 765 - Railscamp
  • 766 - Sober
  • 767 - Drunk
  • 768 - Accidentally Took Sleeping Pills Instead Of Migraine Pills During Crunch Week
  • 769 - Questionable Maturity Level
  • 77x - Predictable Problems
  • 771 - Cached for too long
  • 772 - Not cached long enough
  • 773 - Not cached at all
  • 774 - Why was this cached?
  • 776 - Error on the Exception
  • 777 - Coincidence
  • 778 - Off By One Error
  • 779 - Off By Too Many To Count Error
  • 78x - Somebody Else's Problem
  • 780 - Project owner not responding
  • 781 - Operations
  • 782 - QA
  • 783 - It was a customer request, honestly
  • 784 - Management, obviously
  • 785 - TPS Cover Sheet not attached
  • 786 - Try it now
  • 787 - Further Funding Required
  • 79x - Internet crashed
  • 791 - The Internet shut down due to copyright restrictions.
  • 792 - Climate change driven catastrophic weather event
  • 793 - Zombie Apocalypse
  • 794 - Someone let PG near a REPL
  • 795 - #heartbleed (see 705)
  • 797 - This is the last page of the Internet. Go back
  • 799 - End of the world

Still need more?