Обработка веб-запросов на стороне сервера - PullRequest
1 голос
/ 12 мая 2009

Ситуация: пользователь нажимает на ссылку, сервер получает запрос и начинает его обрабатывать. В то же время пользователь нажимает на другую ссылку, сервер получает новый запрос при обработке 1-го. Что просходит? На стороне клиента мы видим только веб-страницу из 2-го запроса, но уничтожается ли процесс из 1-го запроса на сервере при получении 2-го? И управляется ли он сервером или языком (Apache или PHP)?

Ответы [ 3 ]

5 голосов
/ 12 мая 2009

Зависит. Если браузер не прервет соединение с сервером, он не будет абсолютно уверен, что клиент перешел в другое место. Если соединение прервано, веб-сервер сам решит обнаружить его и прервать поток обработки.

В любом случае это природа безгражданства HTTP. Вы не должны полагаться ни на что в этом отношении.

1 голос
/ 12 мая 2009

Оба запроса обрабатываются (если браузер отправил второй).

Вы увидите только вторую страницу, но если загляните в access_log, вы обязательно заметите два запроса.

Вот как работает HTTP.

0 голосов
/ 12 мая 2009

Вы можете использовать ignore_user_abort(), чтобы указать сценарию продолжить (или нет) после разрыва соединения.

...