РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
273 of 307 menu

Класс HTTPSRedirectMiddleware

Класс HTTPSRedirectMiddleware применяется к приложению FastAPI и заставляет его перенаправлять все входящие HTTP-запросы на HTTPS. Middleware проверяет схему запроса и, если она равна http, возвращает ответ с кодом перенаправления на тот же URL, но со схемой https. Это особенно полезно при развёртывании приложения за обратным прокси, который не выполняет такое перенаправление самостоятельно.

Класс не принимает обязательных параметров: при создании экземпляра достаточно передать ему приложение FastAPI. Middleware также учитывает заголовок X-Forwarded-Proto, если приложение работает за прокси-сервером.

Синтаксис

from fastapi import FastAPI from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware app = FastAPI() app.add_middleware(HTTPSRedirectMiddleware)

Пример

Давайте подключим middleware к приложению и создадим простой маршрут, чтобы проверить перенаправление:

from fastapi import FastAPI from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware app = FastAPI() app.add_middleware(HTTPSRedirectMiddleware) @app.get('/') def index(): return {'text': 'hello'}

Теперь при обращении по адресу http://localhost:8000/ сервер вернёт ответ с кодом 307 и заголовком Location, указывающим на https://localhost:8000/.

Результат выполнения запроса (заголовки ответа):

{"location": "https://localhost:8000/", "status_code": 307}

Пример

Давайте проверим, что при обращении по HTTPS перенаправления не происходит и возвращается обычный ответ:

from fastapi import FastAPI from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware app = FastAPI() app.add_middleware(HTTPSRedirectMiddleware) @app.get('/user') def user(): return {'name': 'abcde'}

При запросе по адресу https://localhost:8000/user клиент получит исходный ответ без перенаправления:

{"name": "abcde"}

Смотрите также

  • класс CORSMiddleware,
    который настраивает кросс-доменные запросы
  • класс GZipMiddleware,
    который сжимает ответы с помощью gzip
  • класс TrustedHostMiddleware,
    который ограничивает список доверенных хостов
  • параметр allow_origins,
    который задаёт список разрешённых источников для CORS
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить