Pipelining: cho phép gửi liên tiếp nhiều request trong một connection, tuy nhiên response trả về phải theo đúng thứ tự tương ứng với thứ tự của request.
Multiplexing: Cho phép trình duyệt gửi nhiều request đồng thời trong 1 connection duy nhất,
và nhận các response theo không cần theo thứ tự (response nào đến trước thì nhận trước).

Ví dụ thực tế:

Giả sử bạn cần order 10 món hàng trên amazon và dùng hình thức vận chuyển về nhà.

  • Với HTTP/1.1 dùng 1 connection duy nhất, bạn sẽ phải order từng món hàng một và chờ món hàng đó gửi về nhà rồi bạn mới được gửi order cho món hàng tiếp theo.

  • Với HTTP/1.1 dùng nhiều connections, bạn sẽ được gửi các order cùng lúc nhưng bị giới hạn. Ví dụ bạn chỉ được gửi 3 order cùng lúc.

  • Với HTTP/1.1 dùng pipelining, bạn sẽ được phép order 10 món hàng cùng lúc mà không phải chờ đợi để gửi order tiếp theo. Tuy nhiên các món hàng sẽ phải đến
    theo thứ tự bạn đã order. Trong trường hợp món hàng thứ 4 bạn đặt bị hết hàng, món hàng thứ 5 vẫn còn hàng và đã sẵn sàng để vận chuyển. Bạn phải chờ cho
    đến khi món hàng thứ 4 có hàng và chuyển về nhà bạn thành công rồi mới được nhận tiếp món hàng thứ 5.

  • Với HTTP/2, dùng multiplexing bạn có thể order tất cả các đơn hàng theo bất cứ thứ tự nào mà không bị delay như ở trên. Amazon sẽ gửi hàng về nhà bạn ngay khi hàng đã sẵn sàng.
    Và chúng sẽ đến nhà bạn mà có thể không theo thứ tự mà bạn đã order. Thậm chí một số đơn hàng có thể gộp cùng lại được với nhau và gửi về đến nhà bạn.
    Điều này sẽ càng tiết kiệm được nhiều thời gian cho bạn phải gặp người giao hàng nhiều lần.