2009-07-21 4 views
17

저는 일반 웹 프로그래밍 언어의 속도가 꽤 빠르지 만, 제가 지금하고있는 도구 중 하나는 CGI입니다. 내가 말할 수있는 것은 CGI 스크립트가 아주 느리다는 것이다.요즘 사용되는 CGI 스크립트는 무엇입니까?

CGI는 여전히 오늘날에도 일반적으로 사용됩니까? 그렇지 않다면, 대체 된 것은 무엇입니까?
CGI가 여전히 사용되고 적극적으로 사용되는 틈새 기능이 있습니까?

+0

지금까지 2 답변을 읽고 내 질문은 : CGI 살아 있고 사용되는 어떤 틈새 기능이 있습니까? – Smandoli

+0

좋아, 지금은 받아 들여진 것을 제거하겠다. 흥미로운 점이다. – Dirk

+0

은 커뮤니티 위키이어야합니다. – SilentGhost

답변

14

CGI는 PHP, mod_perl과 같은 다양한 Apache 확장, Java EE, Struts, Spring 등 다양한 맛과 프레임 워크의 Java, Django, Ruby와 같은 Python 기반 프레임 워크를 포함한 방대한 웹 프로그래밍 기술로 대체되었습니다. Rails 및 기타 여러 Ruby 프레임 워크 및 다양한 Microsoft 기술에 대해 설명합니다.

나는 CGI가 여전히 무언가 인에 사용된다고 확신하지만, 수년간 앉아 있었던 코드는 대부분 약간의 코드라고 생각합니다. 위키피디아는 FastCGI이 CGI와 비슷하지만 막대한 성능 단점이 없다고 언급했습니다.

+0

OK 감사합니다 - 그냥 확인해주세요 :) – Dirk

+1

CGI 게이트웨이를 통해 호출되는 실행 파일과 함께 임베디드 세계에서 CGI를 사용합니다. 화면 뒤의 페이지가 실제로 컴파일 된 실행 파일이기 때문에 PHP 나 Java보다 훨씬 뛰어납니다. C로 작성하는 것보다 PHP 또는 Java로 웹 페이지를 작성하는 것이 훨씬 빠르고 쉽습니다. – Claudix

0

ASP, PHP, ASP.Net에서는 Ruby on Rails가 요즘 큰 타격을받습니다.

0

코볼 (Cobol)과 포트란 (Fortran)과 마찬가지로 CGI를 기반으로하는 커다란 돈 시스템이 미래에 잘 유지 될 것입니다.

때때로 최신 기술은 모든 최신 기술로 구축되지 않았습니다.

4

많은 레거시 웹 사이트가 요즘 cgi로 만들어지고 있지만 요즘 사람들은 멀어지고 있습니다. 내가 아는 CGI를 사용하는 잘 알려진 응용 프로그램 중 하나는 MovableType blog입니다.

0

몇 달 전에 떠난 프로젝트에서 여전히 CGI를 사용합니다. 그러나이 사이트는 매우 작은 사용자 집합 (약 40 명의 사용자 만 있고 아마도 5 명 미만의 사용자가 빈번하게 사용합니다)입니다. 하드웨어가 3 ~ 4 번 대체되었지만 일부 코드는 거의 수정없이 거의 10 년 동안 실행되었습니다. 나는 다른 기술들이 성능 향상을 가져올 것이라고 확신하지만, 현재의 성능은 받아 들일 만하다. 변화를 일으키는 인력은 짧고, 너무 많은 영역으로 퍼져 있으며, 웹 기술에 정통하지 않다. 이것은 "파산하지 않았다면 고치지 마라!"라는 태도로 인도합니다.

저는 대체로/조사 할 계획이었습니다. 저는 새로운 위치에 PHP로 웹 응용 프로그램을 개발했습니다. 그러나 저는 파이썬 팬이되어 WSGI를 조만간 들여다 볼 계획입니다. 또한 AJAX를 사용하여 자발적으로 비영리 활동을하는 사이트에서 CGI 프로그램을 대체 할 계획입니다.

