Sobes.tech
Back to questions
Senior
7

Какой транспортный протокол использует gRPC? В чём разница между HTTP/2 и HTTP/1.1?

Companies where asked
Lenta Tech

Answer from AI

sobes.tech AI

gRPC использует транспортный протокол HTTP/2 для передачи данных.

Основные отличия HTTP/2 от HTTP/1.1:

  • Мультиплексирование: HTTP/2 позволяет отправлять несколько запросов и получать ответы одновременно по одному TCP-соединению, что значительно снижает задержки. В HTTP/1.1 запросы обрабатываются последовательно или с ограниченным параллелизмом.

  • Бинарный протокол: HTTP/2 передаёт данные в бинарном формате, а не в текстовом, как HTTP/1.1. Это упрощает парсинг и повышает эффективность.

  • Сжатие заголовков: HTTP/2 использует HPACK для сжатия заголовков, уменьшая объём передаваемых данных.

  • Приоритезация потоков: HTTP/2 позволяет клиенту указывать приоритеты запросов, что помогает серверу оптимально распределять ресурсы.

  • Поддержка серверного push: HTTP/2 может отправлять ресурсы клиенту без явного запроса, что ускоряет загрузку.

Пример инициализации gRPC-сервера на Go (использует HTTP/2 под капотом):

import (
    "google.golang.org/grpc"
    "net"
)

func main() {
    lis, err := net.Listen("tcp", ":50051")
    if err != nil {
        panic(err)
    }
    grpcServer := grpc.NewServer()
    // Регистрация сервисов...
    grpcServer.Serve(lis)
}