I am wondering why websites crash at all.
If a server has too many requests, it might queue up the request in its waiting lists and serve it when all the earlier requests have been served. That means that the request for the website will be taken care of, although it may take some more time than expected.
Then, how do websites crash due to server overload?
Web sites do not "crash".
Web servers are configured to stop accepting new visitors if the requests in the request queue exceeds a predetermined number. When this limit is reached, an error message is displayed.
In a very simple scenario, the waiting list might fill up and the server is so busy handling/ignoring new requests that it can efficiently deal with requests in the queue.
Take a look at http://en.wikipedia.org/wiki/Denial-of-service_attack
Lots of ways: