CommuniGate Pro
Версия 6.4
 

Модули HTTP

В модулях CommuniGate Pro HTTP Admin и HTTP User реализован протокол HTTP для сетей TCP/IP.

Модуль HTTP Admin:
  • обеспечивает доступ к страницам Веб Интерфейса Администрирования Сервером.
  • обеспечивает доступ к страницам Веб Интерфейса Администрирования Домена.

HTTP User модуль:

HTTP модули CommuniGate Pro поддерживают различные методы аутентификации пользователей, включая аутентификацию через GSSAPI, Kerberos и по Сертификату, обеспечивая единый механизм входа пользователя.

Модуль HTTP User также реализует клиентскую часть протокола HTTP. Это используется для посылки запросов HTTP удалённому серверу и получения ответов.

Веб Интерфейс Администратора Сервера

Администратор Сервера может использовать любой Веб браузер, работающий с Веб (HTML) формами для удалённой настройки и наблюдения за сервером.

Применяемая схема аутентификации через HTTP протокол защищает от неавторизованного доступа к страницам Веб Администрирования Сервером. Для того, чтобы получить доступ к страницам Веб Администрирования, Пользователь должен ввести своё имя и пароль в CommuniGate Pro и обладать соответствующими Правами Доступа к Серверу.

По умолчанию, HTTP Admin модуль принимает незашифрованные TCP/IP соединения на TCP порт 8010 и безопасные(SSL/TLS) соединения на TCP порт 9010.

Для получения доступа к страницам Веб Администрирования Администратор Сервера должен использовать следующие адреса:
http://domain.com:8010

https://domain.com:9010
где domain.com является либо именем главного домена сервера (псевдонимом главного домена), либо IP адресом Сервера CommuniGate Pro.

Если вы назначили все IP адреса вашего Сервера и имена в DNS дополнительным доменам, то в результате такой ошибки при настройке сервера вы можете оказаться отрезанными от Веб Интерфейса Администратора Сервера.

В этом случае, для получения доступа через Веб Интерфейс Администратора Сервера используйте следующий URL:
http://sub.domain.com:8010/MainAdmin/
https://sub.domain.com:9010/MainAdmin/
где sub.domain.com является любым именем, ссылающимся на ваш компьютер сервера или на любой из его IP адресов.

Веб Интерфейс Администратора Домена

Если Сервер CommuniGate Pro обслуживает несколько доменов, тот этот же порт может использоваться Администраторами Доменов для доступа к Установкам Доменов и спискам пользователей.

Администратор домена сервер должен использовать следующие адреса:
http://sub.domain.com:8010
https://sub.domain.com:9010
где sub.domain.com является именем администрируемого домена.

Сервер запросит имя пользователя и пароль, и, если пользователь с этим именем обладает правами доступа Администратор Домена, покажет список Пользователей этого Домена.

Иногда этот URL не может быть использован. Например, Домен может не иметь A-записи в DNS (а иметь только MX-записи). Для получения доступа к такому домену, Администратор Домена должен использовать следующий URL:

http://domain.com:8010/Admin/sub.domain.com/
где:
domain.com является либо именем Главного Домена Сервера или его псевдонимом, либо IP адресом Сервера CommuniGate Pro.
sub.domain.com является именем требуемого Домена.

Другие Домены могут указать ваш Домен в качестве Домена Администратора. На странице с Установками Домена приводится перечень этих Доменов:

Администрируемые Домены
node100.example.com установки
test-dom.example.com установки

Вы можете войти в них через Веб Интерфейс Администратора Домена используя ссылки, имеющиеся на этой странице. Помните, что, если вы собираетесь использовать страницы Веб Администрирования для другого Домена, вы должны входить на сервер, используя ваше полное имя пользователя (вида yourAccountName@yourDomainName).


Доступ к Веб Интерфейсу Пользователя

Пользователи CommuniGate Pro могут соединиться с Сервером CommuniGate Pro через любой Веб браузер (по HTTP протоколу) и изменять свои данные, просматривать свои Папки, читать, копировать, удалять, перенаправлять и переадресовывать сообщения, передвигать сообщения между Папками, создавать и передавать новые сообщения и т.д.
Этот компонент CommuniGate Pro называется Веб Интерфейс Пользователя.

