>  기사  >  백엔드 개발  >  fastcgi와 cgi의 차이점은 무엇입니까?

fastcgi와 cgi의 차이점은 무엇입니까?

不言
不言앞으로
2019-03-21 15:51:263023검색

이 기사에서는 fastcgi와 cgi의 차이점이 무엇인지 알려줍니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

현재 안전하지 않고 성능이 극도로 낮은 CGI를 사용하는 사람은 점점 더 많아지고 있습니다. 예를 들어 Microsoft iis의 ISAPI, apache의 php 모듈, nginx의 php-cgi 등이 있습니다. CGI, 내장 모듈 및 fastcgi가 세 가지 최고의 성능을 발휘하며 fast_cgi가 가장 빠르지만 추가 프로세스가 필요합니다. CGI와 FASTCGI의 차이점을 분석해 보겠습니다. 과거에 웹 서버는 일반적으로 정적 요청만 처리했습니다. 그런 다음 웹 서버는 이 요청의 내용을 기반으로 외부 C 프로그램(또는 Perl 스크립트...)을 실행하기 위해 새 프로세스를 포크하고, 마지막으로 웹 서버에서 데이터를 보냅니다. 사용자에게 콘텐츠를 전달하면 방금 분기된 프로세스도 종료됩니다. 사용자가 다음에 동적 스크립트를 변경하도록 요청하면 웹 서버는 새 프로세스를 다시 분기하고 주기가 계속됩니다.

웹 내장 모듈 소개:

나중에 더 발전된 방식이 등장하여 웹 서버에 펄 인터프리터가 내장될 수 있습니다. 또는 PHP 인터프리터 장치. 즉, 이러한 인터프리터는 모듈로 만들어지고 웹 서버가 시작될 때 이러한 인터프리터를 시작합니다. 새로운 동적 요청이 들어오면 웹 서버는 이러한 Perl 또는 PHP 스크립트를 자체적으로 구문 분석하므로 프로세스를 다시 포크할 필요가 없고 효율성이 향상됩니다.

fastcgi 메소드 소개:

fastcgi 메소드는 웹 서버가 요청을 받으면 프로세스를 다시 포크하지 않는다는 것입니다(왜냐하면 이 프로세스는 웹 서버가 시작될 때 시작되며 종료되지 않습니다. 웹 서버는 이 프로세스에 직접 콘텐츠를 전달합니다(프로세스 간 통신이지만 fastcgi는 다른 방법인 tcp 통신을 사용합니다). 결과를 웹 서버에 반환하고 마지막으로 종료하는 대신 다음 요청이 도착할 때까지 기다립니다. #

예: 이제 서버에 100,000개의 단어가 있고 클라이언트는 매번 문자열을 보내며 이 문자열 앞에 붙은 문자열이 몇 개인지 묻습니다. 그런 다음 트리 트리를 구축하는 프로그램을 작성한 다음 사용자가 요청할 때마다 이 트리에서 직접 검색할 수 있습니다. 하지만 cgi를 사용하면 이 요청 후에 트리가 사라지게 됩니다. 다음에 프로세스가 시작되면 새 트리 트리를 만들어야 합니다. 이는 너무 비효율적입니다. fastcgi를 사용하면 프로세스가 시작될 때 이 단원의 트리 트리가 설정되고 나중에 트리 트리에서 지정된 접두사를 직접 쿼리할 수 있습니다.

위 내용은 fastcgi와 cgi의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제