programing

WSGI와 CGI는 쉬운 영어로 무엇입니까?

telecom 2023. 7. 19. 21:11
반응형

WSGI와 CGI는 쉬운 영어로 무엇입니까?

저는 WSGI나 CGI를 읽을 때마다 움츠러듭니다.나는 전에 그것을 읽으려고 시도해 보았지만 정말 아무것도 고착되지 않았습니다.

그것은 정말 쉬운 영어로 무엇입니까?

터미널로 요청을 전송하고 출력을 리디렉션하는 것뿐입니까?

Blankman 씨, 완전히 뒤로 물러서는 관점에서 웹 서버 게이트웨이 인터페이스에 대한 저의 "소개 페이지"를 소개합니다.

1부: 웹 서버

웹 서버는 응답을 제공합니다.그들은 앉아서 참을성 있게 기다리다가 갑자기 경고도 없이 이렇게 말합니다.

  • 클라이언트 프로세스가 요청을 보냅니다.클라이언트 프로세스는 웹 서버, 봇, 모바일 앱 등이 될 수 있습니다.단순히 "고객"일 뿐입니다.
  • 웹 서버가 이 요청을 수신합니다.
  • 의도적인 중얼거림 다양한 일이 발생합니다(아래 참조).
  • 웹 서버가 클라이언트에 무언가를 다시 보냅니다.
  • 웹 서버가 다시 둘러앉습니다.

웹 서버(적어도 더 나은 서버)는 이를 매우 잘합니다.그들은 수요에 따라 처리를 확장하고, 매우 지저분한 네트워크를 통해 가장 까다로운 고객들과 안정적으로 대화를 나누며, 우리는 그것에 대해 걱정할 필요가 없습니다.그들은 계속 서빙을 합니다.

이것이 제 요점입니다. 웹 서버는 바로 서버입니다.그들은 콘텐츠에 대해서도, 사용자에 대해서도, 사실 많이 기다리고 신뢰할 수 있게 답장하는 방법 외에는 아무것도 모릅니다.

웹 서버 선택은 소프트웨어가 아니라 전송 환경설정을 반영해야 합니다.당신의 웹 서버는 처리나 논리적인 것이 아니라 서비스를 담당해야 합니다.

파트 2: (Python) 소프트웨어

소프트웨어는 사용하지 않습니다.소프트웨어는 실행 시에만 존재합니다.소프트웨어는 예상치 못한 환경 변화(파일이 예상한 위치에 있지 않거나 매개 변수의 이름이 변경되는 등)에 대처할 수 없습니다.물론 최적화가 설계의 핵심 원칙이 되어야 하지만 소프트웨어 자체는 최적화되지 않습니다.개발자는 최적화합니다.소프트웨어가 실행됩니다.소프트웨어는 위의 '고의적인 중얼거림' 섹션에 있는 모든 것을 합니다.그 어느 것일 수도 있다.

소프트웨어의 선택 또는 설계는 웹 서버의 선택이 아니라 응용 프로그램, 기능의 선택을 반영해야 합니다.

여기서 언어를 웹 서버로 "컴파일"하는 전통적인 방법이 어려워집니다.물리적 서버 환경에 대처하기 위해 응용 프로그램에 코드를 넣거나, 적어도 런타임에 포함할 적절한 '래퍼' 라이브러리를 선택해야 웹 서버 간에 일관성이 있다는 착각을 불러일으킬 수 있습니다.

WSGI란 무엇입니까?

마지막으로 WSGI는 무엇입니까?WSGI는 두 부분으로 나뉜 규칙 집합입니다.통합을 환영하는 모든 환경에 통합될 수 있는 방식으로 작성되었습니다.

첫 번째 부분은 웹 서버 쪽에 쓰여져 있습니다. "좋아요, WSGI 응용 프로그램을 처리하려면 소프트웨어가 로드될 때 어떻게 생각해야 하는지를 보여줍니다.다음은 응용프로그램에서 사용할 수 있도록 설정해야 하는 사항이며, 모든 응용프로그램이 사용할 것으로 예상할 수 있는 인터페이스(레이아웃)입니다.또한, 문제가 발생할 경우 앱의 사고 방식과 작동 방식을 예상할 수 있습니다."

Python 애플리케이션 소프트웨어를 위해 작성된 두 번째 부분은 "좋아요, WSGI 서버를 처리하려면 서버가 사용자에게 연락할 때 다음과 같이 생각합니다.다음은 서버가 사용할 수 있도록 설정해야 하는 항목이며, 모든 서버가 사용할 것으로 예상할 수 있는 인터페이스(레이아웃)입니다.또한 문제가 발생하면 다음과 같이 행동하고 서버에 알려야 합니다."

서버는 서버이고 소프트웨어는 소프트웨어가 될 것이며, 여기에는 서로의 세부 사항을 고려하지 않고도 잘 지낼 수 있는 방법이 있습니다.WSGI입니다.

그러나 mod_wsgi는 WSGI 호환 소프트웨어와 통신할 수 있는 Apache용 플러그인입니다. 즉, mod_wsgi는 Apache에서 위 규칙집 1부의 규칙을 구현한 것입니다.

CGI는.. 다른 사람에게 물어보세요 :-)

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

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

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

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

만약 당신이 이 공간의 모든 용어에 대해 불분명하다면, 그리고 그것은 혼란스러운 약자를 포함하는 것이고, CGI 대 FastCGI 대 WSGI 등을 논의하는 공식 파이썬 HOWTO 형태의 좋은 배경 독자도 있습니다.제가 먼저 읽었으면 좋았을 텐데요.

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

반응형