Администратор Сервера может использовать любой Веб браузер, работающий с Веб (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 является именем требуемого Домена.
Другие Домены могут указать ваш Домен в качестве Домена Администратора. На странице с Установками Домена приводится перечень этих Доменов:
Вы можете войти в них через Веб Интерфейс Администратора Домена используя ссылки, имеющиеся на этой странице. Помните, что, если вы собираетесь использовать страницы Веб Администрирования для другого Домена, вы должны входить на сервер, используя ваше полное имя пользователя (вида 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 модулей, используйте Веб Интерфейс Администратора. Откройте в области Установки страницу Услуги, затем откройте страницу HTTPA (Admin) или HTTPU (User).
- Уровень Журнала
- Используйте эту настройку для того, чтобы указать, какую информацию 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-тип |
html | text/html |
txt | text/plain |
gif | image/gif |
jpg | image/jpeg |
css | text/css |
js | text/javascript |
Существует также "расширенная" встроенная таблица, которая отображается на странице Веб Администрирования.
Вы можете создать свою собственную таблицу расширений, указав дополнительные расширения имён файлов и соответствующие им MIME-типы:
Расширенная "встроенная" таблица показывается сразу под вашей собственной пользовательской таблицей.
При преобразовании расширения файла в 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 (Universal Resource Location), после первого символа '/'.
Компонента может содержать символ звёздочки (*).
- Веб Приложение
- Имя запускаемого CG/PL Веб Приложения. Каждый домен может содержать свою версию приложения.
Веб Приложения могут использоваться для расширения функциональности Веб Интерфейса Пользователя..
Веб Приложения используются для для реализации протокола "Autodiscover" от Microsoft и автонастроек Mozilla Thunderbird.
Модуль HTTP User может запускать CGI программы и скрипты. Для доступа к CGI программам должен использоваться URL /cgi-bin/programName и программа programName должна находиться в CGI Каталоге CommuniGate Pro.
Для того, чтобы открыть страницу с настройками модуль HTTP User, используйте Веб Интерфейс Администратора:
- 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.
Модуль 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 удалённому серверу и получения ответов. Он доступен в:
- в функции HTTPCall среды CG/PL.
- в операции retrieveURL протокола XIMSS.
Чтобы настроить Общесерверные параметры работы клиента 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 не указан, то используются тип и подтип содержимого ответа:
responseFormat | Content-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 содержал указанные в данном массиве поля заголовка.
|