Rack (интерфейс веб-сервера)

редактировать
Спецификация API для веб-приложений на языке программирования Ruby
Rack, интерфейс веб-сервера Ruby
Rack-logo.png
Оригинальный автор (s) Лия Нойкирхен
Разработчик (и) Джеймс Такер, Джош Пик, Хосе Валим, Майкл Феллингер, Аарон Паттерсон, Сантьяго Пасторино, Константин Хаазе
Стабильный выпуск 2.2.3 / 15 июня 2020 г.; 3 месяца назад (2020-06-15)
Репозиторий Измените это в Викиданных
Операционная система Кросс-платформенная
Тип Промежуточное ПО
Лицензия Лицензия MIT
Веб-сайтстойка.github.io Измените это в Викиданных

Стойка - это модульный интерфейс между веб-серверами и веб-приложения, разработанные на языке программирования Ruby. В Rack интерфейсы прикладного программирования (API) для веб-фреймворков и промежуточного программного обеспечения упакованы в один вызов метода обработка HTTP-запросов и ответов.

Rack используется многими веб-фреймворками Ruby и библиотеками, такими как Ruby on Rails и Синатра. Он доступен как Ruby Gem. Многие приложения Ruby называются «совместимыми с стойкой».

Rack вдохновил аналогичные фреймворки в JavaScript (jack.js), Clojure, Perl (Plack ), Common Lisp (Clack) и .NET (OWIN ).

Contents
  • 1 Обзор
    • 1.1 Среда
    • 1.2 Реакция стойки
    • 1.3 Промежуточное ПО в стойках
  • 2 Пример приложения
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки
Обзор

Характеристики стоечное приложение заключается в том, что объект приложения отвечает на метод вызова. Метод вызова принимает объект среды в качестве аргумента и возвращает объект ответа стойки.

Среда

Среда, принимаемая как Аргумент метода вызова относится к объекту, который имеет:. a) информацию о HTTP-запросе

Сюда входит такая информация, как:

  • метод HTTP-запроса
  • URL информация (информация, которая будет направлять в приложение, информация, которая указывает на фактическое местоположение в приложении ции, Строка запроса )
  • Информация о сервере, такая как имя сервера и порт сервера
  • Метапеременные HTTP , полученные от клиента

b) Информация о стойке

Сюда входит такая информация, как

  • Версия приложения Rack, на котором выполняется
  • Используемая схема URL-адреса, то есть, если полученный запрос - http или https.
  • Необработанные данные HTTP.
  • Объект Ruby для сообщения об ошибках.
  • Информация, например, если объект приложения одновременно вызывается из другого потока или процесса.
  • Информация от ожиданий и возможностей сервера (способность сервера к перехвату соединения).

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

Ответ стойки

Объект сервера стойки возвращает ответ, который состоит из трех частей: состояния, заголовков и тела.

  • Статус содержит коды статуса HTTP, например, 200,404.
  • Заголовок содержит ответ для каждого из них и дает пары ключ-значение. Ключи должны быть строками.
  • Body содержит окончательные данные, которые отправляются сервером запрашивающей стороне.

Rack :: Response предоставляет удобный интерфейс для создания ответа Rack. Класс Rack :: Response определен в lib / rack / response.rb. Чтобы использовать класс Response, создайте его экземпляр на уровне промежуточного программного обеспечения вниз по стеку. Его можно использовать для изменения файлов cookie.

Промежуточное ПО в стойках

Стойка упрощает добавление цепочки промежуточных компонентов компонентов между приложением и веб-сервером. В стойке можно использовать несколько компонентов промежуточного программного обеспечения, которые изменяют запрос / ответ перед передачей его следующему компоненту. Это называется стеком промежуточного программного обеспечения.

Сервер Rack по умолчанию добавляет несколько промежуточных программ для таких функций, как отображение исключения со всеми деталями, проверка запроса и ответов в соответствии со спецификацией стойки и т. Д.

Пример приложения

Совместимое со стойкой приложение "Hello World " с синтаксисом Ruby :

# helloWorld.ru # Приложение, в котором определен метод вызова. class HelloWorld # Вызов метода, который вернет код состояния HTTP, тип содержимого и содержимое. def call (env) [200, {"Content-Type" =>"text / html; charset = utf-8"}, ["Hello World"]] end end

Можно инициировать сервер для вышеуказанного кода с помощью "rackup helloWorld.ru", доступ к которому можно получить по адресу http: // localhost: 9292 /. По умолчанию приложение Rack использует порт 9292.

См. также
  • Free и портал программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки

.

Последняя правка сделана 2021-06-03 05:45:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте