HTTP/2 Asset Loading Strategies

PerformanceNetworkLoading
Share on LinkedIn Share on X Share on Reddit Share on HN Share on Bluesky

We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall.

Problem in production

We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall.

When: When your cdn serves h2/h3 and you are revisiting http/1.1 bundling assumptions.

Avoid: Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost

Mechanism

For HTTP/2 multiplexing and asset loading strategy, baseline LCP, INP, and CLS before changing implementation.

Edge cases

Test back navigation, refresh, double submit, offline, keyboard-only paths.

Rollout

Feature-flag one route; compare canary p75 for one business day.

Reference implementation

performance.mark("start");
await applyChange();
performance.mark("end");
performance.measure("change", "start", "end");

When to prioritize

When your cdn serves h2/h3 and you are revisiting http/1.1 bundling assumptions.

Anti-pattern

Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost.

Deep dive: third-party drift (1)

Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.

For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.

Deep dive: rollout discipline (2)

We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.

Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.

Deep dive: failure rehearsal (3)

Rehearse Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost in a 30-minute game day before peak season. For HTTP/2 multiplexing and asset loading strategy, measure time-to-detect and time-to-mitigate — not only time-to-root-cause in a postmortem doc.

Manual paths worth scripting: hard refresh mid-flow, browser back after async submit, double-click primary action, offline toggle during mutation, keyboard-only navigation with screen reader.

Deep dive: observability (4)

Wire custom RUM marks around the user journey HTTP/2 multiplexing and asset loading strategy affects. Log correlation IDs across client beacons and server logs. Alert on week-over-week p75 regression on tier-1 routes — global averages hide bad canaries.

Leading indicators: error rate, validation failures, queue depth. Lagging: support tickets, conversion, churn. Both must move together to confirm the fix matched user pain.

Deep dive: third-party drift (5)

Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.

For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.

Deep dive: rollout discipline (6)

We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.

Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.

Deep dive: failure rehearsal (7)

Rehearse Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost in a 30-minute game day before peak season. For HTTP/2 multiplexing and asset loading strategy, measure time-to-detect and time-to-mitigate — not only time-to-root-cause in a postmortem doc.

Manual paths worth scripting: hard refresh mid-flow, browser back after async submit, double-click primary action, offline toggle during mutation, keyboard-only navigation with screen reader.

Deep dive: observability (8)

Wire custom RUM marks around the user journey HTTP/2 multiplexing and asset loading strategy affects. Log correlation IDs across client beacons and server logs. Alert on week-over-week p75 regression on tier-1 routes — global averages hide bad canaries.

Leading indicators: error rate, validation failures, queue depth. Lagging: support tickets, conversion, churn. Both must move together to confirm the fix matched user pain.

Deep dive: third-party drift (9)

Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.

For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.

Deep dive: rollout discipline (10)

We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.

Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.

Deep dive: failure rehearsal (11)

Rehearse Unbundling everything because multiplexing removes connection limits while ignoring JavaScript parse and cache invalidation cost in a 30-minute game day before peak season. For HTTP/2 multiplexing and asset loading strategy, measure time-to-detect and time-to-mitigate — not only time-to-root-cause in a postmortem doc.

Manual paths worth scripting: hard refresh mid-flow, browser back after async submit, double-click primary action, offline toggle during mutation, keyboard-only navigation with screen reader.

Deep dive: observability (12)

Wire custom RUM marks around the user journey HTTP/2 multiplexing and asset loading strategy affects. Log correlation IDs across client beacons and server logs. Alert on week-over-week p75 regression on tier-1 routes — global averages hide bad canaries.

Leading indicators: error rate, validation failures, queue depth. Lagging: support tickets, conversion, churn. Both must move together to confirm the fix matched user pain.

Deep dive: third-party drift (13)

Tag managers, chat widgets, and payment iframes change without your deploy. Quarterly audit script inventory on critical routes. Compare lab metrics with ad blockers enabled vs disabled — the delta reveals third-party cost.

For HTTP/2 multiplexing and asset loading strategy, corporate proxies and Save-Data alter behavior versus staging on office Wi-Fi. Field validation beats conference demos.

Deep dive: rollout discipline (14)

We shipped HTTP/2 on the CDN and split our 400 KB vendor bundle into twelve files — LCP regressed 300 ms because parse cost dominated the pretty parallel waterfall. When rolling out changes to HTTP/2 multiplexing and asset loading strategy, compare canary p75 INP and LCP to control for a full business day in target regions before promoting to 100%. Document rollback in the PR: feature flag name, cache purge procedure, or revert commit — whichever restores prior behavior fastest at 2 a.m.

Slice metrics by device class and connection effective type. A fix helping desktop fiber but regressing mid-tier Android 4G should pause rollout, not ship globally.

Frequently asked questions

Does HTTP/2 make bundling unnecessary?

Multiplexing removes per-connection queues but bundling still affects parse cost and cache granularity. Use route-level chunks with long-lived vendor bundles, not one file or twelve micro-files without measurement.

Why was HTTP/2 Server Push deprecated?

Push sent resources browsers often cached, wasting bandwidth. Use 103 Early Hints or link preload instead — browsers respect cache state when deciding to fetch.

How do I verify HTTP/2 is active?

DevTools Network Protocol column shows h2 or h3. Log nextHopProtocol in RUM to segment users on HTTP/1.1 fallback.

Hiring a senior Android / Flutter engineer?

I architect and ship production mobile software — Kotlin, Jetpack Compose, Flutter — for robotics, EV infrastructure, fintech, and real-time systems. Open to remote roles in Europe and the US.

Get in touch →