HTTP/2

What makes gRPC Efficient

gRPC menggunakan HTTP/2 sebagai Transfer Protocol, maka dari itu gRPC mewarisi berbagai fitur dari HTTP/2

  • Binary framing

    • more performant and robust ( lebih cepat dan konsisten )

    • Lighter to transport, safer to decode ( ringan dan aman )

    • Great combination with Protocol Buffer

  • Header compression dengan HPACK

    • Mengurangi overhead dan meningkatkan performa

  • Multiplexing

    • Mengirim multiple request dan response secara pararel dalam satu TCP connection

    • Mengurangi latency dan memperkuat network utilization

  • Server push

    • One client request, multiple responses

    • Mengurangi round-trip latency

Demo: http://www.http2demo.io/

grpc Stack

How HTTP/2 Works under the Hood

  • Satu TCP connection membawa multiple bidirectional streams

  • Setiap streams mempunyai unique ID dan membawa multiple bidirectinal messages

  • Setiap message ( request / response ) dibagi ke beberapa binary frames

  • Frame adalah unit terkecil yang membawa data : HEADERS, SETTINGS, PRIORITY, DATA, etc.

  • Frames dari stream yang berbeda akan di interleaved dan di reassemble di sisi lain

HTTP/2 vs HTTP/1.1

  • Pertama, HTTP/2 adalah binary protocol, sedangkan HTTP/1.1 adalah text protocol.

  • Headers di compress di HTTP/2, sedangkan berupa plain text di HTTP/1.1

  • HTTP/2 mengizinkan multiplexing, HTTP/1.1 tidak

  • Kita dapat mengirim multiple requests and responses dalam satu connection di HTTP/2, sedangkan di HTTP/1.1 kita hanya dapat mengirim satu, yang mana kita harus membuat multiple TCP connections untuk mengirim multiple requests.

  • Server-push is possible with HTTP/2, but tidak di HTTP/1.1

  • HTTP/2 diluncurkan pada 2015, sedangkan HTTP/1.1 diluncurkan pada 1997.

Last updated

Was this helpful?