Как Go поддерживает HTTP/2?

Go поддерживает HTTP/2 на уровне стандартной библиотеки net/http без необходимости дополнительной настройки.

Короткий ответ

Что ответить на собеседовании

Go поддерживает HTTP/2 на уровне стандартной библиотеки net/http без необходимости дополнительной настройки. Встроенный HTTP-сервер автоматически использует HTTP/2, если соединение происходит по TLS и клиент поддерживает этот протокол. Это обеспечивает улучшенную производительность за счёт мультиплексирования запросов и сжатия заголовков.

Подробный разбор

Ответ с пояснениями

Go поддерживает HTTP/2 на уровне стандартной библиотеки net/http без необходимости дополнительной настройки. Встроенный HTTP-сервер автоматически использует HTTP/2, если соединение происходит по TLS и клиент поддерживает этот протокол. Это обеспечивает улучшенную производительность за счёт мультиплексирования запросов и сжатия заголовков.

Пример простого HTTP-сервера с поддержкой HTTP/2:

package main

import (
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello, HTTP/2!"))
}

func main() {
    http.HandleFunc("/", handler)
    // Запуск сервера с TLS, что автоматически включает HTTP/2
    log.Fatal(http.ListenAndServeTLS(":8443", "server.crt", "server.key", nil))
}

Для клиентов HTTP/2 поддерживается автоматически в http.Client при использовании TLS. Для более тонкой настройки можно использовать пакет golang.org/x/net/http2.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее