Как веб-серверы, стойки и фреймворки, такие как sinatra, взаимодействуют для обработки запроса и ответа?
После прочтения документации я совершенно растерялся.
Кажется, что и в стойке, и в sinatra есть метод call (env).
Что я понял, так это то, что когда веб-сервер получает запрос, он обрабатывает его в хеш 'env' и вызывает метод вызова стойки.
Однако при определении маршрутов в моем файле приложения sinatra (app.rb) мне нужно было только вызвать метод get / post и передать ему блок.
#app.rb
require "sinatra"
require "tilt/erubis"
get "/" do
"hello world"
end
Стойка документации
def call(env)
#[status_code, response_headers, response_body]
[200, {}, []]
end
Значит ли это, что rack также вызывает метод call (env), определенный в sinatra?
Означает ли это также, что sinatra изменяет хэш env, чтобы включить код состояния, заголовки и текст, и возвращает его обратно клиенту через стойку и веб-сервер?