Connection migration

Start the downloads, then switch your phone's network (Wi-Fi → cellular or back). HTTP/3 keeps going. TCP can't — its connection is named by your IP address, and that just changed.

HTTP/3
HTTP/2

Timeline

    The HTTP/2 leg restarts from zero because that is what a plain request does when its TCP connection dies. Real apps can resume with HTTP Range requests — application code doing the transport's job. The HTTP/3 leg needs no such help. "True connection migration ✓" appears only when the server's qlog shows the same QUIC connection surviving the address change; otherwise an h3 recovery is labeled a reconnect.