Справочник по переменным среды Common Gateway Interface (CGI)

Раскрытие информации: Ваша поддержка помогает поддерживать работу сайта! Мы зарабатываем реферальную плату за некоторые услуги, которые мы рекомендуем на этой странице.


Первоначально Интернет был в основном просто системой для отправки и получения HTTP-запросов. Браузер запрашивает отправку страницы с HTTP-запросом, а сервер отправляет страницу в браузер. Сама страница может включать в себя такие вещи, как ссылки на изображения, которые браузер запрашивает с большим количеством HTTP-запросов. Все было очень просто. Но он не позволял выполнять обработку сервером. В результате был разработан Common Gateway Interface (CGI)..

С помощью CGI браузер может отправлять запрос со входами на сервер, а программа CGI отправляет обратно веб-страницу, обработанную на основе отправленных входных данных. Возьмем ранний пример: программу CGI, которая возвращает информацию о химических соединениях. Браузер отправляет запрос в программу CGI с соединением, о котором пользователь хочет получить данные, и программа отправляет обратно страницу, заполненную информацией об этом соединении..

В конце концов, были разработаны серверные языки программирования, такие как PHP и Python, но в те времена CGI был всем, что было. Тем не менее, CGI обладает уникальной способностью: он не зависит от языка. Если сервер мог запустить программу, CGI мог бы справиться с этим. Так что это может быть скомпилированная программа на C ++ или интерпретируемый скрипт на Perl или что-то еще.

Сегодня программы CGI в основном унаследованы. Но бывают времена, когда это все еще лучший способ решить проблему. Давайте внимательнее посмотрим на переменные среды, которые являются основой системы.

переменные

Если вы рассматриваете программирование CGI, следующие переменные будут очень полезны для обработки различных запросов к серверу для обработки данных формы, что приведет к созданию мощных и универсальных программ. Чтобы получить доступ к этим переменным, вам потребуется извлечь запись из массива значений, относящихся к среде. Например, в Perl вы должны получить значения в массиве $ ENV, используя ключи переменных среды, подобные следующим:

$ ENV {$ env_var}

В приведенном выше фрагменте кода env_var ссылается на ключ или строку переменной среды, например SERVER_NAME. Другие языки программирования имеют свои собственные системы для управления переменными среды. Проверьте ссылку на ваш конкретный язык.

Вот переменные CGI и что они делают:

AUTH_TYPE

Некоторые веб-серверы защищают доступ к CGI-скриптам с помощью авторизации. Переменная AUTH_TYPE относится к типу авторизации, который сервер использует для проверки пользователей. Например, возможное значение для этой переменной может быть Basic, ссылаясь на обычную аутентификацию. Обратите внимание, что не все серверы поддерживают авторизацию.

CONTENT_LENGTH

CONTENT_LENGTH дает длину контента, доставляемого через запрос, в виде количества байтов. Если длина неизвестна, переменная будет установлена ​​в -1.

ТИП СОДЕРЖИМОГО

Переменная CONTENT_TYPE содержит тип файла, который возвращается запросом. Например, если запрашивается веб-страница, переменной CONTENT_TYPE будет присвоено значение MIME text / html.

GATEWAY_INTERFACE

Если вы хотите узнать, какую версию спецификации CGI обрабатывает сервер, вы можете запросить GATEWAY_INTERFACE. Эта переменная поможет вам убедиться, что вы используете правильную версию спецификации и действительные команды.

HTTP_ACCEPT

Так же, как CONTENT_TYPE предоставляет доставленные данные или тип MIME, в HTTP_ACCEPT перечислены все возможные типы MIME, которые может принять клиент, выполняющий запрос. Список типов разделяется запятыми.

HTTP_USER_AGENT

HTTP_USER_AGENT дает название программы, которую клиент использует для отправки запроса. Например, если пользователь выполняет скрипт CGI из Mozilla Firefox, HTTP_USER_AGENT будет указывать, что пользователь сделал запрос к веб-серверу через Firefox.

PATH_INFO

Переменная PATH_INFO содержит дополнительную информацию, которая отображается после имени сценария CGI. Например, если вы выполните www.placeholder.com/cgi-bin/hello.pl/index.html, тогда PATH_INFO для этого будет символами, которые идут после имени сценария CGI или /index.html в этом примере.

PATH_TRANSLATED

Когда вы вводите адрес сценария CGI в веб-браузере, вы обычно вводите виртуальный путь, который сопоставлен с физическим местоположением на сервере. Например, если вы перейдете по адресу http://www.somewebsite.com/cgi-bin/index.cgi и запросите переменную PATH_TRANSLATED, вы получите фактический физический путь. Если вы находитесь на общем Unix-сервере, это может быть /home/placeholder/public_html/cgi-bin/index.cgi.

