Как и большинство других web-серверов, серверы Netscape устанавливают
значения для определённого набора переменных окружения, называемых CGI-переменными,
при установке контекста для запуска CGI-скрипта. Предполагается, что создатели
CGI-скриптов могут использовать эти переменные в своих скриптах.
По контрасту, Netscape web-серверы не устанавливают отдельного окружения
для приложений серверного JavaScript. Тем не менее, некоторая часть информации,
обычно устанавливаемой в CGI-переменных, может использоваться в приложениях
JavaScript. Машина выполнения предоставляет несколько механизмов для доступа
к этой информации:
- Через доступ к свойствам предопределённого объекта request
- Через использование функции ssjs_getCGIVariable для доступа к некоторым
CGI-переменным и другим переменным окружения
- Через использование метода httpHeader объекта request для доступа
к свойствам шапки клиентского запроса
В следующей таблице перечислены свойства объекта request, соответствующие
CGI-переменным.
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. |
|