Зарегистрированные пользователи и гости также могут использовать этот компонент для просмотра архивов Списка Рассылки.

По умолчанию модуль HTTP User принимает незашифрованные TCP/IP соединения на TCP порт 8100 и безопасные соединения на TCP порт 9100. Если ваш сервер не должен работать совместно с каким-нибудь другим Веб Сервером на одном компьютере, то рекомендуется изменить эти номера портов на 80 и 443 - стандартные номера для HTTP и HTTPS.
В этом случае ваши пользователи не должны будут явно указывать номер порта в своих браузерах.


Доступ к Хранилищу файлов Пользователя

Пользователи CommuniGate Pro могу использовать своё Хранилище Файлов Пользователя как персональный Веб сайт. Дополнительную информацию смотрите в разделе Хранилище Файлов.

URL на Хранилище Файлов (персональный Веб сайт) Пользователя accountName@domainName имеет вид:
http://domainName:port/~accountName
https://domainName:port/~accountName
где port является одним из номеров портов модуля HTTP User (по умолчанию 8100 и 9100).

Список файлов в Хранилище Файлов может получен по ссылке:

http://domainName:port/~accountName/index.wssp
https://domainName:port/~accountName/index.wssp
Эта же страница может быть использована для управления файлами пользователя в Хранилище Файлов. Изменения через неё могут делать сам Пользователь, Администраторы домена и другие Пользователи, которым были даны права доступа к файлам.

Специальный документ "davmount" (RFC4709) может быть получен через следующие URL:

http://domainName:port/~accountName/davmount
https://domainName:port/~accountName/?davmount=1

Вы можете задать другой префикс для Хранилища Файлов, изменив соответствующие Установки Домена. Эта настройка может также быть пустой строкой и, в таком случае, для доступа к персональному Веб сайту будет использоваться следующий URL:

http://domainName:port/accountName/
https://domainName:port/accountName/

Вы можете также использовать Маршрутизатор CommuniGate Pro для настройки доступа к персональным Веб сайтам с использованием URL, содержащего имена доменов. Дополнительную информацию смотрите ниже в разделе Маршрутизатор.


Настройка модулей HTTP

Для того, чтобы настроить параметры HTTP модулей, используйте Веб Интерфейс Администратора. Откройте в области Установки страницу Услуги, затем откройте страницу HTTPA (Admin) или HTTPU (User).

Обработка
Уровень Журнала: Каналы: Приёмник
Ограничение размера Запроса: Сканировать Запросы превышающие лимит
Сжимать когда Размер больше чем: Поддерживать 'Keep-Alive' 

Опции HTTP
Объявлять 'Basic'-Аутентификацию Объявлять 'Digest'-Аутентификацию
Объявлять 'NTLM'-Аутентификацию Объявлять 'Negotiate'-Аутентификацию
Уровень Журнала
Используйте эту настройку для того, чтобы указать, какую информацию HTTP модуль должен сохранять в Журнале работы Сервера. Обычно используется уровень Основные или уровень Проблемы (не фатальные ошибки). В случае, если в работе модуля HTTP возникают проблемы, возможно, целесообразным будет увеличить детализацию до уровня Подробности или Всё: в этом случае в Журнал работы Сервера будет записываться более подробная информация о работе модуля.
Записи, помещённые модулем HTTP Admin в Журнал работы Сервера, имеют пометку HTTPA.
Записи, помещённые модулем HTTP User в Журнал работы Сервера, имеют пометку HTTPU.
Каналы
Эта настройка используется для того, чтобы ограничить число одновременных соединений, которое может принимать HTTP модуль. Большинство браузеров открывают несколько соединений для загрузки HTML страницы и находящихся на ней картинок, так что не устанавливайте это ограничение в значение менее 5, так как в таком случае некоторые браузеры не смогут загрузить находящиеся на странице графические объекты.
Приёмник
Используйте эту ссылку для того, что изменить настройки портов приёмников для HTTP Admin или HTTP User. Здесь вы можете указать номер(а) портов TCP, которые должны использоваться в этой Услуге, используемый интерфейс и другие опции.

