Skip to content

Instantly share code, notes, and snippets.

@iL53n
Created March 26, 2023 15:09
Show Gist options
  • Save iL53n/2d22f8f49e00dc085bccb0ebfd4dfca0 to your computer and use it in GitHub Desktop.
Save iL53n/2d22f8f49e00dc085bccb0ebfd4dfca0 to your computer and use it in GitHub Desktop.

Revisions

  1. iL53n created this gist Mar 26, 2023.
    31 changes: 31 additions & 0 deletions rails_middlewares.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    use Rack::Sendfile — добавляет заголовок X-Sendfile при отправке файла, чтобы вебсервер знал какой файл отдать пользователю
    use Rack::Runtime — ставит x-runtime заголовок, который показывает сколько длилась обработка запроса
    use Rack::MethodOverride — меняет метод запроса, чтобы использовать один код для разных методов
    use Rack::Head — превращает head запросы в get
    use Rack::ConditionalGet — используется, чтобы показать когда изменилась страница
    https://api.rubyonrails.org/classes/ActionController/ConditionalGet.html
    use Rack::ETag — ставит ETag заголовок, чтобы вебсервер знал какая версия страницы будет одаваться
    use Rack::TempfileReaper — чистит временные файлы после реквеста
    ActionDispatch
    use ActionDispatch::HostAuthorization — авторизация
    use ActionDispatch::Static — проверяет, есть ли файл на диске по запрошенному адресу. Если нет, запускает приложение
    use ActionDispatch::Executor — в девеломпменте перезагружает код в тредсейф режиме
    use ActionDispatch::ServerTiming — цепляет к запросу время его выполнения
    use ActiveSupport::Cache::Strategy::LocalCache::Middleware — использует ОЗУ как хранилище для кэша
    use ActionDispatch::RequestId — добавляет в ответ заголовок X-Request-Id
    use ActionDispatch::RemoteIp — проверяет, не использует ли пользователь подмену IP
    use ActionDispatch::ShowExceptions — ловит все ошибки приложения, чтобы показать пользователю
    use ActionDispatch::DebugExceptions — показывает страничку с бэктрейсом ошибки
    use ActionDispatch::ActionableExceptions — даёт возможность отправлять ошибки из страниц ошибок
    use ActionDispatch::Reloader — перезагружает код в девеломенте
    use ActionDispatch::Callbacks — коллбеки до и после запроса
    use ActiveRecord::Migration::CheckPending — проверяет, есть ли миграции, которые ещё не прогонялись по базе
    use ActionDispatch::Cookies — ставит куки в запрос
    use ActionDispatch::Session::CookieStore — сохраняет куки на сервере
    use ActionDispatch::Flash — ставит флеш сообщения в ответ
    use ActionDispatch::ContentSecurityPolicy::Middleware — добавляет заголовок Content-Security-Policy в ответ
    use ActionDispatch::PermissionsPolicy::Middleware — устанавливает Permissions-Policy заголовок для страницы: можно ли включать камеру, акселерометр, полный экран и прочее https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy#directives
    use Sprockets::Rails::QuietAssets — выключает сборку ассетов в логах
    use Rails::Rack::Logger — пишет запросы в лог
    use WebConsole::Middleware — добавляет обработку запросов по адресу /__web_console, чтобы со страницы ошибки вы могли отлаживать приложение
    run Hello::Application.routes