What happens when the server is in an infinite loop and the client stops?


I am trying to figure out how the "talking" between the server and the client is done.

So, when the server is generating an infinite loop, echoing"hello<br />", for example, what happens when the client stops, or hits 'back'?

How does the server know it's the end of the loop or does it take an endless process by its side?

Is there anywhere I can read about it just to get the big picture?

The client has a TCP/IP session established with your server, waiting for the HTTP response of your website. When the client (user) hits back/cancel/close, this TCP connection is closed immediately.

The webserver (i.e. apache) will inform the PHP interpreter of the TCP connection close.

Unless the php.ini directive ignore_user_abort is set to 1 (on server side, 0 is PHP default), the PHP interpreter will then abort script execution when the current atomic operation finishes (in your example: echo())

However, even when you set ignore_user_abort explicitly to 1 you will hit PHPs max_execution_time or the apache TimeOut (both are configurable on server side, too)

also see ignore_user_abort() and set_time_limit()