Если на компьютере, на котором запущен Сервер CommuniGate Pro, одновременно функционирует другой Веб Сервер, то вы должны указать номер порта в "добавочном диапазоне" для того, чтобы избежать конфликтов с другим Веб Сервером. Обычно "добавочные" Веб Сервера используют номера портов в диапазон 8000-8100. Если вы используете номер порта 8010, то вы можете соединяться с вашим сервером вводя в Веб браузере адрес http://xxx.yyy.zzz:8010, где xxx.yyy.zzz является именем домена (А-записью) или IP адресом вашего сервера.

Ограничение размера Запроса
Эта настройка ограничивает максимальный размер HTTP запроса, принимаемый сервером. Возможно, вы захотите увеличить этот лимит, если вам требуется разрешить пользователям загружать большие файлы и/или прикреплять большие файлы к сообщениям, созданным в Веб Интерфейсе Пользователя.
Поддерживать 'Keep-Alive'
Если эта опция включена, то CommuniGate Pro будет поддерживать протокол Keep-Alive и браузер пользователя сможет получать несколько файлов, используя одно HTTP соединение. В некоторых браузерах это функция реализована некорректно и пользователи могут столкнуться с проблемами при включении этой функции.
Сжимать когда Размер больше чем
Если ответ на запрос превышает значение этой опции, а клиент поддерживает компрессию данных, то ответ будет сжат перед отправкой клиенту.
Сканировать Запросы превышающие лимит
Если эта опция выключена и размер полученного HTTP запроса превышает заданное ограничение, то Сервер отправляет ответ с ошибкой и закрывает соединение. Многие браузеры в таком случае не показывают ответ с ошибкой. Вместо этого они отображают стандартное сообщение типа "связь прервалась".
Если эта опция включена, то Сервер отправляет обратно сообщение об ошибке, но получает полностью весь запрос (хотя и нигде его не сохраняет). В этом случае браузер пользователя покажет сообщение об ошибке.
Объявлять 'Basic'-Аутентификацию, Объявлять 'Digest'-Аутентификацию,
Объявлять 'NTLM'-Аутентификацию, Объявлять 'Negotiate'-Аутентификацию
Если эти опции включены, то Сервер будет информировать браузеры о том, что можно использовать незашифрованные (Basic) или безопасные (Digest, NTLM, Negotiate/SNEGO) методы аутентификации. Если вы планируете работать через Веб Интерфейс Администратора через Интернет, используя незашифрованные соединения, возможно, вам потребуется включить эти опции. Разные браузеры могут вести себя различным образом при включении этих опций. Некоторые выведут сообщения об ошибке, некоторые будут в любом случае использовать незашифрованный (Basic) метод аутентификации, так что включайте эти опции только с осторожностью и только при необходимости. GSSAPI (Kerberos) методы аутентификации становятся доступными при включении опции Объявлять 'Negotiate'-Аутентификацию.

Для каждого отправляемого объекта HTTP модули устанавливают типы MIME. Для определения подходящего типа для обычных файлов, модуль использует расширение имени файла и следующую "базовую" встроенную таблицу:

Расширение имени файла  MIME-тип
htmltext/html
txttext/plain
gifimage/gif
jpgimage/jpeg
csstext/css
jstext/javascript

Существует также "расширенная" встроенная таблица, которая отображается на странице Веб Администрирования.

Вы можете создать свою собственную таблицу расширений, указав дополнительные расширения имён файлов и соответствующие им MIME-типы:

MIME-типы
Расширение имени файлаMIME-тип

doc application/msword
eml message/rfc822
flv video/x-flv
htm text/html
js text/javascript
jss text/javascript
mov video/quicktime
mp3 audio/mpeg
mpg video/mpeg
pdf application/pdf

Расширенная "встроенная" таблица показывается сразу под вашей собственной пользовательской таблицей.

При преобразовании расширения файла в MIME-тип, сначала проверяется пользовательская таблица, а затем встроенная таблица. Как следствие, вы можете переопределить значения встроенной таблицы значениями из пользовательской таблицы.


Маршрутизация

HTTP модули используют Маршрутизатор для обработки всех получаемых ими адресов. Но, в отличие от модулей Доступа, HTTP модули зачастую имеют дело не с полными адресами электронной почты, а только с именами доменов.

