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