PHP 스크립트에 대한 동시 요청
PHPPHP 스크립트에 대한 동시 요청
PHP 엔진이 이미 서버에서 스크립트를 실행하는 중일 때 동일한 스크립트에 대한 다른 동시 브라우저 요청은 어떻게됩니까?
해결법
-
==============================
1.서버는 구성에 따라 일반적으로 동시에 수백 개의 요청을 처리 할 수 있습니다. Apache를 사용하는 경우 MaxClients 구성 옵션은 다음과 같이 말합니다.
서버는 구성에 따라 일반적으로 동시에 수백 개의 요청을 처리 할 수 있습니다. Apache를 사용하는 경우 MaxClients 구성 옵션은 다음과 같이 말합니다.
두 클라이언트가 동일한 페이지를 요청한다는 사실은 문제가되지 않습니다.
그래서 :
아니 ; 다음을 제외하고는 :
아니오 : 이것은 한 명의 사용자 만이 동시에 웹 사이트를 사용할 수 있음을 의미합니다. 이건 아주 좋지 않을거야, 그렇지?
그것이 사실이라면 누군가가 대답했는지보기 위해 같은 순간에 F5를 때리는 경우이 답변을 게시 할 수 없습니다. (글쎄, 그래서 PHP는 아니지만 원칙은 동일합니다)
예 ^^
당신이 OP와 코멘트를 편집 한 후에 편집 :
"스크립트 인스턴스"와 같은 것은 존재하지 않습니다. 스크립트에 대한 요청이 어디에서 발생하는지 간단히 말하면 다음과 같습니다.
실제로 두 명의 사용자가 동일한 PHP 스크립트 (또는 모두 동일한 PHP 파일을 포함하는 별개의 PHP 스크립트)에 요청을 보내도록 할 수 있습니다. 그게 분명히 문제가 아니거나, 내가 일한 웹 사이트 중 어느 것도 작동하지 않을거야!
-
==============================
2.2 명의 클라이언트가 동시에 서버를 호출하면 서버는 거의 동시에 두 클라이언트에 모두 응답 할 수 있습니다. 여기서 클라이언트는 브라우저 수준으로 정의합니다.
2 명의 클라이언트가 동시에 서버를 호출하면 서버는 거의 동시에 두 클라이언트에 모두 응답 할 수 있습니다. 여기서 클라이언트는 브라우저 수준으로 정의합니다.
동일한 컴퓨터에서 동일한 웹 사이트 / 페이지를 동시에로드하기 위해 2 대의 브라우저를 사용하는 경우이 두 가지를 동시에로드해야한다는 것을 의미합니다.
그러나 우리가 PHP에 관해서 이야기하고 있기 때문에, 당신은 세션에 대한 특별한 노트를 가지고 갈 필요가 있습니다. 페이지에서 세션을 사용하는 경우 서버는 한 번에 한 페이지 씩만 제공합니다. 이는 스크립트가 종료 될 때까지 세션 파일이 잠기기 때문입니다.
이 예를보십시오. 2 개의 파일은 같은 세션 일명 동일한 브라우저에서로드됩니다.
scripta.php requested scripta.php served ------+---+---------------------------------+------------------------> scripta.php started scriptb.php requested scriptb.php started ---------------+-------------------------------+-----------------+---> scriptb.php served.
scriptb.php는 scripta.php가 제공 된 후에 시작됩니다. 이것은 scripta.php가 시작되었을 때 세션 파일이 다른 스크립트에 잠겨서 scripta.php가 세션 파일에 쓸 수 있기 때문입니다. scripta.php가 완료되면 세션 파일의 잠금이 해제되어 다른 스크립트에서이를 사용할 수 있습니다. 따라서 scriptb.php는 세션 파일이 해제 될 때까지 기다렸다가 세션 파일을 잠그고 사용합니다.
이 프로세스는 동일한 세션 파일에 여러 스크립트가 기록하는 것을 지연시켜 지연을 일으키는 것을 방지하기 위해 계속 반복됩니다. 따라서 세션을 더 이상 사용하지 않을 때는 특히 iframe이나 AJAX를 많이 사용하는 웹 사이트에서 session_write_close ()를 호출하는 것이 좋습니다.
-
==============================
3.매우 비표준 설정을 실행하지 않는 한 웹 서버 (Apache, IIS, nginx 등)에는 서버로 들어오는 요청마다 PHP를 개별적으로 실행하는 여러 프로세스가 있습니다. 동시 요청은 동시에 처리됩니다.
매우 비표준 설정을 실행하지 않는 한 웹 서버 (Apache, IIS, nginx 등)에는 서버로 들어오는 요청마다 PHP를 개별적으로 실행하는 여러 프로세스가 있습니다. 동시 요청은 동시에 처리됩니다.
-
==============================
4.그냥 나 자신을 만났다. 기본적으로 session_write_close ()를 호출하여 단일 사용자 잠금을 방지해야합니다. session_write_close ()를 호출하면 세션 변수를 수정하지 말아야한다. 일단 호출하면 세션을 이후로 읽기 전용으로 취급합니다.
그냥 나 자신을 만났다. 기본적으로 session_write_close ()를 호출하여 단일 사용자 잠금을 방지해야합니다. session_write_close ()를 호출하면 세션 변수를 수정하지 말아야한다. 일단 호출하면 세션을 이후로 읽기 전용으로 취급합니다.
from https://stackoverflow.com/questions/1430883/simultaneous-requests-to-php-script by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP를 사용하여 큰 파일 스트리밍 (0) | 2018.09.15 |
---|---|
PHP 5.2.8에서 DateTime 객체 두 개를 어떻게 비교합니까? (0) | 2018.09.15 |
PHP 키워드 'var'는 무엇을합니까? (0) | 2018.09.15 |
PHP 클래스 란 무엇입니까? (0) | 2018.09.15 |
offline_access deprecation 이후 액세스 토큰 유효성을 확장하는 방법 (0) | 2018.09.15 |