Приложение 1. Пути к файлам и каталогам, работа с HTTP-серверами

Для доступа к файлам и каталогам в Parser 3 можно использовать абсолютный или относительный путь.

Абсолютный путь начинается с косой черты, а файл ищется от корня веб-пространства. Файл по относительному пути ищется от каталога, в котором находится запрошенный документ.

Пример абсолютного пути:
/news/archive/20020127/sport.html

Пример относительного пути:
относительно каталога
/news/archive
20020127/sport.html

При записи файлов необходимые каталоги создаются автоматически.

Внимание!
Корень веб-пространства, переданный веб-сервером, можно изменить: см. «Корень веб-пространства».
Parser 3 преобразует пути к языку
file-spec (см. «Внешние и внутренние данные»).


Также методы…
·file::load  
·table::load  

…могут работать с внешними HTTP-серверами, если имя загружаемого документа содержит префикс
    http://
Имя домена автоматически подвергается IDNA-кодированию при необходимости (например, при указании кириллического домена).   [3.4.4]


Этим методам также можно задать дополнительные опции загрузки документа по HTTP, это хеш, ключи которого описаны в таблице ниже.

Опция
По умолчанию
Значение
$.charset[кодировка]
соответствует $request:charset
Кодировка документов на удаленном сервере. В эту кодировку перекодируется строка запроса. Из этой кодировки перекодируется ответ, если в HTTP-ответе сервера не указана кодировка.

Также данная опция доступна и при загрузке локальных текстовых файлов.

Если загружается текстовый файл без указания кодировки и в нем обнаруживается BOM-код, то его содержимое автоматически перекодируется из UTF-8 в текущую кодировку. [3.4.1]

$.response-charset[кодировка]
берется из заголовка HTTP-ответа
Принудительно указывает, в какой кодировке был получен ответ от сервера. [3.4.4]

$.timeout(секунд)
2 секунды
Время ожидания ответа HTTP-сервера в секундах. Операция загрузки должна быть завершена за это время, иначе возникнет ошибка.

$.method[HTTP-МЕТОД]
GET
Название HTTP-метода должно быть указано в верхнем регистре.

Название метода можно указывать и в нижнем регистре [3.3.1]

$.enctype[CONTENT-TYPE]
application/x-www-form-urlencoded
Допустимые значения: application/x-www-form-urlencoded
или multipart/form-data.

Последнее должно быть использовано вместе с методом POST в случае, если удаленному серверу отправляются файлы. [3.3.1]

$.form[
  
$.поле[строка]
  $.поле[файл]
  $.поле[$таблица]
  …

]

отсутствует
Параметры запроса.
Для GET запроса они будут переданы в ?строке_запроса. Для запросов с другим method параметры будут переданы с Content-type: application/x-www-form-urlencoded.

Значением может являться строка, таблица из одного столбца или файл. [3.3.1]

Предпочтительно задавать параметры запросам именно при помощи
$.form, а не передавать их в ?параметрах самостоятельно.

Однако можно передавать их и там и там.

$.body[текст]
отсутствует
Текст тела запроса (нельзя совмещать с form и методом GET)

$.cookies[
  $.имя[значение]
  …
]
отсутствует
Хеш, содержащий список cookies, которые необходимо передать удаленному HTTP-серверу.

$.headers[
  
$.HTTP-ЗАГОЛОВОК[значение]
  …

]

$.User-Agent[parser3]
Хеш, содержащий дополнительные HTTP-заголовки, которые необходимо передать на HTTP-сервер.

Значением HTTP-заголовка может быть дата, строка или хеш с обязательным ключом value.
Дата может использоваться и в качестве значения поля, и в качестве значения атрибута поля, при этом она будет стандартно отформатирована.

$.any-status(true)
false|0  
Логическое: допустим ли статус ответа, не равный 200. Если значение «ложь» и будет получен статус, не равный 200, возникнет системная ошибка HTTP.status.

$.omit-post-charset(true)
false|0
Не добавлять в HTTP-заголовок content-type исходящего POST-запроса информацию о кодировке (по умолчанию добавляется). [3.3.0]

$.response-charset[кодировка]
отсутствует
Принудительно указать кодировку данных в ответе сервера [3.4.3]

$.user[пользователь]
отсутствует
Задает параметры запроса к серверу, использующему стандартную HTTP-авторизацию.

$.password[пароль]
отсутствует
Задает параметры запроса к серверу, использующему стандартную HTTP-авторизацию.




Для ^file::load[…] также можно задать дополнительные опции загрузки, это хеш, ключи которого описаны в таблице ниже.

Опция
По умолчанию
Значение
$.offset(смещение)
0
Загрузить данные начиная с этого смещения (в байтах).

$.limit(ограничение)
-1  
Загрузить не более данного количества байтов.



Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 11.09.2024