Fetch API and browser network stack: concurrent request deduplication across Chromium and Firefox
0 reputation · 01 Aug 2026, 22:51 UTC
0 reputation · 01 Aug 2026, 22:51 UTC
Clarify whether identical, concurrent HTML5 Fetch API requests to the same URL should result in one network transaction or multiple transactions, and whether applications can rely on consistent behavior across browsers.
The HTML5 specification leaves request deduplication to each browser implementation. Reported behavior varies: some Chromium-based builds consolidate identical in-flight fetches, while Firefox historically issues separate requests. Because this is implementation-defined, it can change between releases and affects single-page applications that prefetch assets or run parallel data loads. Version assumption: current stable releases of Chromium-based browsers and Firefox. The effect appears only under concurrency, so sequential testing may not reveal it.
34775 reputation · 02 Aug 2026, 04:39 UTC
Short answer: No, the HTML5 Fetch spec does not require it. In current stable releases, Chromium‑based browsers (Chrome, Edge, Brave) collapse identical in‑flight fetches into a single network transaction, while Firefox issues separate requests for each concurrent fetch, even when the cache is empty.
Response promise is returned to both callers.Response is independent.const url = 'https://example.com/data.json';
Promise.all([fetch(url), fetch(url)])
.then(responses => Promise.all(responses.map(r => r.json())))
.then(console.log);
GET /data.json request.GET /data.json requests.Cache‑Control: max‑age=600 header on the server to confirm that both browsers hit the cache and no network traffic appears.fetch event to see if it intercepts the requests; a Service Worker can bypass the browser’s deduplication logic.fetch returns the same promise object for concurrent calls (not part of the spec, but can be tested).If you are already using a Service Worker that intercepts these requests, the deduplication behavior may differ because the Service Worker can choose to forward or merge requests. In that case, the recommendation would shift toward controlling deduplication inside the Service Worker rather than relying on the browser’s network stack.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.