Когда модуль HTTP Admin получает запрос, он использует имя или IP адрес, указанный в URL, для того, чтобы решить, какие страницы Администрирования Домена следует отображать.

Когда модуль HTTP User получает запрос, он использует имя или IP адрес, указанный в URL, для того, чтобы решить, к какому Домену (странице входа, Спискам Рассылки, Хранилищу Файлов и т.п.) ему следует предоставить доступ.

Для того, чтобы использовать все возможности Маршрутизации CommuniGate Pro (Таблицу Маршрутизации, Псевдонимы, IP адреса при Отображении Доменов и т.д.), HTTP модуль формирует полный адрес электронной почты LoginPage@domainname (где domainname - имя домена, указанное в URL) и затем обрабатывает этот адрес в Маршрутизаторе:
  • Если адрес LoginPage@domainname направляется в любой другой модуль, отличный от LOCAL, возвращается ошибка.
  • Если адрес LoginPage@domainname направляется в модуль LOCAL и локальная часть результирующего адреса остаётся LoginPage, то для открытия соответствующего Домена CommuniGate Pro используется доменная часть результирующего адреса.
  • Если адрес направляется в модуль LOCAL, но результирующее имя пользователя не является LoginPage, то открывается Хранилище Файлов Пользователя с таким именем. Если результирующий адрес имеет локальную часть, то открывается поддиректория с таким именем в Хранилище Файлов.

Примеры (записи в Маршрутизаторе, domainA.com является Доменом CommuniGate Pro):

mail2.domain.com = domainA.com
При использовании URL http://mail2.domain.com/ адрес <LoginPage@mail2.domain.com> направляется в адрес <LoginPage@domainA.com>, и открывается Веб Интерфейс для домена domainA.com.
<LoginPage@mail2.domain.com> = user@domainA.com
При использовании URL http://mail2.domain.com/ адрес <LoginPage@mail2.domain.com> направляется на локального пользователя user@domainA.com, и открывается Хранилище Файлов пользователя user@domainA.com.
<LoginPage@mail2.domain.com> = subDir@user@domainA.com.domain
При использовании URL http://mail2.domain.com/ адрес <LoginPage@mail2.domain.com> направляется на локального пользователя user@domainA.com с локальной частью subDir, и открывается директория subDir в Хранилище Файлов пользователя user@domainA.com.

Веб Приложения

Модуль HTTP User может запускать CG/PL Веб Приложения.

Для того, чтобы открыть страницу с настройками модуль HTTP User, используйте Веб Интерфейс Администратора:

Веб Приложения
Компонента URI Веб Приложение
Компонента URI
Компонента URI (Universal Resource Location), после первого символа '/'.
Компонента может содержать символ звёздочки (*).
Веб Приложение
Имя запускаемого CG/PL Веб Приложения. Каждый домен может содержать свою версию приложения.

Веб Приложения могут использоваться для расширения функциональности Веб Интерфейса Пользователя..

Веб Приложения используются для для реализации протокола "Autodiscover" от Microsoft и автонастроек Mozilla Thunderbird.


Общий интерфейс шлюза (CGI)

Модуль HTTP User может запускать CGI программы и скрипты. Для доступа к CGI программам должен использоваться URL /cgi-bin/programName и программа programName должна находиться в CGI Каталоге CommuniGate Pro.

Для того, чтобы открыть страницу с настройками модуль HTTP User, используйте Веб Интерфейс Администратора:

