Protobuf(Protocol buffers)
메세지를 주고 받는다.HTTP/1.1
에 깊이 의존한다. HTTP/1.1은 플레인 텍스트를 주고 받는 request - response 모델을 사용한다.gPRC
는 HTTP/2
프로토콜을 사용한다. HTTP/2
은 HTTP/1.1
과 동일한 시멘틱을 공유하지만 (e.g. GET
, POST
와 같은 메서드 / 헤더와 바디로 구성된 메세지 포맷 등) 메세지를 바이너리로 인코딩해서 주고 받는다는 커다란 차이가 있다.HTTP/1.0의 경우 매번 새로운 리퀘스트에 대해서 TCP 커넥션을 새로 만들어야 했으므로 시간과 리소스를 더 소비했다. 이에 비해 HTTP/1.1은 지속적인 연결(persistant connection)을 가능하게 해서 하나의 TCP 커넥션이 유지된 채로, 응답을 기다릴 필요 없이 여러 개의 리퀘스트를 보낼 수 있다.
TCP handshake
)Multiplexing
이라고 한다.https://code.tutsplus.com/tutorials/rest-vs-grpc-battle-of-the-apis—cms-30711 - REST와 gRPC의 차이에 대해 개략적으로 쉽게 소개
https://developers.google.com/web/fundamentals/performance/http2 - http 2.0피처에 대해 자세한 소개
https://www.digitalocean.com/community/tutorials/http-1-1-vs-http-2-what-s-the-difference - http/1.1과 http/2.0 비교