Сервер, залежно від його конфігурації, може одночасно обслуговувати сотні запитів одночасно - якщо використовується Apache, параметр MaxClients
конфігурації говорить:
MaxClients
Директива встановлює обмеження на кількість одночасних запитів , які будуть обслуговуватися.
Будь-які спроби підключення, що перевищують
MaxClients
обмеження, зазвичай ставляться в чергу, до числа, виходячи з директиви ListenBacklog.
Як тільки дочірній процес буде звільнений в кінці іншого запиту, з'єднання буде обслуговуватися.
Той факт, що два клієнти запитують одну сторінку, не є проблемою.
Тому :
Чи будуть запити в черзі?
Немає ; крім випадків, коли:
- десь є якийсь замок - це може статися, наприклад, якщо два запити надходять від одного клієнта, і ви використовуєте файлові сеанси в PHP : під час виконання скрипту сеанс "блокується", що означає, що серверу / клієнту доведеться почекати, поки перший запит не буде завершено (і файл розблоковано ), щоб мати можливість використовувати файл для відкриття сеансу для другого користувача.
- запити надходять від одного клієнта І того самого браузера; більшість браузерів поставлять запити в чергу в цьому випадку, навіть коли на сервері немає нічого, що створює таку поведінку.
- є більше, ніж
MaxClients
зараз активних процесів - див. цитату з посібника Apache безпосередньо перед цим.
Чи будуть вони проігноровані?
Ні: це означало б, що лише один користувач може одночасно користуватися веб-сайтом; це було б не зовсім приємно, правда?
Якби це було так, я б не міг опублікувати цю відповідь, якщо ви, коли натискаєте клавішу F5 у той самий момент, бачите, чи хтось відповів!
(Ну, SO не в PHP, але принципи однакові)
Будь-яка інша можливість?
Так ^^
редагувати після редагування OP та коментаря:
Чи буде кожен запит мати свій власний екземпляр сценарію?
Не існує такого поняття, як " екземпляр сценарію ": простіше кажучи, те, що відбувається там, де робиться запит на сценарій:
- веб-сервер розгалужує інший процес для обробки запиту (часто, з міркувань продуктивності, ці розгалуження робляться заздалегідь, але це нічого не змінює)
- процес читає PHP-скрипт з диска
- кілька процесів можуть робити це одночасно : блокування читання файлів не відбувається
- файл завантажується в пам’ять; в окремому блоці пам'яті для кожного процесу
- файл PHP в пам'яті " компілюється " до кодів операцій - все ще в пам'яті
- ці коди операцій виконуються - все ще з блоку пам'яті, який належить процесу, що відповідає на ваш запит
Дійсно, ви можете мати двох користувачів, які надсилають запит на один і той же PHP-скрипт (або на різні PHP-скрипти, які всі містять один і той же PHP-файл) ; це однозначно не проблема, інакше жоден веб-сайт, над яким я коли-небудь працював, не буде працювати!