CGI Программы
CGI Каталог:
Расширение имени файлаПрограмма-Интерпретатор
Поля HTTP запросов
CGI Каталог
Введите имя каталога с файлами на сервере, в котором находятся ваши CGP программы. Если эта директория находится внутри директории данных CommuniGate Pro, то вы можете указать её относительное имя; в противном случае введите полный путь к этой директории. CGI Каталог не должен иметь поддиректорий.
Расширение имён файлов
Некоторые операционные системы (такие как Unix) могут исполнять различные программы/скрипты, автоматически запуская соответствующие интерпретаторы, тогда как другие операционные системы требуют, чтобы программа-интерпретатор запускалась явно. Сервер CommuniGate Pro поддерживает такие операционные системы, позволяя вам указать имя программы-интерпретатора для определённый расширений имён файлов. В результате, когда Серверу CommuniGate Pro необходимо запустить программу или скрипт с заданным расширением, он формирует команду ОС, добавляя перед именем программы/скрипта указанное имя программы-интерпретатора.
В примере выше Сервер будет обрабатывать URL /cgi-bin/script.pl исполняя
Perl.exe script.pl
команду операционной системы.
Обратите внимание: путь к программе-Интерпретатору должен быть прописан в Манифестe Дочерних Процессов.
Поля HTTP запросов
Используйте эту таблицу для того, чтобы указать пользовательские, нестандартные поля заголовков HTTP запросов, которые вам необходимо передавать в CGI программы. Если в запросе содержится строка заголовка с указанным именем поля, то эта строка передаётся CGI программе как переменная среды с именем HTTP_H_convertedFieldName, где convertedFieldName является именем поля заглавными буквами, все символы минус (-) в котором заменены на символы подчёркивания (_).

CGI программы могут использоваться для расширения функциональности Веб Интерфейса Пользователя. Они могут входить на Сервер через его PWD модуль, выполнять какие-нибудь CLI/API операции и/или входить на Сервер через IMAP или XIMSS модуль для доступа к папкам пользователя и изменению хранящихся в них данных. Для упрощения операция входа, CGI программы могут использовать аутентификацию через SessionID.


Интерфейс Командной Строки (CLI/API)

Модуль HTTP User обеспечивает доступ к Серверу по Интерфейсу Командной Строки (CLI/API) через область /CLI/.

Текстовый Метод

Отправьте запрос GET или POST с параметром command. Значение параметра должно содержать команду CLI на исполнение.
Если обработка запроса оканчивается неуспешно, то код ошибки возвращается как строка с ошибкой HTTP ответа.
Если запрос оканчивается успешно, то кодом HTTP ответа будет 200.
Если Запрос возвращает какие-либо данные, то текстовое представление объекта, содержащего результат, отправляется как тело HTTP ответа.

Метод SOAP

Отправьте SOAP XML запрос. Запрос должен иметь в точности один XML элемент - команду CLI на исполнение.
Тег XML элемента является тегом команды CLI.
Подэлементы XML элемента являются XML представлениями параметров объектов и/или элементами key. Текстовое тело элемента key является параметром команды CLI.

Пример:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <createAccount>
      <param>newuser@domain.dom</param>
      <param>TextMailbox</param>
      <param>
        <subKey key="RealName">John Doe</subKey>
        <subKey key="Password">soappass</subKey>
      </param>
    </createAccount>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Этот запрос преобразовывается в:
createAccount "newuser@domain.dom" TextMailbox {RealName="John Doe"; Password="soappass";}

Если запрос возвращает данные, то их XML представление добавляется в SOAP ответ.

Пример:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <getAccount>
      <param>newuser@domain.dom</param>
    </getAccount>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Этот запрос преобразовывается в:
