Питання на співбесіді з браузера й продуктивності (Senior) з відповідями
75 запитань для співбесіди з теми Браузер і продуктивність (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Що гарантує Site Isolation у Chromium?
- 2.Чому браузери вимкнули
SharedArrayBufferза замовчуванням, а потім знову ввімкнули лише для cross-origin isolated сторінок? - 3.Яка пара заголовків робить сторінку cross-origin isolated (
self.crossOriginIsolated === true)? - 4.Після ввімкнення
COEP: require-corpперестали вантажитися сторонні зображення. Які є варіанти? - 5.Від чого, крім увімкнення ізоляції, захищає
Cross-Origin-Opener-Policy: same-origin? - 6.Для чого
Cross-Origin-Resource-Policy: same-site? - 7.Чим корисні на сервері заголовки запиту Fetch Metadata, як-от
Sec-Fetch-Site? - 8.Що таке XS-Leaks?
- 9.Чому анімація
transformможе лишатися плавною, навіть коли головний потік заблоковано довгою задачею? - 10.Який бюджет кадру для рендерингу з частотою 60 Гц і чому на практиці він менший за 16,7 мс?
- 11.Чому зміна одного класу на
<body>може бути дорогою у великому застосунку? - 12.Що означає «вибух шарів» (layer explosion)?
- 13.Чим
content-visibility: hiddenвідрізняється відdisplay: none? - 14.Коли
content-visibility: autoможе погіршити CLS чи прокрутку? - 15.Що робить «paint holding» у Chromium для same-origin навігацій?
- 16.Що Long Animation Frames (LoAF) API додає порівняно з Long Tasks API?
- 17.Чому гідратація може погіршувати INP на сторінках із серверним рендерингом?
- 18.Що дає
scheduler.postTask(fn, { priority: "background" })? - 19.INP поганий, але кожен обробник подій триває менше 20 мс. На що варто подивитися?
- 20.Чому лабораторне налагодження INP часто вводить в оману порівняно з польовими даними?
- 21.Як збирання сміття може впливати на INP?
- 22.Чому оновлення рендерингу в
requestAnimationFrameіноді є прихованою причиною поганого INP? - 23.Чому Core Web Vitals оцінюють за 75-м перцентилем?
- 24.RUM показує, що LCP p75 погіршився, але оцінки Lighthouse не змінилися. Яка ймовірна причина?
- 25.Як контролювати бюджети продуктивності в CI, щоб результати були надійними?
- 26.Яка користь надсилати атрибуцію LCP (елемент, складові) разом зі значенням?
- 27.Як придатність до bfcache впливає на польові метрики?
- 28.Який заголовок історично не давав сторінці потрапити в bfcache у Chrome?
- 29.Як сторінка має поводитися, коли її prerender-ять через Speculation Rules?
- 30.Який компроміс вбудовування критичного CSS в HTML?
- 31.Як потокова передача HTML із сервера допомагає LCP?
- 32.Чому з HTTP/2 чи HTTP/3 збирати все в один JS-файл досі може бути не найкращою ідеєю?
- 33.Яка головна пастка ключа кешу, що містить зайві дані запиту, як-от усі cookies?
- 34.Що таке web cache poisoning?
- 35.Чому
ETag, згенеровані з inode чи часу зміни, можуть погано ревалідуватися за балансувальником навантаження? - 36.Яку проблему розв'язують цільові заголовки на кшталт
CDN-Cache-Control? - 37.Що змінює
Cache-Control: immutable? - 38.Чому кешувати автентифіковану API-відповідь у спільному кеші CDN небезпечно навіть із коротким TTL?
- 39.Що не так із цією перевіркою CORS?
- 40.Чому дозволяти
Origin: nullу CORS ризиковано? - 41.Чи захищає правильна конфігурація CORS API від CSRF?
- 42.Внутрішній сервіс на
http://192.168.0.10не має бути доступним для скриптів публічних сайтів. Який механізм браузера на це спрямований? - 43.Чому preflight-запити шкодять продуктивності SPA з великою кількістю API-викликів і як їх зменшити?
- 44.Що робить
'strict-dynamic'у CSP? - 45.Чому CSP зі списком дозволених хостів, як-от
script-src 'self' https://cdn.example.com, часто можна обійти? - 46.Чому strict CSP має містити
base-uri 'none'(або'self')? - 47.Як розгорнути нову CSP, не зламавши продакшн?
- 48.Що примусово забезпечують Trusted Types?
- 49.Що таке mutation XSS (mXSS)?
- 50.Що таке DOM clobbering?
- 51.Чому краще кодувати вивід під його контекст, ніж один раз фільтрувати «погане» введення на вході?
- 52.Від чого
HttpOnlyсесійна cookie НЕ захищає, коли є XSS? - 53.Чим небезпечно вставляти серверні дані в inline-скрипт ось так?
- 54.Де санітизувати HTML від користувачів у системі, яка показує його у вебзастосунку й мобільному застосунку?
- 55.Що гарантує префікс імені cookie
__Host-? - 56.Чому
SameSiteне захищає від атак зі зламаного піддомену на кшталтblog.example.com? - 57.Що CHIPS (cookies із
Partitioned) змінює для вбудованого віджета? - 58.Що стається, коли сховище origin перевищує квоту браузера або на пристрої закінчується місце?
- 59.Що таке партиціонування сховищ (storage partitioning) у сучасних браузерах?
- 60.Чому один великий HTML-документ досі може мати повільний TTFB з HTTP/3 і CDN?
- 61.Що дозволяє connection coalescing у HTTP/2?
- 62.Чому «domain sharding» - антипатерн із HTTP/2?
- 63.Що TLS 1.3 покращує для завантаження сторінки порівняно з TLS 1.2?
- 64.Який сенс надсилати
Link: <...>; rel=preloadHTTP-заголовком, а не в HTML? - 65.Чому sandboxed iframe на окремому origin - поширений спосіб показувати недовірений HTML (наприклад, віджети від користувачів)?
- 66.Чому
allow-scripts allow-same-originна sandboxed iframe із same-origin контентом небезпечні? - 67.Яка мета HSTS preload?
- 68.Який підхід до сторонніх скриптів найбільше обмежує ризики і для продуктивності, і для безпеки?
- 69.Чому CSP варто надсилати HTTP-заголовком, а не тегом
<meta>, коли це можливо? - 70.Що service worker означає для наслідків XSS?
- 71.Яке найважливіше обмеження Web Application Firewall (WAF) проти XSS?
- 72.Яка головна ідея моделі продуктивності RAIL?
- 73.Hero-заголовок з'являється з анімацією від
opacity: 0. Як це може вплинути на LCP? - 74.Чому «anti-flicker» сніпети клієнтських інструментів A/B-тестування часто погіршують LCP?
- 75.Чому завантаження популярного шрифту з публічного CDN шрифтів більше не виграє від кешів інших сайтів?