The big picture
The request/response life cycle can be summarized in these two simple steps:
Firstly, you send your request by entering a URL in your browser.
The server then responds with a page and message (success, failure, and so on) depending on your request. End of story.
The following image shows an example of the request/response life cycle:
A web server receives a request and passes it to an action unit for further processing. In our case, this action unit is somewhere in Symfony and is in charge of receiving requests. Depending on their type, it will fetch a resource (such as a record from the database or an image from the server's hard drive) or do something (like sending an e-mail or assembling and returning a JavaScript Object Notation (JSON) string). Finally, it renders a page based on the results and sends it back to the browser. After the job is done, this action unit marks the request and response as terminated and looks for the next request, as shown in the following diagram...