getAccount "newuser@domain.dom"
возвращается словарь данных:
{Password="\001xxxxx"; RealName="John Doe";}
Этот ответ отправляется в формате SOAP:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <response>
      <object>
        <subKey key="Password">\001fjh{\024hdfu</subKey>
        <subKey key="RealName">SOAP Test</subKey>
      </object>
    </response>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Клиент HTTP

Этот компонент используется для посылки запросов HTTP удалённому серверу и получения ответов. Он доступен в:

  • в функции HTTPCall среды CG/PL.
  • в операции retrieveURL протокола XIMSS.

Чтобы настроить Общесерверные параметры работы клиента HTTP, используйте Веб Интерфейс Администратора. Откройте в области Установки страницу Общее, затем на странице Прочее найдите панель Клиент HTTP:

Клиент HTTP
Уровень Журнала:
Кэш:
Уровень Журнала
Используйте эту настройку для того, что бы указать, какую информацию HTTP модуль должен сохранять в Журнале работы Сервера. Записи, помещённые модулем HTTP Client в Журнал работы Сервера, имеют пометку HTTPO.
Кэш
Используйте эту настройку для указания количества соединений, которое будет оставаться открытым для увеличения производительности при отправке запросов на тот же удалённый сервер HTTP (такие запросы смогут использовать уже установленное соединение).

Модуль HTTP отправляет запросы с использованием указанной схемы http: или https: на указанный URL. Параметры функции передаются в виде необязательно словаря parameters, который может содержать следующие элементы:

method
Если этот элемент задан, то он должен содержать название метода HTTP (GET, MOVE и т.д.)
Если этот элемент отсутствует, то, если body не указано, используется метод HTTP GET, иначе (body указано) используется метод POST.
urlParams
Значение этого необязательного параметра должно быть словарём. Все его пары ключ-значение будут отправлены в виде параметров URL запроса HTTP.
Каждое значение словаря должно быть одиночным значением - строкой или числом, или массивом одиночных значений. Для значения в виде массива, параметр в URL задаётся для каждого элемента массива с использованием того же ключа словаря.
Content-Type, Content-Subtype
Эти необязательные элементы задают значение заголовка Content-Type запроса HTTP.
body
Если значение этого необязательного параметра задано словарём:
  • тело запроса HTTP формируется в виде "данных формы"
  • если элемент method задан, то его значение должно быть POST
  • если элемент Content-Type не задан, заголовок Content-Type запроса устанавливается в multipart/form-data.
  • если элемент Content-Type задан, то он должен быть multipart, иначе Content-Subtype должен быть тоже указан со значением x-www-form-urlencoded.
  • если элемент Content-Type не задан или установлен в multipart, то тело запроса формируется согласно формату mutlipart/form-data, иначе используется формат x-www-form-urlencoded.
  • каждый словарь должен быть:
    • одиночным значением - строкой, числом, блоком данных, словарём
    • массивом одиночных значений
    Для значения в виде массива, данные формы задаются для каждого элемента массива с использованием того же ключа словаря.
    Если одиночным значением является словарь, используется его значение по пустому ключу (""). Если запрос использует формат mutlipart/form-data, то строковые значения словаря по ключам Content-Type, Content-Subtype, и (необязательно) charset используются для формирования поля заголовка Content-Type, а строка fileName (если задана) добавляется в поле заголовка Content-Disposition. Пример:
    Элемент body:
    {
      field1 = "value1"; field2 = #145;
      field3 = [YWJjYWJj]; field4 = ("value2",#777);
      field5 = {"Content-Type"="image"; "Content-Subtype"="png"; "" = [shjhsjhkwuyuieyriuyuiyi];};
    }
    будет отправлен в запросе как
    --_______________post-field_
    Content-Disposition: form-data; name="field1"

    value1
    --_______________post-field_
    Content-Disposition: form-data; name="field2"

    145
    --_______________post-field_
    Content-Disposition: form-data; name="field3"

    abcabc
    --_______________post-field_
    Content-Disposition: form-data; name="field4"

    value2
    --_______________post-field_
    Content-Disposition: form-data; name="field4"

    777
    --_______________post-field_
    Content-Disposition: form-data; name="field5"
    Content-Type: image/png

    binary data
    --_______________post-field_--

Если значение этого необязательного параметра задано строкой:
  • строка копируется построчно в тело запроса
  • разделители строк (EOL) заменяются разделителями, принятыми в Internet (<carriage-return><line-feed>)
  • если элемент Content-Type не задан, заголовок Content-Type запроса устанавливается в text/plain.

Если значение этого необязательного параметра задано блоком данных:
  • эти данные используются в качестве тела запроса
  • если элемент Content-Type не задан, заголовок Content-Type запроса устанавливается в application/octet-stream.

Если значение этого необязательного параметра задано Объектом XML:
  • текстовое представление Объекта XML копируется в тело запроса.
  • если элемент Content-Type не задан, заголовок Content-Type запроса устанавливается в text/xml.
charset
Если этот необязательный элемент указан, он должен содержать название известной кодировки. Тело запроса будет перекодировано из UTF-8 в указанную кодировку, и параметр charset=charset_name будет добавлен в заголовок Content-Type.
Если этот элемент задан пустой строкой, то параметр charset=charset_name в заголовок не добавляется.
Если этот элемент не указан, параметр charset=utf-8 добавляется, но только когда тип содержимого - text.
closeConnection
Если элемент указан, модуль добавляет в заголовок поле Connection: close.
User-Agent
Если элемент указан, модуль добавляет его строковое значение в заголовок запроса в виде поля User-Agent. Если этот элемент задан пустой строкой, то это поле в заголовок не добавляется.
Cookie
Значение этого необязательного параметра должно быть строкой. Оно будет использовано как значение поля Cookie заголовка запроса.
If-Modified-Since
Этот необязательный элемент должен быть либо отметкой времени, либо строкой в формате даты-времени iCalendar. С помощью него устанавливается значение поля If-Modified-Since заголовка запроса HTTP.
responseFormat
Этот необязательный элемент указывает, как должен быть отформатирован ответ HTTP (смотрите ниже).
authName, authPassword
Эти необязательные элементы содержат данные аутентификации запроса HTTP.
timeout
Этот необязательный элемент должен быть числом или числовой строкой. Его значение задаёт тайм-аут для запроса HTTP. Время не должно превышать тайм-аут компоненты сервера, из которой производится вызов.
Если этот элемент отсутствует, то используется максимально возможное значение.
redirectLimit
Этот необязательный элемент задаёт максимальное количество раз, которое модуль HTTP может перепосылать запрос на новый адрес при получении ответа с кодом 3xx.
Если этот элемент не задан, модуль перепосылаеет запросы GET и HEAD до 3 раз, а другие запросы не перепосылает вовсе.
Via
Этот необязательный элемент задаёт имя хоста или адрес IP? на которые будет выполнено соединение для отправки запроса. Заголовок Host запросва и имя целевого домена при согласовании TLS соединения при этом используют имя? указанное в строке запроса или по ключу Host.
supplFields
Значение этого необязательного параметра может быть задано словарём. Ключи словаря указывают имена дополнительных полей заголовка запроса HTTP, а значения словаря (которые должны быть строками или массивами строк) указывают значения полей заголовка HTTP запроса.
supRespFields
Значение этого необязательного параметра может быть задано массивом. Элементы массива указывают имена дополнительных полей заголовка ответа HTTP.
Если этот элемент задан, то при успешном выполнении запроса и наличии в ответе указанных полей заголовка в возвращаемый словарь добавляется элемент supRespFields.

Модуль возвращает либо код ошибки, либо результат в виде словаря со следующими элементами:

responseCode
Численное значение кода ответа HTTP (200 для успешных операций, 300-399 для перенаправляющих ответов, которые модуль не смог отработать сам, 400-599 для неудачных операций).
responseText
Строка с информационной частью строки ответа HTTP.
Content-Type, Content-Subtype
Строки с типом и подтипом содержимого тела ответа.
charset
Строка с кодировкой тела ответа. Если этот элемент присутствует (указан в качестве параметра charset=charset_name заголовка Content-Type ответа HTTP), тело ответа было перекодировано из этой кодировки в UTF-8.
body
Этот элемент присутствует, когда у ответа HTTP есть непустое тело. Тело конвертируется в элемент body согласно элементу responseFormat запроса. Если элемент responseFormat не указан, то используются тип и подтип содержимого ответа:
responseFormatContent-Type
(responseFormat не указан)
преобразован в
xml*/xml, */*+xml тело интерпретируется как текстовое представление объекта XML. Элемент body содержит прочитанный объект XML
calendar*/calendar тело интерпретируется как текстовое представление объекта iCalendar. Элемент body содержит данные iCalendar в виде объекта XML.
пустая строка*/* Элемент body содержит блок данных с ответом HTTP.

Если модулю не удаётся конвертировать тело ответа HTTP в указанный в responseFormat формат, то он возвращает ошибку. Если responseFormat не был указан в запросе, то тело ответа HTTP возвращается в виде блока данных.

Date, Last-Modified, Expires
Элементы типа отметка времени со значениями из полей заголовка ответа HTTP.
Server, Location
Строковые элементы со значениями из полей заголовка ответа.
Set-Cookie
Строка или массив строк со значениями из поля заголовка ответа.
supRespFields
Элемент типа словарь со значениями из полей заголовка ответа HTTP. Этот элемент присутствует, когда в запросе был указан массив supRespFields, а ответ HTTP содержал указанные в данном массиве поля заголовка.

Руководство CommuniGate Pro. Copyright © 2020-2023, АО СталкерСофт