Как стойки и каркасы, такие как sinatra / rails, работают под капотом? - PullRequest
0 голосов
/ 24 мая 2019

Как веб-серверы, стойки и фреймворки, такие как 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, чтобы включить код состояния, заголовки и текст, и возвращает его обратно клиенту через стойку и веб-сервер?

...