2015-12-10 2 views
1

Когда несколько пользователей получают доступ к странице в php, которая имеет file_get_contents («php: // input»); метод будет какой-либо блокировки? Я понимаю, что каждый запрос создает новый экземпляр, делает ли вышеуказанный метод какой-либо блокировкой сделанных запросов? Использует ли он только один поток для всех экземпляров или другого потока для разных запросов? Я новичок в php, поэтому, пожалуйста, помогите мне в этом ...does file_get_contents ("php: // input"); метод влияет на масштабируемость?

ответ

0

php://input является символическим для потока ввода, предоставляемого клиентом HTTP. У нескольких клиентов разные входные потоки, поэтому разные клиенты по-прежнему могут обрабатываться асинхронно. Тем не менее, запросы могут блокироваться в этом потоке, когда клиент не обеспечивает данные достаточно быстро. Эта проблема существует независимо от того, есть ли один клиент или сто.

+0

Этот поток будет блокироваться только при медленном переносе данных с клиента? @Ulrich –

+0

Возможно, да. Я не уверен на 100%, как буферизация обрабатывается в этом случае, и это также может зависеть от обстоятельств (какой веб-сервер, как настроен этот сервер). Предполагая, что PHP не ждет полного ввода вверх, что является разумным улучшением, чтение ввода может блокироваться. Он будет блокировать только этот запрос, а не другие запросы. –

Смежные вопросы