веб-хостинг купон

Нужен качественный CGI доступ к хостингу?
GreenGeeks очень хорошо показали себя в наших тестах скорости и производительности. В настоящее время читатели могут сэкономить до 60% на своих планах. Воспользуйтесь этой специальной ссылкой со скидкой
получить сделку.

СТРОКА ЗАПРОСА

Обычно информация о запросе добавляется к URL-адресу после знака вопроса. Для URL http://www.placeholder.com/cgi-bin/hello.cgi?name=Leroy&exclamation = true, запрос QUERY_STRING вернет имя = Leroy&восклицательный знак = истина возвращается.

REMOTE_ADDR

Переменная REMOTE_ADDR дает IP-адрес клиентского компьютера, который делает запрос. По сути, REMOTE_ADDR REMOTE_HOST разрешается в IP-адрес.

УДАЛЕННЫЙ УЗЕЛ

Веб-серверы постоянно принимают как соединения, так и запросы от клиентов. Переменная REMOTE_HOST ссылается на имя хоста клиента, который выполняет запрос. Например, если ваш веб-хост принимает запрос от webhost2.com, то REMOTE_HOST будет заполнен webhost2.com.

REMOTE_IDENT

Переменная REMOTE_IDENT хранит идентификатор пользователя, выполняющий сценарий CGI. Идентификатор пользователя хранится только в том случае, если процесс ident выполняется, так как ident возвращает ответ, содержащий не только информацию идентификатора пользователя, но также и имя ОС, выполняющей скрипт.

REMOTE_USER

Запрос к переменной REMOTE_USER даст информацию об имени пользователя объекта, выполняющего запрос. Это действительно только если аутентификация включена.

REQUEST_METHOD

REQUEST_METHOD дает тип выполненного HTTP-запроса, который включает в себя такие значения, как GET, POST и PUT.

SCRIPT_NAME

Если вместо этого вы хотите получить виртуальный путь выполняемого скрипта, вы можете просто запросить переменную SCRIPT_NAME. Например, если вы запустите скрипт http://www.placeholder.com/cgi-bin/ping.sh и получите SCRIPT_NAME, вы получите виртуальный путь к скрипту или /cgi-bin/ping.sh.

НАЗВАНИЕ СЕРВЕРА

Переменные SERVER_NAME дают полное имя вашего сервера. Например, если вы запросите эту переменную, результатом будет доменное имя веб-сайта. Например, что-то вроде www.placeholder.com.

ПОРТ СЕРВЕРА

Любой сервер, работающий в сети, имеет как адрес, так и порт. Сервер использует порт для приема соединений и прослушивания запросов. Стандартный порт – 80, но это могут быть и другие номера – особенно для специализированных приложений. Запрос переменной SERVER_PORT приведет к значению порта прослушивания.

SERVER_PROTOCOL

Вы можете узнать, какой протокол использует сервер для обработки запросов. Например, если сервер, с которым вы работаете, использует протокол HTTP, он вернет строку типа «HTTP / 1.1», что означает, что сервер использует версию HTTP 1.1. В основном возвращаемая строка находится в формате протокол / версия.

SERVER_SOFTWARE

Переменная среды SERVER_SOFTWARE содержит имя и версию программного обеспечения, запущенного на веб-сервере. Например, если вы выводите значение этой переменной и используете версию Apache, вы можете получить что-то похожее на следующее:

Apache 2.4.25

Вывод

Одним из первых шагов, которые вы можете предпринять для понимания CGI или протокола HTTP, является ознакомление с основными переменными и синтаксисом. Это включает в себя только что обозначенные переменные среды. Хотя CGI сегодня используется редко, многие современные языки веб-разработки, такие как PHP, также используют многие из этих переменных. В результате их изучение также поможет вам создавать надежные программы даже для современных языков веб-разработки..

Дальнейшее чтение и ресурсы

У нас есть больше руководств, учебных пособий и инфографики, связанных с кодированием и разработкой:

  • Введение в PHP и ресурсы: это один из самых больших языков программирования в сети.
  • CGI Primer: начните с основ CGI.
  • Учебные пособия и ресурсы по CGI: узнайте, как продвигать CGI настолько далеко, насколько это возможно..

Какой код вы должны изучить?

Не знаете, на каком языке программирования вы должны научиться кодировать? Проверьте нашу инфографику, какой код вы должны изучить? В нем не только обсуждаются различные аспекты языков, но и даются ответы на такие важные вопросы, как: «Сколько денег я заработаю на программировании на PHP?»

Какой код вы должны изучить?
Какой код вы должны изучить?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me