Spec-Zone.ru › Hammerspoon

hs.httpserver.hsminweb.cgilua

Предоставляет вспомогательные функции в модуле cgilua для шаблонов Lua Hammerspoon Minimal Web Server.

Этот файл содержит функции, которые стремятся максимально точно воспроизвести функции, доступные для файлов шаблонов Lua в модуле CGILua, предоставляемом проектом Kepler по адресу http://keplerproject.github.io/cgilua/index.html.

Цель этого файла — предоставить большую часть той же функциональности, что и CGILua для файлов шаблонов. Любые различия в результатах или ошибках, скорее всего, обусловлены этим кодом, и все сообщения об ошибках или предложения по изменениям кода следует направлять в репозиторий Hammerspoon на GitHub.

Не включайте этот файл напрямую в ваши шаблоны Lua. Эта библиотека автоматически предоставляется в таблице cgilua (модуль) в файлах Lua веб-сервера шаблонов. Этот подмодуль будет работать только изнутри этой среды и не должен использоваться в любом другом коде.

Подмодули

  • hs.httpserver.hsminweb.cgilua.lp
  • hs.httpserver.hsminweb.cgilua.urlcode

Обзор API

  • Переменные - Настраиваемые значения
    • script_file
    • script_path
    • script_pdir
    • script_vdir
    • script_vpath
    • tmp_path
    • urlpath
  • Функции - API-вызовы, предлагаемые непосредственно расширением
    • contentheader
    • doif
    • doscript
    • errorlog
    • header
    • htmlheader
    • mkabsoluteurl
    • mkurlpath
    • print
    • put
    • redirect
    • servervariable
    • splitfirst
    • splitonlast
    • tmpfile
    • tmpname

Документация API

Переменные

script_file
Подпись hs.httpserver.hsminweb.cgilua.script_file
Тип Переменная
Описание

Имя файла запускаемого скрипта. Получено из cgilua.script_path.

Примечания
  • CGILua поддерживает вызов через URL, который представляет собой набор связанных путей и имён скриптов; это не обязательно для данного модуля, поэтому эти переменные могут несколько отличаться от настоящей установки CGILua; намерение переменной сохранено так близко, как я могу определить на данный момент. Если это изменится, изменится и эта документация.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 211
script_path
Подпись hs.httpserver.hsminweb.cgilua.script_path
Тип Переменная
Описание

Системный путь запускаемого скрипта. Эквивалент переменной среды CGI SCRIPT_FILENAME.

Примечания
  • CGILua поддерживает вызов через URL, который представляет собой набор связанных путей и имён скриптов; это не обязательно для данного модуля, поэтому эти переменные могут несколько отличаться от настоящей установки CGILua; намерение переменной сохранено так близко, как я могу определить на данный момент. Если это изменится, изменится и эта документация.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 204
script_pdir
Подпись hs.httpserver.hsminweb.cgilua.script_pdir
Тип Переменная
Описание

Директория выполняемого скрипта. Получена из cgilua.script_path.

Примечания
  • CGILua поддерживает вызов через URL, представляющий собой набор цепочек путей и имён скриптов; для данного модуля это не требуется, поэтому эти переменные могут несколько отличаться от истинной установки CGILua; намерение переменной сохранено насколько это возможно на данный момент. Если это изменится, изменится и данная документация.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 218
script_vdir
Подпись hs.httpserver.hsminweb.cgilua.script_vdir
Тип Переменная
Описание

Если PATH_INFO представляет собой директорию (т.е. заканчивается на "/"), то это равно cgilua.script_vpath. В противном случае содержит часть директории cgilua.script_vpath.

Примечания
  • CGILua поддерживает вызов через URL, представляющий собой набор цепочек путей и имён скриптов; для данного модуля это не требуется, поэтому эти переменные могут несколько отличаться от истинной установки CGILua; намерение переменной сохранено насколько это возможно на данный момент. Если это изменится, изменится и данная документация.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 232
script_vpath
Подпись hs.httpserver.hsminweb.cgilua.script_vpath
Тип Переменная
Описание

Эквивалентно переменной окружения CGI PATH_INFO или "/", если PATH_INFO не задана.

Примечания
  • CGILua поддерживает вызов через URL, представляющий собой набор цепочек путей и имён скриптов; для данного модуля это не требуется, поэтому эти переменные могут несколько отличаться от истинной установки CGILua; намерение переменной сохранено насколько это возможно на данный момент. Если это изменится, изменится и данная документация.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 225
tmp_path
Подпись hs.httpserver.hsminweb.cgilua.tmp_path
Тип Переменная
Описание

Директория, используемая cgilua.tmpfile

Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 84
urlpath
Подпись hs.httpserver.hsminweb.cgilua.urlpath
Тип Переменная
Описание

Имя скрипта, запрошенного в URL. Эквивалентно переменной окружения CGI SCRIPT_NAME.

Примечания
  • CGILua поддерживает вызов через URL, представляющий собой набор цепочек путей и имён скриптов; для данного модуля это не требуется, поэтому эти переменные могут несколько отличаться от истинной установки CGILua; намерение переменной сохранено насколько это возможно на данный момент. Если это изменится, изменится и данная документация.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 239

Функции

contentheader
Подпись hs.httpserver.hsminweb.cgilua.contentheader(maintype, subtype) -> none
Тип Функция
Описание

Устанавливает тип HTTP-ответа для генерируемого содержимого на maintype/subtype.

Параметры
  • maintype - основной тип содержимого (например, "text")
  • subtype - подтип содержимого (например, "plain")
Возвращаемые значения
  • Ничего
Примечания
  • Это устанавливает поле заголовка Content-Type для генерируемого HTTP-ответа. Это переопределит любое предыдущее значение, включая значение по умолчанию "text/html".
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 297
doif
Подпись hs.httpserver.hsminweb.cgilua.doif(filename) -> results
Тип Функция
Описание

Выполняет файл Lua (указанный filepath), если он существует.

Параметры
  • filepath - файл для интерпретации как код Lua
Возвращаемые значения
  • значения, возвращаемые при выполнении, или nil и сообщение об ошибке, если файл не существует.
Примечания
  • Эта функция интерпретирует файл только в том случае, если он существует; если файл не существует, она возвращает ошибку вызывающему коду (а не веб-клиенту).
  • Во время обработки веб-запроса локальный каталог временно изменяется, чтобы соответствовать локальному каталогу пути обслуживаемого файла, как определяется URL запроса. Обычно это отличается от стандартного каталога Hammerspoon, который соответствует каталогу, содержащему файл init.lua для Hammerspoon.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 276
END_OF_DOCUMENT_MARKER
doscript
Подпись hs.httpserver.hsminweb.cgilua.doscript(filename) -> results
Тип Функция
Описание

Выполняет файл lua (указанный в пути файла).

Параметры
  • filepath - файл, который следует интерпретировать как Lua-код
Возвращаемые значения
  • значения, возвращенные при выполнении, или nil и сообщение об ошибке, если файл не существует.
Примечания
  • Если файл не существует, клиенту возвращается ошибка Internal Server, а в консоль Hammerspoon записывается сообщение об ошибке.
  • Во время обработки веб-запроса локальный каталог временно меняется, чтобы соответствовать локальному каталогу пути к файлу, который обслуживается, как определяется URL запроса. Это обычно отличается от стандартного каталога Hammerspoon, который соответствует каталогу, содержащему файл init.lua для Hammerspoon.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 247
errorlog
Подпись hs.httpserver.hsminweb.cgilua.errorlog(msg) -> nil
Тип Функция
Описание

Отправляет сообщение в журнал ошибок hs.httpserver.hsminweb с меткой "ошибка".

Параметры
  • msg - сообщение, которое нужно отправить в журнал ошибок модуля
Возвращаемые значения
  • Ничего
Примечания
  • Доступна в файле шаблона lua как cgilua.errorlog
  • По умолчанию сообщения, записанные этим методом, отображаются в консоли Hammerspoon и доступны в истории hs.logger.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 68
header
Подпись hs.httpserver.hsminweb.cgilua.header(key, value) -> none
Тип Функция
Описание

Устанавливает заголовок HTTP ответа key в значение value

