Aby ułatwić to zadanie, większość serwerów umożliwia uruchamianie tylko tych programów, które znajdują się w specjalnym katalogu (zazwyczaj cgi-bin w głównym katalogu serwera)

Wymiana danych między serwerem a programami CGI Zgodnie ze specyfikacją CGI istnieją wyraźnie określone drogi wymiany danych między serwerem a skryptem CGI oraz w drugą stronę. Zgodnie ze specyfikacją dane mogą być dostępne dla skryptu CGI w dwóch postaciach: jako dane pojawiające się na standardowym wejściu programu lub w specjalnych zmiennych środowiskowych tworzonych przez serwer podczas uruchamiania programu CGI. Wyniki program/skrypt wysyła na standardowe wyjście, a oprogramowanie serwera poddaje je dalszemu przetwarzaniu.

Zmienne środowiskowe Zmienna Typ Opis SERVER_SOFTWARE Zmienne tworzone dla wszystkich żądań Informacja o programie serwera, który uruchomił program CGI. Format: nazwa/wersja np. Apache/1.3.37 (Unix). SERVER_NAME Nazwa hosta, na którym działa serwer w postaci nazwy DNS, aliasu DNS lub adresu IP. GATEWAY_INTERFACE Wersja specyfikacji CGI zaimplementowanej przez program serwera. Format: CGI/wersja np. CGI/1.1. SERVER_PROTOCOL Zmienne tworzone w zależności od konkretnego żądania Nazwa i wersja protokołu użytego podczas odbierania żądania od klienta. Format: protokół/wersja np.