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


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

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

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

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

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

Внимание: корень веб-пространства, переданный веб-сервером, можно изменить: см. «Корень веб-пространства».

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


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

…может работать с внешними HTTP-серверами, если имя загружаемого документа содержит префикс
    http://



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

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

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

Если загружается текстовый файл без указания кодировки и в нём обнаруживается BOM код, то его содержимое автоматически перекодируется из кодировки UTF-8 в текущую кодировку. [3.4.1]
$.timeout(секунд)
2 секунды
Время ожидания ответа HTTP сервера в секундах. Операция загрузки должна быть завершена за это время, иначе возникнет ошибка.
$.method[HTTP-МЕТОД]
GET
Название HTTP-метода должно быть указано в верхнем регистре.

Название метода можно указывать и в нижнем регистре
$.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, а не передавать их в ?параметрах самостоятельно.

Однако можно передавать их и там и там. [3.1.5]
$.body[текст]
отсутствует
Текст тела запроса (нельзя совмещать с form и методом GET) [3.1.2]
$.cookies[
  $.имя[значение]
  …
]

отсутствует
Хеш, содержащий список cookies, которые необходимо передать удалённому HTTP-серверу. [3.2.3]
$.headers[
 
$.HTTP-ЗАГОЛОВОК[значение]
  …

]

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

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

$.any-status(true)
false/0 Логическое: допустим ли статус ответа, не равный 200. Если ЛОЖЬ, и будет получен статус, не равный 200, возникнет системная ошибка http.status.
[3.0.8]

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


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

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


    Поддержать сайт на родительском проекте КГБ