HTTP/2, HTTP/3 and QUIC Flashcards

1
Q

What improvements did HTTP/2 bring, compared to HTTP/1.1

A

Framing:
(multiplexing logical streams on single HTTP/2 connection)
- Each message is a logical HTTP msg. like request/response which consists of frames.
- Frames carry specific type of data, e.g. HTTP header, msg payload etc.

Stream priorities and dependencies(framing give this as well)

Header compression using HPACK

Resettable streams, e.g. stop an ongoing stream if data is not needed anymore.

Server push(prefetching data before it is requested)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What improvements did HTTP/1.1 bring, compared to HTTP/1

A

Persistent connections by default:
This means fewer TCP connections are opened/closed saving cpu and memory.

Request pipelining:
Client can make multiple requests without waiting for each response before making next request.

Limit of max 2 connections per server(later relaxed).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How did HTTP/2 solve (HTTP) Head of Line blocking?

A

Framing:
To avoid HoL blocking HTTP/2 multiplexes requests over the same TCP connection, so client can make multiple requests to a server without having to wait for the previous ones to complete since responses can arrive in any order.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How does QUIC relate to HTTP/3?

A

HTTP/3 is the mapping of everything HTTP/2 onto a QUIC transport.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why is HTTP/3 needed?

A

HTTP/2 is not enough to properly eliminate HoL because TCP also suffers from it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What does QUIC offer in terms of transport services?

A

Multistreaming without HOL blocking

In- order, reliable delivery per stream

Shorter handshakes, immediate data (0-RTT) without hacks.

TLS encryption always mandatory.(forces end- to- end principle)

In- band connection identifier separate from IP pseudoheader (i.e. you can cache identifiers for later). Allows connection migration and resume stale ones.

Everything implemented in user space since it is on top of UDP, makes changing QUIC easier.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What kind of congestion control does QUIC use?

A

QUIC is still based on TCP congestion control.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How does HTTP/3 adapt HTTP/2 to take advantage of QUIC?

A

Multistreaming (drop HTTP- level multistreaming and use QUIC streams instead)

Special control streams: separate request/ response streams from header streams.(single control stream on connection start is mandatory)

Different header compression: (QPACK instead of HPACK, needed to not suffer from HoL still)

Prioritization: HTTP/2 priority mapped onto QUIC stream priorities.

Server push: client explicitly limits number of allowable push streams.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How does HTTP/1.1 and HTTP/2 clients know that HTTP/3 is available?

A

Using the Alt- Svc (alternative services) header in respones.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What does the QUIC working group focus on?

A

Primarily HTTP/3, but there is also work being done/planned to make QUIC a more general message- oriented transport.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How does QUIC 0-RTT work?

A

By caching certain parameters from a previous connection, allowing the client to send data immediately without having to wait for a handshake to complete.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly