How to enable or disable HTTP/3 in Firefox (network.http.http3.enable)

Martin Brinkmann
Updated •
Firefox

HTTP/3 is enabled by default in Firefox, so most users do not need to change anything. The switch is the about:config preference network.http.http3.enable: true turns HTTP/3 and its QUIC transport on, false turns them off. Mozilla rolled HTTP/3 out to stable users with Firefox 88 in 2021, and the preference lost the trailing "d" of its old name, network.http.http3.enabled, in Firefox 98.

This guide shows how to check and change the preference, how to confirm that a site really loads over HTTP/3, and why Firefox sometimes falls back to HTTP/2 even when the setting is on.

What network.http.http3.enable does in Firefox

The network.http.http3.enable preference decides whether Firefox may use HTTP/3 for connections to servers that offer it. HTTP/3 keeps the familiar HTTP semantics but runs them over QUIC, a transport protocol that replaces TCP and travels over UDP. The IETF published HTTP/3 as RFC 9114 in June 2022.

The preference is a simple Boolean:

  • true (default): Firefox uses HTTP/3 when a server advertises it and the connection succeeds.
  • false: Firefox never tries HTTP/3 and uses HTTP/2 or HTTP/1.1 instead.

Turning the preference on does not force HTTP/3 everywhere. A server has to advertise HTTP/3 first, usually through an Alt-Svc response header with the "h3" token or through an HTTPS record in DNS. If the server does not support HTTP/3, Firefox keeps using HTTP/2 or HTTP/1.1, and the page loads as normal.

How to enable or disable HTTP/3 in Firefox

You enable or disable HTTP/3 in Firefox by setting network.http.http3.enable on the about:config page. The same steps work in Firefox Stable, Beta, Nightly and ESR on desktop.

  1. Type about:config in the Firefox address bar and press Enter.
  2. Confirm the warning if Firefox shows one.
  3. Type network.http.http3.enable into the search field at the top.
  4. Check the value: true means HTTP/3 is on, false means it is off.
  5. Click the toggle button at the end of the row to switch between true and false.
  6. Reload the sites you want to test. If a site still does not switch protocol, restart Firefox.

Firefox about:config page with the HTTP/3 preference listed

Use the reset button in the same row to return the preference to its default value. The about:config editor works the same way for other hidden switches, for example when you turn hardware acceleration on or off in Firefox or stop the captive portal check on startup.

network.http.http3.enable vs network.http.http3.enabled

network.http.http3.enable is the current name, and network.http.http3.enabled is the old name that Firefox no longer reads. Mozilla renamed the preference in Bugzilla bug 1751170, which shipped in Firefox 98. Older guides, user.js files and enterprise scripts written before 2022 often still use the old name.

Preference Firefox versions What to do
network.http.http3.enabled Up to Firefox 97 Remove it from user.js and scripts; it has no effect today
network.http.http3.enable Firefox 98 and later Use this name to enable or disable HTTP/3

If you manage Firefox with a user.js file or deployment scripts and HTTP/3 does not behave as expected, search them for the old name first. A forked browser based on Firefox, such as LibreWolf, uses the same preference names but may ship its own defaults, so check about:config in that browser rather than assuming the Firefox default.

How to check if Firefox uses HTTP/3

The quickest way to check if Firefox uses HTTP/3 is the Protocol column of the Network Monitor in the Developer Tools.

  1. Open a site that supports HTTP/3, for example Cloudflare's QUIC test page.
  2. Press Ctrl+Shift+E (Cmd+Opt+E on macOS) to open the Network Monitor.
  3. Right-click any column header and select Protocol, which is hidden by default.
  4. Reload the page with a normal reload (F5 or Ctrl+R).
  5. Look at the Protocol column: requests served over HTTP/3 show HTTP/3.

Firefox Network Monitor with the Protocol column showing HTTP/3 requests

The Cloudflare test page also states which protocol the current visit used and suggests reloading a few times, because the first visit often uses an older protocol. Mozilla's Network Monitor documentation describes all available columns.

Why Firefox loads a site over HTTP/2 when HTTP/3 is on

Firefox often uses HTTP/2 for the first request to a site even when network.http.http3.enable is true, and this is expected behavior. Firefox only learns that a server speaks HTTP/3 from an Alt-Svc header in an earlier response or from a DNS HTTPS record, so the very first connection usually runs over HTTP/2. Mozilla engineers explained the main causes in bug 1701829:

  • First visit: without a stored Alt-Svc entry, Firefox starts with HTTP/2 and switches on later loads.
  • Hard reload: Ctrl+Shift+R clears the stored Alt-Svc mappings, so the next load falls back to HTTP/2.
  • Fast fallback: if the QUIC connection is not ready quickly, Firefox races ahead with HTTP/2 and keeps the faster connection.
  • DNS: HTTPS records are easiest to get with encrypted DNS; see how to enable DNS over HTTPS in Firefox and other browsers.
  • Blocked UDP: QUIC runs over UDP, and RFC 9114 notes that networks blocking UDP make QUIC connections fail, which leaves HTTP/2 as the working option.

If one site never switches while others do, the server most likely does not offer HTTP/3. If no site ever switches, check the preference, any user.js file, and whether a firewall, VPN or proxy on your network blocks UDP traffic.

Is there a firefox://flags option for QUIC?

No, Firefox has no flags page, so an address like firefox://flags/#enable-quic does not exist. The chrome://flags/#enable-quic switch belongs to Chromium-based browsers such as Chrome and Edge; read our guide to Chrome flags for that side. In Firefox, QUIC and HTTP/3 are controlled together by network.http.http3.enable on about:config, so there is no separate QUIC switch to look for.

FAQ

Is it safe to disable HTTP/3 in Firefox?

Yes. With network.http.http3.enable set to false, Firefox uses HTTP/2 or HTTP/1.1, which remain encrypted with TLS. Sites keep working; you may only lose some of the connection speed benefits of QUIC.

Do I need Firefox Nightly to use HTTP/3?

No. HTTP/3 started in Firefox Nightly in 2020, but Mozilla enabled it for stable users with Firefox 88 in 2021. Any current Firefox release supports it.

When did HTTP/3 become a standard?

The IETF published HTTP/3 as RFC 9114 in June 2022. Browsers including Firefox supported draft versions of the protocol before that date.

Related: Check if your browser uses secure DNS and TLS 1.3, Enable DNS over HTTPS in Firefox, Hardware acceleration in Firefox

Comments

  1. Elad Karako said on
    Reply

    quic works best on mobile devices.
    try this private enhanced fork of mozilla firefox
    https://github.com/fork-maintainers/iceraven-browser
    get the apk from releases.
    it’s really fast and you can activate sync like normal firefox. quic enable by default.
    (for chrome try google sesrch for bromite)

  2. Yuliya said on
    Reply

    network.http.http3.enabled;true causes nonstop loading, no loading at all (actually a what it can be perceived as a temporary blacklisting) of a domain. it’s impossible to use without going insane. it’s extremely easy to stumble across these issues on youtube or when dealing with recaptcha. avoid, for now.
    tested on esr78.

  3. Anonymous said on
    Reply

    Enabling this caused YouTube to be very unstable. Sometimes the video would never start and only show a spinning buffering circle. Sometimes the video would start, play for a few seconds, and then stop and show a spinning buffering circle. Sometimes the video would play fine as long as I didn’t try to seek. Seeking would cause the video to stop and show a spinning buffering circle.

  4. Odin said on
    Reply

    Warning: HTTP/3 with QUIC appears to allow serious new webtracking threat:

    The ‘QUIC’ protocol (Google originated BTW) appears to be insecure against webtracking by commercial as well as govt. trackers & surveillance. A user/browser may be (passively) uniquely tracked across a browsing session (and possibly across multiple sessions in some instances), without the need for cookies, other trackers, or fingerprinting, according to a recent University of Hamburg paper:

    https://content.sciendo.com/downloadpdf/journals/popets/2019/3/article-p255.pdf

    Thus, probably best not to enable this in your browser if you are privacy-minded, until this hole is patched … (I haven’t been able to find any mention that browser vendors have even addressed this to-date)

    QUIC has already been enabled in Chrome for quite some time, surprise, surprise (Google builds in yet another hidden, powerful privacy-shredding tracker into its next-generation web technology and as well as its 60%-market-share-browser?? There’s a shocker for ya…)

    You can disable this in most Chromium-based browsers, tho’, and/or otherwise at your OS firewall:

    https://www.bitdefender.com/support/how-to-disable-quic-protocol-in-google-chrome-1669.html

    Happy paranoid browsing, now …

    1. Seb said on
      Reply

      Thank you! i browsed over the article and it seems very informative as well es thought through. Google and their effort for “the greater good” and the “community”….

    2. Anonymous said on
      Reply

      @Odin Thank you.

  5. Thorky said on
    Reply

    It’s buggy on Youtube. The startbutton either of the videoframe-window and the buttonbar below doesn’t respond.

  6. Anonymous said on
    Reply

    Is there any disadvantage if I now enable this setting? Does it increase fingerprinting when it is not default yet?

    1. TheFox said on
      Reply

      It should reduce overhead of the protocol stack. Other than that you’ll be testing an unstable new web standard and there may be some errors. Whilst I had no time to read the draft yet, no HTTP/3 itself will not be used for fingerprinting, but that your browser supports it will make you stick out like a sore thumb.

      I hope the reply satisfies your question.

      1. Anonymous said on
        Reply

        @TheFox: Thank you.

  7. ric said on
    Reply

    just tried in ff 78.0 (64bit) for arch linux and the test above worked fine.
    observation: loading of images (initiator) longer vs http/2 according to the (timeline) in the above and my readouts? am i reading that correctly?

  8. unimportant said on
    Reply

    I tried it in Firefox 79.0b1 and it seems buggy. At one point I managed to connect to the test page with http/3, but then shortly afterwards no page loaded at all

    1. Greg said on
      Reply

      it doesnt work on Facebook, but yeah it is Buggy so i disabled it again.

  9. pat said on
    Reply

    It’s also available in Firefox 79 beta.

    1. eddy said on
      Reply

Leave a Reply

By commenting, you accept our privacy policy and keep the discussion respectful and on topic.