1ebe2abf

Доступ к Переменным CGI


Как и большинство других web-серверов, серверы Netscape устанавливают значения для определённого набора переменных окружения, называемых CGI-переменными, при установке контекста для запуска CGI-скрипта. Предполагается, что создатели CGI-скриптов могут использовать эти переменные в своих скриптах.

По контрасту, Netscape web-серверы не устанавливают отдельного окружения для приложений серверного JavaScript. Тем не менее, некоторая часть информации, обычно устанавливаемой в CGI-переменных, может использоваться в приложениях JavaScript. Машина выполнения предоставляет несколько механизмов для доступа к этой информации:

  • Через доступ к свойствам предопределённого объекта request
  • Через использование функции ssjs_getCGIVariable для доступа к некоторым CGI-переменным и другим переменным окружения

  • Через использование метода httpHeader объекта request для доступа к свойствам шапки клиентского запроса

В следующей таблице перечислены свойства объекта request, соответствующие CGI-переменным. Дополнительно об этих свойствах и об объекте request в целом см. .

CGI-переменная

СвойствоОписание

AUTH_TYPEauth_typeТип авторизации, если запрос защищён авторизацией любого типа. Netscape web-серверы поддерживают базовую авторизацию доступа HTTP.

Пример значения: basic

REMOTE_USERauth_userИмя локального HTTP-пользователь web-браузера, если авторизации доступа HTTP была активирована для данного URL. Заметьте, что это не способ определения имени пользователя, получившего доступ к Вашей программе. Пример значения: ksmith
REQUEST_METHOD methodHTTP-метод, ассоциированный с запросом. Приложение может использовать его для определения соответствующего ответа на запрос.

Пример значения: GET

SERVER_PROTOCOL protocolУровень протокола HTTP, поддерживаемый клиентским программным обеспечением. Пример значения: HTTP/1.0
QUERY_STRING queryИнформация запрашивающей HTML-страницы; если имеется "?", информация в URL, идущая после знака "?". Пример значения: x=42




Серверная функция ssjs_getCGIVariable даёт Вам доступ к переменным окружения, установленным в серверном процессе, включая CGI-переменные, перечисленные в следующей таблице.

Переменная

Описание
AUTH_TYPE Тип авторизации, если запрос защищён авторизацией любого типа. Netscape web-серверы поддерживают базовую авторизацию доступа HTTP.

Пример значения: basic
HTTPS Если на сервере активна служба безопасности/security, значение этой переменной ON; иначе - OFF. Пример значения: ON
HTTPS_KEYSIZE Количество битов в ключе сессии, используемом для шифрования сессии, если безопасность on. Пример значения: 128
HTTPS_SECRETKEYSIZE Количество битов, используемых для генерации private-ключа сервера.

Пример значения: 128
PATH_INFO Информация пути, установленная браузером. Пример: /cgivars/cgivars.html
PATH_TRANSLATED Фактическое системное pathname/имя пути , содержащегося в PATH_INFO. Пример: /usr/ns-home/myhttpd/js/samples/cgivars/cgivars.html
QUERY_STRING Информация запрашивающей HTML-страницы; если имеется "?", информация в URL, идущая после знака "?". Пример значения: x=42
REMOTE_ADDR IP-адрес хоста, отправившего запрос. Пример: 198.93.95.47
REMOTE_HOST Если DNS на сервере включена, имя хоста, отправившего запрос; иначе - его IP-адрес. Пример: www.netscape.com
REMOTE_USER Имя локального HTTP-пользователя web-браузера, если авторизация доступа HTTP была активирована данным URL. Заметьте, что это не способ определения user name того, кто выполнил доступ к Вашей программе. Пример: ksmith
REQUEST_METHOD HTTP-метод, ассоциированный с запросом. Приложение может использовать его для определения ответа на запрос. Пример: GET
SCRIPT_NAME pathname к данной странице, как он введён в URL. Пример: cgivars.html
SERVER_NAME hostname или IP-адрес, по которому приложение JavaScript запущено, как они даны в URL. Пример: piccolo.mcom.com
SERVER_PORT TCP-порт, по которому запущен сервер. Пример: 2020
SERVER_PROTOCOL Уровень протокола HTTP, поддерживаемый клиентским программным обеспечением. Пример: HTTP/1.0
SERVER_URL URL, введённый пользователем для доступа к данному серверу. Пример: https://piccolo:2020
<


Здесь приведён синтаксис ssjs_getCGIVariable:

value = ssjs_getCGIVariable("name");

Этот оператор устанавливает в переменную value значение CGI- переменной name. Если предоставленный вами аргумент не является одной из CGI-переменных, перечисленных в , машина выполнения ищет переменную окружения с этим именем в среде сервера. Если она найдена, машина выполнения возвращает значение; иначе, возвращает null. Например, следующий код присваивает значение стандартной переменной окружения CLASSPATH переменной JavaScript classpath:

classpath = ssjs_getCGIVariable("CLASSPATH");

Метод httpHeader объекта request возвращает шапку/header текущего клиентского запроса. Для CGI-скрипта Netscape web-серверы устанавливают CGI-переменные для некоторой информации в шапке. Для приложений JavaScript Вы получаете эту информацию непосредственно из шапки. показывает информацию, доступную как переменные CGI в среде CGI, но как свойства шапки - в серверном JavaScript. В свойствах шапки символы подчёркивания в имени CGI-переменной (_) заменяются на тире (-); например, CGI-переменная CONTENT_LENGTH соответствует свойству шапки content-length.

CGI-переменнаяОписание
CONTENT_LENGTH Количество байтов, отправленных клиентом.
CONTENT_TYPE Тип данных, отправленных клиентом, если форма отправлена методом POST.
HTTP_ACCEPT Перечисляет типы данных, которые может принимать клиент.
HTTP_USER_AGENT Идентифицирует браузер, используемый для доступа к Вашей программе.
HTTP_IF_MODIFIED_SINCE Дата, установленная в соответствии со стандартным временем GMT (по Гринвичу), дающая возможность отправлять клиенту ответ на запрос только тогда, когда дата была изменена после данной даты.
Дополнительно о манипулировании клиентской "шапкой" см. .

В таблице даны CGI-переменные, не поддерживаемые серверным JavaScript, которые не могут быть применены при запуске приложений JavaScript.

ПеременнаяОписание
GATEWAY_INTERFACE Версия CGI, запущенная на сервере. Не применяется к приложениям JavaScript.
SERVER_SOFTWARE Тип запущенного сервера. Недоступна для приложений JavaScript.

Содержание раздела