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. Это стандарты, которые описывают интерфейс между веб-сервером и приложением. Благодаря им сервер и фреймворк не образуют жесткую...

Хабр

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

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

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

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

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

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

Хабр

Python (FastAPI) vs Go: нагрузочный тест и анализ производительности

Выбор backend-языка часто сводится к компромиссу между скоростью разработки и производительностью. Python с FastAPI ценят за простоту и быстрый старт, а Go — за высокую производительность и предсказуемость работы под нагрузкой. Но что если взглянуть на реальные цифры, а не на общие тезисы? В этой статье я провёл нагрузочный тест двух минимальных серверов: Go (net/http) и Python (FastAPI + Uvicorn) с использованием Locust. Мы тестировали один endpoint под 1000 одновременных пользователей, с высокой скоростью добавления новых, чтобы увидеть пределы производительности и стабильности откликов. Статья полезна всем, кто разрабатывает API, оптимизирует серверы и хочет принимать решения на основе фактических данных, а не слухов. Результаты эксперимента наглядно показывают, где Python подходит для быстрого старта, а где Go выигрывает в производительности и стабильности.

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

#Go #Python #FastAPI #Uvicorn #нагрузочное_тестирование #Locust #RPS #производительность #серверная_оптимизация

Python (FastAPI) vs Go: нагрузочный тест и анализ производительности

Содержание Введение Условия эксперимента Архитектура тестируемых серверов Настройки нагрузочного теста Результаты тестирования Практические выводы Ответы на вопросы Заключение Введение Выбор...

Хабр

Also, #uvicorn wasn't putting a timestamp in its access logs by default, which raises the question: What the fuck?

(Got that sorted, just thought it was incredibly weird.)

Обзор WSGI, ASGI и RSGI: лидеры среди веб-серверов в 2025 году

Любому веб-приложению нужен веб-сервер для доступа извне. На самом деле, многие даже не уделяют выбору веб-сервера для своего приложения достаточного внимания: на Django берут "популярный" Gunicorn (а кто-то ещё и обвязывает его Uvicorn'ом), а для FastAPI Uvicorn практически стандарт. Тут "на сцену" выходит Granian, представляющий впечатляющие результаты производительности с простой настройкой. В своём проекте "Код на салфетке" я использовал uWSGI, но недавно узнал про новый Granian и мне стало интересно на что он способен. Так появилась идея для этой статьи. В этой статье узнаем:

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

#WSGI #ASGI #RSGI #вебсервер_python #сравнение_веб_серверов #django #fastapi #uvicorn #granian

Обзор WSGI, ASGI и RSGI: лидеры среди веб-серверов в 2025 году

Любому веб-приложению нужен веб-сервер для доступа извне. На самом деле, многие даже не уделяют выбору веб-сервера для своего приложения достаточного внимания: на Django берут "популярный" Gunicorn (а...

Хабр

FastAPI Tutorial with Python | Create Your First Hello World API Step by Step

https://makertube.net/w/cEztWawtERRrDYWkJXRT1r

FastAPI Tutorial with Python | Create Your First Hello World API Step by Step

PeerTube

Хватит тестировать на «кошках»! Разворачиваем циничный API на FastAPI за 5 минут для реальных AQA-задач

Привет, Хабр! Меня зовут Ваня, и я AQA-инженер. Как и многие из вас, я занимаюсь обучением будущих покорителей Postman и Pytest. И, как многие из вас, я столкнулся с проблемой: все существующие тестовые API — невыносимо скучные. Todo-листы, интернет-магазины с товарами Item 1 , Item 2 , API для управления книгами... Серьезно? После пятого GET /todos начинаешь сомневаться не только в своей карьере, но и в смысле бытия. Данные в них стерильны, как операционная, а сценарии предсказуемы, как сюжет российского сериала. Моим ученикам было скучно. Мне было скучно. Я понял, что нужен свой API. С блэкджеком и... ну, вы поняли. С API, который будет не просто функциональным, но и забавным. Который захочется «потыкать» просто ради того, чтобы увидеть очередной перл в ответе сервера. Так родился "Cynical Circle API" — API для тех, кто понял жизнь и устал от ванильных примеров. (Так выглядит наша интерактивная документация. Уже интригует, не правда ли?)

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

#API #тестирование_API #AQA #автоматизация_тестирования #Python #fastapi #swagger #uvicorn #itюмор #обучение_программированию

Хватит тестировать на «кошках»! Разворачиваем циничный API на FastAPI за 5 минут для реальных AQA-задач

Привет, Хабр! Меня зовут Ваня (23 года), и я AQA-инженер. Как и многие из вас, я занимаюсь обучением будущих покорителей Postman и Pytest. И, как многие из вас, я столкнулся с проблемой: все...

Хабр

Maybe it's today a #uvicorn day? Old version does not built anymore in #guix.

0.23.2->0.32.0 wdyt?

https://issues.guix.gnu.org/64375

[PATCH 0/8] Add python-platformio plus dependency updates.

And... Uvicorn 0.32.0 released! 😎

✅ Officially support for Python 3.13

https://github.com/encode/uvicorn

#Python #Python313 #Uvicorn

GitHub - encode/uvicorn: An ASGI web server, for Python. 🦄

An ASGI web server, for Python. 🦄. Contribute to encode/uvicorn development by creating an account on GitHub.

GitHub