Tujuannya adalah untuk memperkenalkan protokol lapisan transport dan aplikasi yang lebih baik dalam latensi dan throughput jaringannya . Saat ini, aplikasi menggunakan REST dengan HTTP / 1.1 dan kami mengalami latensi tinggi. Saya perlu menyelesaikan masalah latensi ini dan saya terbuka untuk menggunakan gRPC (HTTP / 2) atau REST / HTTP2 .
HTTP / 2:
- Multiplexing
- Koneksi TCP Tunggal
- Biner, bukan tekstual
- Kompresi header
- Server Push
Saya menyadari semua keuntungan di atas. Pertanyaan No. 1: Jika saya menggunakan REST dengan HTTP / 2 , saya yakin, saya akan mendapatkan peningkatan kinerja yang signifikan jika dibandingkan dengan REST dengan HTTP / 1.1 , tetapi bagaimana ini dibandingkan dengan gRPC (HTTP / 2) ?
Saya juga mengetahui bahwa gRPC menggunakan buffer proto, yang merupakan teknik serialisasi biner terbaik untuk transmisi data terstruktur pada kabel. Buffer proto juga membantu dalam mengembangkan pendekatan agnostik bahasa. Saya setuju dengan itu dan saya dapat menerapkan fitur yang sama di REST menggunakan graphQL. Tetapi kekhawatiran saya adalah tentang serialisasi: Pertanyaan No. 2: Ketika HTTP / 2 mengimplementasikan fitur biner ini , apakah menggunakan buffer proto memberikan keuntungan tambahan di atas HTTP / 2?
Pertanyaan No. 3: Dalam hal streaming, kasus penggunaan dua arah , bagaimana gRPC (HTTP / 2) dibandingkan dengan (REST dan HTTP / 2)?
Ada begitu banyak blog / video di internet yang membandingkan gRPC (HTTP / 2) dengan (REST dan HTTP / 1.1) seperti ini . Seperti yang dinyatakan sebelumnya, saya ingin mengetahui perbedaan, manfaat membandingkan GRPC (HTTP / 2) dan (REST dengan HTTP / 2).