Common Gateway Interface (CGI), стандарт, позволяющий внешним приложениям, расположенным на персональных компьютерах или других устройствах, взаимодействовать с информационными серверами в Интернете. Разработанный в 1990-х годах, CGI используется до сих пор, однако применяются и другие методы, например PHP-скрипты.
Программы CGI способны пересылать множество видов мультимедиа, таких как документы, изображения и аудиоклипы. Многие веб-сайты с полями для ввода данных используют CGI, и большая часть динамического контента в Сети создается с помощью CGI. Чтобы быть эффективными, программы CGI должны быть эффективными. Чтобы создавать эффективные CGI, разработчики должны знать HTML (язык разметки гипертекста), CGI и команды HTTP (протокол передачи гипертекста), а также обладать навыками компьютерного программирования.
CGI-приложения могут быть написаны на любом языке программирования, который поддерживается хост-компьютером, включая компилируемые языки, такие как C и FORTRAN, и языки сценариев, такие как Perl и TCL. CGI-программы обычно используют HTTP-методы GET и POST и переменные окружения QUERY_STRING и PATH_INFO, чтобы облегчить взаимодействие между клиентом и веб-сервером. С POST работать сложнее, но он поддерживает более сложные данные. Чтобы быть эффективными, CGI-передачи должны содержать заголовки, выражающие тип данных возвращаемой программы. Безопасность также важна при использовании CGI-программ, поскольку они могут открыть хост-систему для неограниченного доступа к Web. Для повышения безопасности программы помещаются в каталог /cgi-bin. Этот каталог, за которым должен следить администратор, находится вдали от другого Web-контента, и доступ к нему часто ограничивается определенными пользователями. Это позволяет Web-серверу выполнять разрешенные программы, исключая при этом несанкционированный доступ.