Programing

일반 영어로 된 WSGI와 CGI는 무엇입니까?

lottogame 2020. 7. 19. 09:50
반응형

일반 영어로 된 WSGI와 CGI는 무엇입니까?


내가 WSGI 나 CGI를 읽을 때마다 나는 울었다. 전에 읽어 보았지만 실제로 붙어있는 것은 없습니다.

평범한 영어로 무엇입니까?

요청을 터미널로 파이프하고 출력을 리디렉션합니까?


WSGI는 웹 서버 시작시 내장 웹 서버 프로세스 (임베디드 모드) 또는 별도의 프로세스 (데몬 모드)로 Python 인터프리터를 실행하고 스크립트를로드합니다. 각 요청은 스크립트에서 특정 함수가 호출되고 요청 환경은 함수에 인수로 전달됩니다.

CGI는 각 요청마다 스크립트를 별도의 프로세스로 실행하고 환경 변수 stdin 및 stdout을 사용하여 "통신"합니다.


총체적으로 되돌아가는 관점에서 Blankman은 다음은 웹 서비스 게이트웨이 인터페이스에 대한 "소개 페이지"입니다.

1 부 : 웹 서버

웹 서버는 응답을 제공합니다. 그들은 앉아서 참을성있게 기다렸다가 전혀 경고없이 갑자기 :

  • 클라이언트 프로세스가 요청을 보냅니다. 클라이언트 프로세스는 웹 서버, 봇, 모바일 앱 등이 될 수 있습니다. 단순히 "클라이언트"
  • 웹 서버는이 요청을받습니다
  • 고의적으로 여러 가지 일이 발생합니다 (아래 참조).
  • 웹 서버가 클라이언트에게 무언가를 다시 보냅니다.
  • 웹 서버가 다시 앉아

웹 서버 (적어도 더 나은 서버)는 이것에 매우 능숙합니다. 그들은 수요에 따라 처리를 확장 및 축소하고, 정말로 엉뚱한 네트워크를 통해 가장 까다로운 고객과 대화를 안정적으로 개최하며 걱정할 필요가 없습니다. 그들은 계속 봉사합니다.

이것은 내 요점입니다. 웹 서버는 바로 서버입니다. 그들은 콘텐츠, 사용자에 대한 정보, 사실 많이 기다리는 방법과 신뢰할 수있는 답변 외에는 아무것도 알지 못합니다.

선택한 웹 서버는 소프트웨어가 아닌 전송 환경 설정을 반영해야합니다. 웹 서버는 처리 또는 논리적 요소가 아닌 서비스를 담당해야합니다.

2 부 : (PYTHON) 소프트웨어

소프트웨어가 주위에 앉아 있지 않습니다. 소프트웨어는 실행 시간에만 존재합니다. 소프트웨어가 환경에서 예기치 않은 변경 (파일이 예상 한 위치에 있지 않거나 매개 변수의 이름이 바뀌는 등)이 변경 될 때 크게 수용되지 않습니다. 최적화는 물론 디자인의 중심 원칙이지만 소프트웨어 자체는 최적화되지 않습니다. 개발자는 최적화합니다. 소프트웨어가 실행됩니다. 소프트웨어는 위의 '담당자 심의'섹션에있는 모든 작업을 수행합니다. 무엇이든 될 수 있습니다.

소프트웨어의 선택 또는 디자인은 웹 서버가 아닌 응용 프로그램, 기능 선택을 반영해야합니다.

이것은 웹 서버에 언어를 "컴파일하는"전통적인 방법이 고통스러워지는 곳입니다. 실제 서버 환경에 대처하기 위해 애플리케이션에 코드를 넣거나 적어도 런타임에 포함 할 적절한 '래퍼 (wrapper)'라이브러리를 선택하여 웹 서버 전체에 균일 한 느낌을주기 위해 코드를 작성하게됩니다.

WSGI 란 무엇입니까?

마지막으로 WSGI 란 무엇입니까? WSGI는 규칙 으로 작성된 일련의 규칙 입니다. 통합을 환영하는 모든 환경에 통합 될 수있는 방식으로 작성되었습니다.

웹 서버 측을 위해 작성된 첫 번째 부분은 "OK, WSGI 응용 프로그램을 다루려면 소프트웨어가로드 될 때 소프트웨어가 어떻게 생각할 것인지에 대한 것입니다. 응용 프로그램에서 사용할 수 있도록해야 할 사항과 여기는 다음과 같습니다" 모든 애플리케이션이 가질 것으로 예상 할 수있는 인터페이스 (레이아웃)입니다. 또한 문제가 발생하는 경우 앱이 어떻게 생각하고 어떻게 작동하는지 예상 할 수 있습니다. "

Python 애플리케이션 소프트웨어 용으로 작성된 두 번째 부분은 "OK, WSGI 서버를 다루려면 서버가 사용자와 연락 할 때 어떻게 생각할 것인지에 대한 설명입니다. 다음은 서버에서 사용할 수있는 것입니다. 여기에 모든 서버가 기대할 수있는 인터페이스 (레이아웃)가 있습니다. 또한 문제가 발생하면 어떻게 행동해야하는지, 여기에 서버에 지시해야하는 내용이 있습니다. "

서버는 서버가되고 소프트웨어는 소프트웨어가되며, 다른 하나의 특성에 대한 허용 없이도 잘 작동 할 수있는 방법이 있습니다. 이것이 WSGI입니다.

반면 mod_wsgi는 Apache 용 플러그인으로 WSGI 호환 소프트웨어와 통신 할 수 있습니다. 즉, mod_wsgi는 위의 규칙 중 하나의 규칙 중 하나 인 Apache 구현 입니다.

CGI는 .... 다른 사람에게 물어보십시오 :-)


이 공간의 모든 용어가 명확하지 않고 직면하면 혼란스러워하는 약어입니다. 공식 파이썬 HOWTO 형식의 훌륭한 배경 독자가 있습니다 .CGI 대 FastCGI 대 WSGI 등을 설명합니다. 의 위에. 먼저 읽어 보시기 바랍니다.


CGI와 WSGI는 모두 프로그램이 웹 요청을 처리하는 데 사용할 수있는 표준 인터페이스를 정의합니다. CGI 인터페이스는 WSGI보다 낮은 레벨에 있으며, 서버는 HTTP 요청의 데이터를 포함하는 환경 변수를 설정하는 서버를 포함하며 프로그램은 베어 HTTP 서버 응답과 거의 유사한 형식의 무언가를 리턴합니다.

반면 WSGI는 프로그래머가 서버에 구애받지 않고 다른 WSGI 응용 프로그램 (미들웨어)에 래핑 될 수있는 응용 프로그램을 작성할 수 있도록하는 Python 전용의 약간 높은 수준의 인터페이스입니다.

참고 URL : https://stackoverflow.com/questions/4929626/what-are-wsgi-and-cgi-in-plain-english

반응형