SYSTEM ATLASЗагрузка материала
Progressive EnhancementБазовая функциональность работает везде, улучшения добавляются слоями.Graceful Degradation в вебеСовременный опыт упрощается при ограничениях, сохраняя основную задачу.Islands ArchitectureИнтерактивность изолируется в отдельных островах поверх статического HTML.Partial HydrationКлиентский JavaScript активирует только нужные части страницы.Server-Side RenderingHTML формируется на сервере для быстрого первого отображения и индексации.Static Site GenerationСтраницы создаются заранее и обслуживаются как статические файлы.Incremental Static RegenerationСтатические страницы обновляются постепенно после публикации.Edge RenderingГенерация выполняется ближе к пользователю для снижения сетевой задержки.Core Web VitalsLCP, INP и CLS измеряют загрузку, отзывчивость и стабильность интерфейса.Critical Rendering PathРесурсы CSS, DOM и JavaScript определяют путь до первого отображения.Resource HintsPreload, prefetch и preconnect заранее подготавливают критические ресурсы.HTTP CachingCache-Control, ETag и validators уменьшают повторную передачу.Content Delivery NetworkКонтент реплицируется ближе к пользователям.Same-Origin PolicyБраузер ограничивает доступ между разными origin.Content Security PolicyПолитика ограничивает источники исполняемого и загружаемого контента.CORSСервер явно разрешает контролируемые междоменные запросы.PRG PatternПосле POST выполняется redirect, предотвращая повторную отправку формы.HATEOASКлиент переходит по ссылкам, предоставленным сервером.REST ConstraintsStateless, cacheable, uniform interface и layered system ограничивают дизайн.API VersioningИзменения контракта управляются совместимостью и явными версиями.Cache-Aside PatternПриложение самостоятельно читает из кэша и заполняет его при промахе.Read-Through CacheКэш сам загружает отсутствующее значение из основного хранилища.Write-Through CacheЗапись синхронно проходит через кэш в основное хранилище.Write-Behind CacheИзменения сначала принимаются кэшем, а в хранилище записываются позже.Cache Stampede ProtectionПредотвращает массовое одновременное вычисление одного истекшего значения.Хостинг статического контентаОтдает неизменяемые файлы через специализированное хранилище или CDN.Принцип ПостелаОтправитель должен строго соблюдать спецификацию, а получатель — быть осторожно терпимым к допустимым вариациям входа.Согласование представленияСогласование представления выбирает подходящий формат ответа по возможностям и предпочтениям клиента.Условные HTTP-запросыУсловный запрос выполняется только если версия ресурса соответствует условию клиента.Идентификатор версии ETagETag — validator конкретного представления ресурса, который клиент использует в условных запросах и кэше.Протокол HTTP/3HTTP/3 переносит семантику HTTP поверх QUIC и уменьшает влияние потери одного пакета на независимые потоки.Структурированные поля HTTPStructured Fields задаёт общую грамматику для списков, словарей и элементов в HTTP-полях.Предзагрузка навигации для Service WorkerNavigation Preload позволяет браузеру начать сетевой запрос страницы параллельно с запуском service worker, чтобы обработчик fetch не задерживал навигацию.Контракт идемпотентности APIAPI явно фиксирует, какие операции можно безопасно повторять и как сервер распознаёт повтор одного логического запроса.Курсорная пагинацияКурсорная пагинация продолжает выборку от устойчивой позиции, а не от числового смещения в изменяющемся наборе.Выбор полей ответаКлиент запрашивает только необходимые поля, сокращая размер ответа и связанность с полной моделью ресурса.Единый формат ошибок APIОшибки API передаются в предсказуемой структуре с машинным кодом, описанием, экземпляром и дополнительным контекстом.Problem Details для HTTP APIФормат Problem Details стандартизирует машиночитаемое описание ошибок HTTP без создания отдельной схемы для каждого типа сбоя.Суррогатный ключ кэшаОтвет помечается логическими ключами, по которым CDN может инвалидировать группу связанных объектов.Инвалидация кэша по тегамЗаписи кэша объединяются тегами, чтобы изменение доменного объекта очищало все зависимые представления.Сборка страницы на edge через ESIПограничный кэш собирает страницу из фрагментов с разными сроками жизни и правилами персонализации.Сохранённые GraphQL-запросыКлиент передаёт идентификатор заранее зарегистрированного запроса вместо произвольного текста операции.Контракт пагинации APIЯвные правила размера страницы, курсора, порядка, завершения выборки и стабильности результатов между запросами.Контракт фильтрации APIОпределение доступных полей, операторов, комбинаций и поведения ошибочных фильтров.Контракт сортировки APIПравила полей и направлений сортировки, включая стабильный дополнительный ключ для воспроизводимого порядка.Маска полей APIЯвное перечисление полей объекта, которые клиент хочет прочитать или изменить, вместо передачи полного представления.Пакетная операция APIОдин запрос, содержащий несколько независимых операций с определёнными лимитами, порядком и форматом частичных результатов.Долговыполняемая операция APIАсинхронный контракт для операции, которая возвращает ресурс состояния и позволяет опрашивать прогресс и итог.Контракт обратного вызова APIОписание запроса, который сервер отправит клиенту позже, включая адрес, аутентификацию, повторы и формат ошибок.Жизненный цикл подписки webhookСоздание, проверка, приостановка, обновление и удаление подписки на события с контролем владельца и срока действия.Контракт Retry-AfterСогласованное использование сигнала Retry-After для сообщения клиенту безопасного времени повторного запроса.Заголовки лимитов APIСтандартизированное сообщение клиенту доступного лимита, остатка и момента его восстановления.Контроль конкурентных изменений APIЗащита ресурса от потерянных обновлений с помощью версии, ETag, precondition или другого проверяемого маркера.Условный запрос APIЗапрос, выполняемый только при совпадении или несовпадении валидатора текущего представления ресурса.Версионирование API через media typeРазличение поколений представления ресурса через тип содержимого и параметры media type.Несоответствие при гидратацииРазличие между серверной HTML-разметкой и первым клиентским render, вызывающее предупреждения или замену интерфейса.Прогрессивная гидратацияПостепенное подключение интерактивности к частям серверной страницы вместо одновременной активации всего интерфейса.Выборочная гидратацияПриоритетная активация нужных пользователю участков интерфейса до менее важных компонентов.Частичный prerenderingСочетание заранее подготовленной статической оболочки со вставкой динамических частей во время запроса или навигации.Совместимость с bfcacheСохранение страницы в back/forward cache без обработчиков и ресурсов, вынуждающих браузер полностью перезагружать её.Тайм-аут навигации service workerОграничение ожидания ответа service worker при навигации с переходом к сети или offline fallback после истечения срока.Жизненный цикл обновления service workerУправление установкой, ожиданием, активацией и совместимостью новой версии service worker с открытыми вкладками.Резервная страница без сетиЛокально сохранённая страница, показываемая при невозможности получить запрошенный ресурс из сети или кэша.Устанавливаемость веб-приложенияНабор manifest, иконок, безопасного транспорта и поведения, позволяющий браузеру предложить установку приложения.Веб-приложение как цель ShareРегистрация установленного PWA как получателя текста, ссылок или файлов из системного меню общего доступа.Совместимость: гидратация интерфейсаДля «гидратация интерфейса» это проверка того, что новое представление данных может быть прочитано и корректно обработано действующими производителями и потребителями.Инвалидация: гидратация интерфейсаДля «гидратация интерфейса» это явное правило признания сохранённого результата устаревшим при изменении данных, версии или контекста.Бюджет расхождений: гидратация интерфейсаДля «гидратация интерфейса» это допустимый объём расхождений между серверным и клиентским представлением до блокировки выпуска или включения fallback.Сохранение состояния: гидратация интерфейсаДля «гидратация интерфейса» это определение того, какое состояние сохраняется, где оно хранится, как долго живёт и когда очищается.Политика вариативности: гидратация интерфейсаДля «гидратация интерфейса» это правило, определяющее, какие входные признаки создают отдельную версию кэшированного или сгенерированного результата.Совместимость: клиентский кэшДля «клиентский кэш» это проверка того, что новое представление данных может быть прочитано и корректно обработано действующими производителями и потребителями.Инвалидация: клиентский кэшДля «клиентский кэш» это явное правило признания сохранённого результата устаревшим при изменении данных, версии или контекста.Резервное поведение: офлайн-очередьДля «офлайн-очередь» это упрощённое доступное поведение при отсутствии возможности выполнить основной клиентский сценарий.Устанавливаемость: офлайн-очередьДля «офлайн-очередь» это набор проверяемых условий, при которых web-приложение может быть установлено и корректно запущено вне вкладки.Владение: офлайн-очередьДля «офлайн-очередь» это явное закрепление владельца, который отвечает за жизненный цикл, изменения, инциденты и вывод компонента из эксплуатации.Восстановление после квоты: офлайн-очередьДля «офлайн-очередь» это контролируемое поведение при исчерпании квоты браузерного хранилища, включая очистку, предупреждение и сохранение критичных данных.Безопасность обновления: офлайн-очередьДля «офлайн-очередь» это процесс обновления клиентского компонента без смешивания несовместимых версий кода, данных и кэша.Отмена: service workerДля «service worker» это возможность безопасно прекратить незавершённую клиентскую операцию и освободить связанные ресурсы.Разрешение конфликтов: service workerДля «service worker» это детерминированное правило объединения конкурирующих изменений локального и удалённого состояния.Безопасная очистка: service workerДля «service worker» это проверка, что очистка кэша или хранилища не удаляет единственную копию критичных данных и не ломает активную сессию.