HTTP-кеширование изнутри: ETag, Last-Modified и эвристика браузера

Как браузер принимает решение о кешировании? Что такое условный HTTP-запрос? Как возникает 304 Not Modified? Как устроен принудительный запрос ресурса, минуя кеш? Если эти вопросы для вас актуальны, прошу на огонёк. Изложение намеренно подробное: статья адресована и тем, кто только начинает путь в веб-разработке, и тем, кто просто хочет закрыть отдельные пробелы в понимании механизма кеширования. Скажем "нет" слепому копированию заголовков кеширования. Погружаемся

https://habr.com/ru/articles/1010594/

#сети #http #кеширование #кэширование #rfc9111 #starlette #uvicorn #httpсервер #браузеры #rfc9110

HTTP-кеширование изнутри: ETag, Last-Modified и эвристика браузера

Скажем "нет" слепому копированию заголовков кеширования. Введение Как браузер принимает решение о кешировании? Что такое условный HTTP-запрос? Как возникает 304 Not Modified? Как устроен...

Хабр

От WSGI к ASGI: как Python научился работать с асинхронным вебом

WSGI и ASGI — то, на чем стоит весь современный веб на Python. Это стандарты, которые описывают интерфейс между веб-сервером и приложением. Благодаря им сервер и фреймворк не образуют жесткую пару: любой WSGI-сервер запускает любое WSGI-приложение, любой ASGI-сервер любое ASGI-приложение. Uvicorn не знает ничего о FastAPI, FastAPI не знает ничего о Uvicorn, они знают только о том, что передать на вход и что ожидать на выходе. Разберем, как все это устроено. Погружаемся

https://habr.com/ru/articles/1003282/

#python #asgi #wsgi #вебсервер #asyncio #starlette #uvicorn

От WSGI к ASGI: как Python научился работать с асинхронным вебом

Введение WSGI и ASGI — то, на чем стоит весь современный веб на Python. Это стандарты, которые описывают интерфейс между веб-сервером и приложением. Благодаря им сервер и фреймворк не образуют жесткую...

Хабр

Urich: DDD и CQRS для микросервисов на Starlette без ручной раскладки роутов

Когда строим бэкенд по DDD и CQRS, роуты и OpenAPI обычно собираем вручную. Urich делает иначе: описываешь ограниченный контекст одним объектом — маршруты и документация появляются сами. Обзор фреймворка на Starlette и примеры кода.

https://habr.com/ru/articles/1002994/

#python_3 #starlette #ddd #cqrs #микросервисы

Urich: DDD и CQRS для микросервисов на Starlette без ручной раскладки роутов

Когда хочется строить бэкенд по DDD и CQRS на Python, а не «просто REST», приходится самому раскладывать роуты, команды, запросы и события. Я сделал фреймворк Urich — в нём один объект описывает...

Хабр

Ваша LLM стримит в никуда: разбираемся, как работать с дисконнектами в FastAPI

Что делает ваше FastAPI-приложение, когда клиент неожиданно закрывает соединение? По умолчанию — ничего. Если сервису важно экономить ресурсы (например, при работе с LLM), дисконнекты приходится обрабатывать явно, иначе GPU продолжит генерировать токены в пустоту. В FastAPI есть встроенные механизмы отмены обработки запроса при дисконнекте клиента. Однако просто включить их недостаточно: нужно подготовить ваш код к этому. Иначе возможны проблемы: зависшие транзакции и сломанный пул соединений с БД.

https://habr.com/ru/companies/tochka/articles/992134/

#fastapi #starlette #uvicorn #стримминг #sse #дисконнекты #отмена_запроса #asgi

Ваша LLM стримит в никуда: разбираемся, как работать с дисконнектами в FastAPI

Что делает ваше FastAPI-приложение, когда клиент неожиданно закрывает соединение? По умолчанию — ничего. Если сервису важно экономить ресурсы (например, при работе с LLM), дисконнекты приходится...

Хабр

If you are into #python web development with #FastAPI or #Starlette and follow principles of #hypermedia using #HTMX and #Alpine ... you might find these helpful:

https://codeberg.org/Seichter/snippets

snippets

Collection of code snippets to share and discuss.

Codeberg.org

jinja2-fragments now has proper #Starlette support: https://jinja2-fragments.readthedocs.io/latest/framework_integrations.html#starlette-integration

If you are using #htmx with Starlette, this might be of interest to you :)

#jinja #jinja2

Framework Integrations — jinja2-fragments 1.11.0 documentation

Python devs! Small quiz for you. (This is not a support request.)

Have a look at https://www.starlette.dev/middleware/.

As you can see, there's a Middleware() wrapper that takes a class name and arguments, so some kind of delayed construction takes place here. The question is: how delayed?

Take a guess when in your application's lifetime a middleware instance (e.g. CORSMiddleware) actually gets initialized.

("ASGI server starts" means it's getting ready to handle requests.)

#Python #Starlette

when Middleware(…) gets evaluated
0%
when Starlette(…) gets evaluated
6.7%
when the ASGI server starts up
20%
on first request
73.3%
Poll ended at .
Middleware - Starlette

The little ASGI library that shines.

STARLETTE Debut Album 'Sun's Enemy' Highlight Medley

! Credits to Ifeye !!!

#Suns_Enemy
#STARLETTE #Ifeye #starlinxentertainment
#kpop #newdebut #halloween #fyp #feed #instagram #capcut #viral #highlightmedley

FastOpenAPI: автодокументация OpenAPI для разных фреймворков на Python

Всем привет! Меня зовут Никита Рыженков, и я хочу поделиться опытом разработки библиотеки FastOpenAPI. Это инструмент, который приносит удобный стиль маршрутизации FastAPI и автоматическую документацию OpenAPI в целый ряд Python-фреймворков. Идея родилась из личной боли: в одном проекте приходилось поддерживать OpenAPI-документацию сразу в нескольких фреймворках, и я устал дублировать решения под каждый из них. Вдохновившись лаконичностью FastAPI, я решил создать унифицированный подход для Flask, AioHttp, Sanic, Falcon, Starlette, Quart, Tornado – назвал его FastOpenAPI​. В этой статье расскажу, какие проблемы решает FastOpenAPI, как он устроен внутри и как им пользоваться с примерами кода под каждый поддерживаемый фреймворк.

https://habr.com/ru/articles/903622/

#python #openapi #flask #falcon #aiohttp #sanic #starlette #tornado #opensourсe #сезон_open_source

FastOpenAPI: автодокументация OpenAPI для разных фреймворков на Python

Документация GitHub PyPi Всем привет! Меня зовут Никита Рыженков, и я хочу поделиться опытом разработки библиотеки FastOpenAPI. Это инструмент, который предоставляет удобный стиль маршрутизации...

Хабр
Jinja2 Fragments Documentation — jinja2-fragments 1.9.0 documentation