Что такое Common Gateway Interface (CGI)?

CGI - это общий интерфейс шлюза. Как следует из названия, это «общий» интерфейс шлюза для всего. Это так тривиально и наивно от названия. Я чувствую, что понял это, и чувствовал это каждый раз, когда сталкивался с этим словом. Но, честно говоря, я этого не сделал. Я все еще в замешательстве.

Я программист PHP с опытом веб-разработки.

запрос пользователя (клиента) на страницу ---> веб-сервер (-> встроенный интерпретатор PHP) ----> Серверный сценарий (PHP) ---> MySQL Server.

Теперь предположим, что мой PHP Script может получать результаты с сервера MySQL, сервера MATLAB и другого сервера.

Итак, теперь PHP Script является CGI? Потому что его интерфейс для веб-сервера и всех других серверов? Я не знаю. Иногда они называют CGI, технологию, а иногда называют CGI программой или каким-то другим сервером.

Что именно CGI?

С чем это связано?/cgi-bin/*.cgi? Что с этим? Я не знаю что этоcgi-bin каталог на сервере для. Я не знаю, почему у них есть расширения * .cgi.

Почему Perl всегда мешает. CGI & Perl (язык). Я также не знаю, что случилось с этими двумя. Почти все время я продолжаю слышать эти два в сочетании "CGI & Perl". Эта книга является еще одним отличным примеромCGI Программирование с Perl, Почему бы не "CGI Программирование с PHP / JSP / ASP"? Я никогда не видел таких вещей.

CGI Программирование на С, меня очень смущает. "в С«Серьезно? Я не знаю, что сказать. Я просто растерялся».в С«?? Это все меняет. Программа должна быть скомпилирована и выполнена. Это полностью меняет мое представление о веб-программировании. Когда я компилирую? Как исполняется программа (потому что это будет машинный код, поэтому он должен выполняться как независимый процесс). Как он взаимодействует с веб-сервером «IPC» и взаимодействует со всеми серверами (в моем примере MATLAB и MySQL) с помощью программирования сокетов? Я потерян !!

Люди говорят, что CGI устарела и больше не используется. Это так? Какое последнее обновление?

Однажды я столкнулся с ситуацией, когда мне пришлось предоставить HTTP-запросу PUT доступ к веб-серверу (Apache HTTPD). Это длинная спина. Итак, насколько я помню, это то, что я сделал:

Отредактировал файл конфигурации Apache HTTPD, чтобы указать веб-серверу передавать все запросы HTTP PUT некоторымput.php (Я должен был написать этот скрипт PHP)

Реализуйте put.php для обработки запроса (сохраните файл в указанном месте)

Люди говорили, что я написал CGI Script. Серьезно, я понятия не имел, о чем они говорили.

Я действительно написал CGI Script?

Надеюсь, вы поняли, в чем заключается мое замешательство. (Потому что я сам не знаю, где я запутался). Я прошу вас, ребята, сделать ваш ответ максимально простым. Я действительно не могу понять любую причудливую техническую терминологию. По крайней мере, в этом случае.

РЕДАКТИРОВАТЬ:

Я нашел этот удивительный урок"Программирование CGI - это просто!" - CGI Tutorial, который объясняет понятия всамый простой Возможный путь. После прочтения этой статьи вы можете прочитатьНачало работы с CGI-программированием на C дополнить ваше понимание реальными примерами кода. Я также добавил эти ссылки к этому руководству в статью Википедии:http://en.wikipedia.org/wiki/Common_Gateway_Interface

Ответы на вопрос(12)

Ваш ответ на вопрос