+1

AJAX *가 CGI 프로그램을 어떻게 대체합니까? AJAX 자체는 서버 측 기술이 아니며 전체 페이지로드없이 서버 측 스크립트를 실행하는 기술입니다. – DisgruntledGoat

+0

@DisgruntledGoat : 현재 페이지는 백엔드 데이터베이스의 데이터와 테이블 아래의 양식이있는 테이블을 표시합니다. 사용자가 양식을 통해 데이터를 제출하면 CGI 프로그램은 테이블의 한 셀을 처리하고 갱신합니다.나는 아직 AJAX를 작성하지 않았기 때문에 기본이 아닐 수도 있지만, 테이블을 폼으로 만들고 별도의 폼을 제거하고 AJAX를 사용하여 사용자 항목을 처리하고 데이터베이스를 직접 업데이트한다. – PTBNL

2

나는 아직 효과가 좋은 CGI 스크립트를 사용하는 활발히 개발되고있는 2 개의 프로젝트를 알고 있습니다.

첫 번째는 Webmin입니다. 웹 기반 시스템 관리 도구는 수년간 사용해 왔습니다.

두 번째는 GitWeb이며 Git 저장소에 웹 인터페이스를 설정할 수 있습니다.

CGI의 속도 (또는 그 부족)에 관해서는 그 사실을 언급 할 수 없습니다. Webmin에 대한 나의 경험에서 나는 그 문제에 관해서 어떤 문제도 제기했다고 말할 수 없다.

0

저는 PayPal가 여전히 CGI를 사용하고 있다고 확신합니다 ...

1

많은 공유 호스트는 CGI를 통해 PHP, 파이썬과 펄과 같은 서버 측 언어로 서비스를 제공

26

CGI 그것은, 동적 페이지를 만들 수있는 방법은 가장 기본적이고 가장 표준 프로토콜이다.

  1. 만들려는, mod_XYZ없는 언어의 기본 응용 프로그램이 집중적으로 계산 될 수 있음을,의 C 또는 하스켈을 가정 해 봅시다 :

    는 유용 많은 경우가 있습니다.

  2. 메모리가 비싸고 항상 메모리에 유지하는 대신 CGI 스크립트 을 생성하려는 임베디드 시스템에서.
  3. 원하는 기술에 서버 측 소프트웨어를 작성할 수있는 유연성을 제공하려는 반면, FastCGI (예 : Sourceforge 호스팅)를 사용하여 메모리에 사장 애플리케이션을 보유하지 않는 일부 호스팅 서비스의 경우.
  4. CGI의 부하가 적으므로 요청 당 응용 프로그램을 생성하는 데 신경 쓰지 않아도됩니다. 예를 들어, MovableType과 같은 블로그에서는 CGI를 통해 업데이트 만 수행되며, 나머지는 정적 페이지를 통해 으로 제공됩니다.이 스크립트는 필요한 경우 CGI 스크립트가 변경됩니다. 따라서 CGI 스크립트 을 생성하는 비용은 매우 적습니다.
  5. 대부분의 콘텐츠가 정적 페이지이고 thttpd와 같은 서버로 콘텐츠를 제공하려는 경우 지원되는 CGI를 통해 수행되는 작업이 거의 수행되지 않습니다.

그래서 ... CGI는 간단하지만 여전히 유용합니다. API, 간단하게 처리 할 수 ​​있습니다. 예를 들어

, 무엇을, 간단 쉽고 덜 웹 서버에 의존 될 수 있습니다

#!/bin/bash 
echo Content-Type: text/plain 
echo 
uptime 

서버의 가동 시간을 보여줍니다 스크립트?

2

포팅 (예 : PHP)이 가능한 실시간 운영 체제는 옵션이 아닙니다.

1

저는 PHP 언어 지원 기능이없는 임베디드 컴퓨터에서도 계속 사용하고 있습니다.

관련 문제