The story begins, as always, with the user. That old villain.
Let us suppose that he has committed the inexcusable crime of clicking the submit button of a web form. The brave browser, the general, struggles to maintain the 100 open tabs under immense load and impossible odds. He barks at the operating system to open a magic portal known by some scholars as a TCP connection. The browser despatches several faithful messengers into the gloom of the dark tunnel.
At the gates of the internet the messengers meet the indomitable wizard of DNS who extends a crooked finger, indicating the path to the castle where the web server resides. The messengers wander from router to router and hub to hub and almost when all hope has been lost, they finally stumble upon the castle: that great fortress in a fold of green pastures where the promise of their journey answered beckons.
Within it’s fortress, the server receives the web request with a cautious gaze. Reluctantly now, it consults the infallible code of his sanctity, passing by the darkened door of the programmer. After a thousand more CPU cycles and several OS interrupts the web request is found as non-conforming. The exhausted packet messengers must return to the source with ill tidings. An error has been handed as the response.
A TTL alarm sounds and the tired messengers are ejected from the fortress. They must travel the long and dangerous road in the dark and try not to get lost. At their journey’s end now, and with broken spirits, they submit the response to the general. He rips open the package and examines it with a beady eye. The messengers are dismissed until the next request.
They don’t see the browser present their findings to his master, the user.
500, Server Error.
Full credit for this excellent idea goes to Andrei Tara.