Параметры
  • key - заголовок HTTP ответа, которому нужно задать значение. Должен быть строкой.
  • value - значение для заголовка. Должно быть строкой или значением, представимым как строка.
Возвращаемые значения
  • Ничего
Примечания
  • Не следует использовать эту функцию для установки значения для ключа "Content-Type"; вместо этого используйте cgilua.contentheader или cgilua.htmlheader.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 330
htmlheader
Подпись hs.httpserver.hsminweb.cgilua.htmlheader() -> none
Тип Функция
Описание

Устанавливает тип HTTP ответа в "text/html"

Параметры
  • Ничего
Возвращаемые значения
  • Ничего
Примечания
  • Это устанавливает поле заголовка Content-Type для генерируемого ответа HTTP в "text/html". Это значение по умолчанию, поэтому, как правило, вызывать эту функцию не нужно, если вы ранее не изменили его функцией cgilua.contentheader.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 314
mkabsoluteurl
Подпись hs.httpserver.hsminweb.cgilua.mkabsoluteurl(uri) -> string
Тип Функция
Описание

Возвращает абсолютный URL для данного URI, добавив схему, имя хоста и порт этого веб-сервера к пути.

Параметры
  • URI - путь к ресурсу, обслуживаемому этим веб-сервером. Если путь не содержит "/", ему будет добавлен "/".
Возвращаемые значения
  • Абсолютный URL для данного пути в формате "схема://хост:порт/путь", где scheme будет либо "http", либо "https", а имя хоста и порт будут соответствовать этому веб-серверу.
Примечания
  • Если вы хотите добавить параметры запроса к пути или расширить относительный путь до полного пути, см. cgilua.mkurlpath.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 376
mkurlpath
Подпись hs.httpserver.hsminweb.cgilua.mkurlpath(uri, [args]) -> string
Тип Функция
Описание

Создаёт полный URI документа из частичного URI, включая аргументы запроса, если они присутствуют.

