Серверный JavaScript 1.4. Руководство по использованию

       

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


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

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

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

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

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

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

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



AUTH_TYPE

auth_type

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

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

REMOTE_USER

auth_user

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

REQUEST_METHOD method

HTTP-метод, ассоциированный с запросом. Приложение может использовать его для определения соответствующего ответа на запрос.

Пример значения: 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.

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