ASP - ServerVariables
Семейство ServerVariables извлекает значения определенных заранее переменных среды.
Синтаксис
Request.ServerVariables (переменная_среды_сервера)
Параметры
переменная_среды_сервера
Указывает имя извлекаемой переменной среды сервера. Может принимать одно из приведенных ниже значений.
Переменная | Описание |
ALL_HTTP | Все заголовки HTTP, переданные клиентом. |
ALL_RAW | Извлекает все заголовки в необработанном виде. Разница между ALL_RAW и ALL_HTTP состоит в том, что ALL_HTTP помещает префикс HTTP_ перед именем заголовка и имя заголовка всегда задается заглавными буквами. В ALL_RAW имя заголовка и значения отображаются так, как они были переданы клиентом. |
APPL_MD_PATH | Извлекает путь к метабазе приложения для ISAPI DLL. |
APPL_PHYSICAL_PATH | Извлекает физический путь, соответствующий путю метабазы. IIS преобразовывает APPL_MD_PATH в физический путь (каталог) для возвращения этого значения. |
AUTH_PASSWORD | Значение, введенное в диалоговое окно проверки подлинности клиента. Эта переменная доступна только при использовании обычной проверки подлинности. |
AUTH_TYPE | Способ проверки подлинности, который используется сервером для проверки пользователей при попытке обращения к защищенному сценарию. |
AUTH_USER | Необработанное имя пользователя, получившего доступ. |
CERT_COOKIE | Уникальный идентификатор клиентского сертификата, возвращаемый в виде строки. Может быть использован как подпись для всего клиентского сертификата. |
CERT_FLAGS | бит 0 установлен в 1, если клиентский сертификат присутствует.
бит 1 установлен в 1, если служба сертификации, выдавшая клиентский сертификат является недопустимой (не включена в список доверенных служб сертификации на сервере). |
CERT_ISSUER | Поле Issuer клиентского сертификата (O=MS, OU=IAS, CN=имя пользователя, C=USA). |
CERT_KEYSIZE | Размер (в битах) ключа подключения SSL. Например, 128. |
CERT_SECRETKEYSIZE | Размер (в битах) закрытого ключа сертификата сервера. Например, 1024. |
CERT_SERIALNUMBER | Поле «порядковый номер» клиентского сертификата. |
CERT_SERVER_ISSUER | Поле Issuer сертификата сервера. |
CERT_SERVER_SUBJECT | Поле Subject сертификата сервера. |
CERT_SUBJECT | Поле Subject сертификата клиента. |
CONTENT_LENGTH | Длина содержимого, как указано клиентом. |
CONTENT_TYPE | Тип данных содержимого. Используется с запросами, которые имеют присоединенные сведения, например HTTP-запросы GET, POST и PUT. |
GATEWAY_INTERFACE | Номер версии спецификации CGI, используемой сервером. Имеет формат CGI/версия. |
HTTP_<ИмяЗаголовка> | Значение, хранимое в заголовке ИмяЗаголовка. Любой заголовок, кроме перечисленных в таблице, должен иметь префикс HTTP_, чтобы семейство ServerVariables могло извлечь его значение.
Примечание. Tсервер интерпретирует любой знак подчеркивания (_) в ИмениЗаголовка как тире в самом заголовке. Например, если указано HTTP_MY_HEADER, сервер будет искать переданный заголовок MY-HEADER. |
HTTP_ACCEPT | Возвращает значение заголовка Accept. |
HTTP_ACCEPT_LANGUAGE | Возвращает строку, которая описывает язык, используемый для отображения содержимого. |
HTTP_USER_AGENT | Возвращает строку, которая описывает обозреватель, отправивший запрос. |
HTTP_COOKIE | Возвращает строку модуля настройки, который был включен в запрос. |
HTTP_REFERER | При перенаправлении возвращает строку, содержащую адрес URL исходного запроса. |
HTTPS | Возвращает ON, если запрос пришел по безопасному подключению (SSL), или OFF, если канал не является безопасным. |
HTTPS_KEYSIZE | Размер (в битах) ключа подключения SSL. Например, 128. |
HTTPS_SECRETKEYSIZE | Размер (в битах) закрытого ключа сертификата сервера. Например, 1024. |
HTTPS_SERVER_ISSUER | Поле Issuer сертификата сервера. |
HTTPS_SERVER_SUBJECT | Поле Subject сертификата сервера. |
INSTANCE_ID | Идентификатор экземпляра IIS в текстовом формате. Если идентификатор экземпляра равен 1, то он появляется в виде строки. Можно использовать эту переменную для извлечения идентификатора экземпляра веб-сервера (в метабазе), которому принадлежит запрос. |
INSTANCE_META_PATH | Путь метабазы для экземпляра IIS, который отвечает запросу. |
LOCAL_ADDR | Возвращает адрес сервера, по которому пришел запрос. Это важно для компьютеров с доступом к разным сетям, когда может быть несколько IP-адресов, связанных с компьютером, и необходимо узнать, какой адрес использован запросом. |
LOGON_USER | Учетная запись Windows, с которой пользователь вошел в систему. |
PATH_INFO | Дополнительная информация о пути, заданная клиентом. Можно обращаться к сценариям с помощью виртуального пути и переменной сервера PATH_INFO. Если эти сведения приходят с адреса URL, сервер перекодирует их до передачи сценарию CGI. |
PATH_TRANSLATED | Преобразованная версия PATH_INFO; берется путь и над ним производятся операция сопоставления виртуального и физического пути. |
QUERY_STRING | Информация запроса, хранимая в строке после вопросительного знака (?) в HTTP-запросе. |
REMOTE_ADDR | IP-адрес удаленного компьютера, выполняющего запрос. |
REMOTE_HOST | Имя компьютера, выполняющего запрос. Если сервер не располагает этими сведениями, он установит значение REMOTE_ADDR, а этот параметр останется незаполненным. |
REMOTE_USER | Строка несопоставленного имени пользователя, переданная пользователем. Это имя, которое передается пользователем. Отличается от имен, которые изменяются фильтрами проверки подлинности, установленными на сервере. |
REQUEST_METHOD | Метод, использованный для выполнения запроса. Для HTTP — это GET, HEAD, POST и так далее. |
SCRIPT_NAME | Виртуальный путь к выполняемому сценарию. Используется для адресов URL, ссылающихся на себя. |
SERVER_NAME | Имя узла сервера, псевдоним DNS или IP-адрес в том виде, как они присутствовали в адресе URL, ссылающемся на себя. |
SERVER_PORT | Номер порта, к которому был направлен запрос. |
SERVER_PORT_SECURE | Строка, содержащая 0 или 1. Если запрос обрабатывается на защищенном порте, значением строки будет 1, в противном случае — 0. |
SERVER_PROTOCOL | Название и версия протокола информационных запросов. Имеет формат протокол/версия. |
SERVER_SOFTWARE | Название и версия программного обеспечения сервера, который отвечает на запросы и запускает шлюзы. Имеет формат название/версия |
URL | Основная часть URL-адреса. |
Примечания
Если клиент посылает заголовок отличный от тех, что приведены в предыдущей таблице, можно извлечь его значение, добавив к имени заголовка префикс HTTP_ в вызове Request.ServerVariables. Например, если клиент посылает заголовок
SomeNewHeader:SomeNewValue
можно извлечь SomeNewValue
с помощью следующей синтаксической конструкции:
<% Request.ServerVariables("HTTP_SomeNewHeader") %>
Можно перебирать имена переменных сервера. Например, приведенный ниже сценарий выводит все переменные сервера в таблицу:
<TABLE BORDER="1">
<TR><TD><B>Server Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each strKey In Request.ServerVariables %>
<TR><TD> <%= strKey %> </TD><TD> <%= Request.ServerVariables(strKey) %> </TD></TR>
<% Next %>
</TABLE>
Пример
Приведенный ниже пример использует объект Request для отображения нескольких переменных сервера:
<HTML>
<!-- This example displays the content of several ServerVariables. -->
ALL_HTTP server variable =
<%= Request.ServerVariables("ALL_HTTP") %> <BR>
CONTENT_LENGTH server variable =
<%= Request.ServerVariables("CONTENT_LENGTH") %> <BR>
CONTENT_TYPE server variable =
<%= Request.ServerVariables("CONTENT_TYPE") %> <BR>
QUERY_STRING server variable =
<%= Request.ServerVariables("QUERY_STRING") %> <BR>
SERVER_SOFTWARE server variable =
<%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR>
</HTML>
Следующий пример использует семейство ServerVariables для вставки имени сервера в гиперссылку.
<A HREF = "http://<%= Request.ServerVariables("SERVER_NAME") %>
/scripts/MyPage.asp">Link to MyPage.asp</A>
Область применения
См. также
ClientCertificate, Cookies, Form, QueryString