Параметры
  • uri - полный или частичный URI (путь и компонент файла URL) документа
  • args - необязательная таблица с парами ключ-значение, которые будут закодированы для формирования корректного запроса в конце URI (см. cgilua.urlcode.encodetable.
Возвращаемые значения
  • Полный URI, включая любые аргументы запроса, если они присутствуют.
Примечания
  • Эта функция предназначена для использования совместно с cgilua.mkabsoluteurl для создания полного URL. Если предоставленный uri не начинается с "/", текущий путь каталога добавляется к uri, а любые аргументы запроса добавляются в конец.
  • Например, cgilua.mkabsoluteurl(cgiurl.mkurlpath("file.lp", { key = value, ... })) вернёт полный URL, указывающий на файл file.lp в текущем каталоге с указанными парами ключ-значение в качестве аргументов запроса.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 399
print
Подпись hs.httpserver.hsminweb.cgilua.print(...) -> nil
Тип Функция
Описание

Добавляет переданные аргументы к телу ответа.

Параметры
  • ... - список аргументов, разделённых запятыми, которые нужно добавить в тело ответа
Возвращаемые значения
  • Ничего
Примечания
  • Доступна в файле шаблона lua как cgilua.print
  • Эта функция работает как встроенная lua команда print, преобразуя все аргументы в строки, разделяя их табуляцией (\t) и завершая строку новой строкой (\n) перед добавлением их к текущему телу ответа.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 24
put
Подпись hs.httpserver.hsminweb.cgilua.put(...) -> nil
Тип Функция
Описание

Добавляет переданные аргументы к телу ответа.

Параметры
  • ... - список аргументов, разделённых запятыми, которые нужно добавить в тело ответа
Возвращаемые значения
  • Ничего
Примечания
  • Доступна в файле шаблона lua как cgilua.put
  • Эта функция работает, расправляя таблицы и преобразуя все значения, кроме nil и false, в их строковое представление, а затем добавляя их в порядке к телу ответа. В отличие от cgilua.print, она не разделяет значения символом табуляции или не завершает строку символом новой строки.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 45
redirect
Подпись hs.httpserver.hsminweb.cgilua.redirect(url, [args]) -> none
Тип Функция
Описание

Отправляет заголовки для перенаправления на указанный URL, добавляя параметры в таблице args к новому URL.

Параметры
  • url - URL, на который должен быть перенаправлен клиент
  • args - необязательная таблица с парами ключ-значение, которые будут закодированы для формирования корректного запроса в конце URL (см. cgilua.urlcode.encodetable.
Возвращаемые значения
  • Ничего
Примечания
  • Эта функция, как правило, должна быть последней в вашем lua-шаблоне, так как дополнительная обработка или вывод не должны выполняться, когда запрос должен быть перенаправлен.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 347
servervariable
Подпись hs.httpserver.hsminweb.cgilua.servervariable(varname) -> string
Тип Функция
Описание

Возвращает строку со значением переменной среды CGI, соответствующей имени varname.

Параметры
  • varname - имя переменной CGI для получения значения.
Возвращаемое значение
  • значение переменной CGI в виде строки или nil, если такая переменная не существует.
Примечания
  • Переменные CGI включают значения, определённые сервером, которые обычно совместно используются со скриптами CGI, и заголовки HTTP запроса от веб-запроса. Переменные сервера включают следующие (обратите внимание, что в зависимости от запроса и типа ресурса, на который ссылается URL, не все значения могут существовать для каждого запроса):

    • "AUTH_TYPE" - Если сервер поддерживает аутентификацию пользователя и скрипт защищен, это метод аутентификации, специфичный для протокола, используемый для проверки пользователя.
    • "CONTENT_LENGTH" - Длина самого содержимого, предоставленная клиентом.
    • "CONTENT_TYPE" - Для запросов, к которым прикреплена информация, такая как HTTP POST и PUT, это тип содержимого данных.
    • "DOCUMENT_ROOT" - реальная директория на сервере, соответствующая DOCUMENT_URI "/". Это первая директория, которая содержит файлы или поддиректории, обслуживаемые веб-сервером.
    • "DOCUMENT_URI" - часть пути запрошенного URL HTTP.
    • "GATEWAY_INTERFACE" - Ревизия спецификации CGI, которой соответствует этот сервер. Формат: CGI/ревизия
    • "PATH_INFO" - Дополнительная информация о пути, предоставленная клиентом. Другими словами, к скриптам можно получить доступ по их виртуальному имени пути, за которым следует дополнительная информация в конце этого пути. Дополнительная информация передаётся как PATH_INFO. Эта информация должна быть декодирована сервером, если она получена из URL, перед передачей скрипту CGI.
    • "PATH_TRANSLATED" - Сервер предоставляет переведённую версию PATH_INFO, которая берёт путь и выполняет любое отображение виртуального пути на физический.
    • "QUERY_STRING" - Информация, которая следует за "?" в URL, который ссылался на этот скрипт. Это информация запроса. Её не следует декодировать никоим образом. Эта переменная всегда должна быть установлена, когда есть информация запроса, независимо от декодирования командной строки.
    • "REMOTE_ADDR" - IP-адрес удалённого хоста, делающего запрос.
    • "REMOTE_HOST" - имя хоста, производящего запрос. Если сервер не обладает этой информацией, он должен установить REMOTE_ADDR и оставить эту переменную не установленной.
    • "REMOTE_IDENT" - Если HTTP-сервер поддерживает идентификацию RFC 931, то эта переменная будет установлена на имя удалённого пользователя, полученное с сервера. Использование этой переменной должно быть ограничено только протоколированием.
    • "REMOTE_USER" - Если сервер поддерживает аутентификацию пользователя и скрипт защищён, это имя пользователя, под которым они аутентифицировались.
    • "REQUEST_METHOD" - Метод, с помощью которого был сделан запрос. Для HTTP это "GET", "HEAD", "POST" и т.д.
    • "REQUEST_TIME" - Время, когда сервер получил запрос, представленное в виде числа секунд с 00:00:00 UTC 1 января 1970 года. Используется с os.date для предоставления даты и времени в любом требуемом вами формате.
    • "REQUEST_URI" - DOCUMENT_URI с любым присутствующим в запросе строкой запроса. Обычно это соответствует URL без схемы или информации о хосте.
    • "SCRIPT_FILENAME" - фактический путь к выполняемому скрипту.
    • "SCRIPT_NAME" - виртуальный путь к выполняемому скрипту, используемый для самоссылок на URL.
    • "SERVER_NAME" - имя хоста, DNS-псевдоним или IP-адрес сервера, как он будет отображаться в URL самоссылок.
    • "SERVER_PORT" - номер порта, на который был отправлен запрос.
    • "SERVER_PROTOCOL" - Название и версия протокола информации, с которым пришёл этот запрос. Формат: протокол/ревизия
    • "SERVER_SOFTWARE" - Название и версия программного обеспечения веб-сервера, отвечающего на запрос (и запускающего шлюз). Формат: имя/версия
  • Имена заголовков HTTP-запроса имеют префикс "HTTP_", преобразуются в верхний регистр и все дефисы преобразуются в подчёркивания. Общие заголовки (преобразованные в их формат CGI) могут включать, но не ограничиваются:

    • HTTP_ACCEPT, HTTP_ACCEPT_ENCODING, HTTP_ACCEPT_LANGUAGE, HTTP_CACHE_CONTROL, HTTP_CONNECTION, HTTP_DNT, HTTP_HOST, HTTP_USER_AGENT
  • Этот сервер также определяет следующие (которые дублируются в переменных CGI выше, поэтому для переносимости следует использовать их):

    • HTTP_X_REMOTE_ADDR, HTTP_X_REMOTE_PORT, HTTP_X_SERVER_ADDR, HTTP_X_SERVER_PORT
  • Список распространённых заголовков запросов и их определений можно найти на https://en.wikipedia.org/wiki/List_of_HTTP_header_fields

Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 134
splitfirst
Подпись hs.httpserver.hsminweb.cgilua.splitfirst(path) -> path component, path remainder
Тип Функция
Описание

Возвращает две строки с "первой директорией" и "остальной частью пути", разделённые первой разделительной строкой ("/" или "").

Параметры
  • path - путь для разделения
Возвращаемое значение
  • первый компонент директории, остаток пути
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 193
splitonlast
Подпись hs.httpserver.hsminweb.cgilua.splitonlast(path) -> directory, file
Тип Функция
Описание

Возвращает две строки с "путем к директории" и "файлом", разделённые последней разделительной строкой ("/" или "").

Параметры
  • path - путь для разделения
Возвращаемое значение
  • путь к директории, файл
Примечания
  • Эта функция раньше называлась cgilua.splitpath и по-прежнему доступна под этим именем для совместимости. cgilua.splitpath может быть устаревшей в будущих версиях.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 178
tmpfile
Подпись hs.httpserver.hsminweb.cgilua.tmpfile([dir], [namefunction]) -> file[, err]
Тип Функция
Описание

Возвращает дескриптор файла временного файла для записи или nil и сообщение об ошибке, если файл не может быть создан по какой-либо причине.

Параметры
  • dir - системная директория, в которой должен быть создан временный файл. По умолчанию cgilua.tmp_path.
  • namefunction - необязательная функция, используемая для генерации уникальных имён файлов для использования в качестве временных файлов. По умолчанию cgilua.tmpname.
Возвращаемое значение
  • дескриптор созданного файла и имя файла или nil и сообщение об ошибке, если файл не может быть создан.
Примечания
  • Файл автоматически удаляется при завершении HTTP-запроса, поэтому, если вам нужно, чтобы данные сохранились, убедитесь, что вы io.flush или io.close дескриптор файла самостоятельно и скопируйте файл в более постоянное место.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 108
tmpname
Подпись hs.httpserver.hsminweb.cgilua.tmpname() -> string
Тип Функция
Описание

Возвращает имя временного файла, используемого cgilua.tmpfile.

Параметры
  • Нет
Возвращаемое значение
  • временное имя файла без пути.
Примечания
  • Эта функция использует hs.host.globallyUniqueString для генерации уникального имени файла.
Источник extensions/httpserver/cgilua_compatibility_functions.lua строка 91

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.httpserver.hsminweb.cgilua.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API