Sobes.tech
Назад к вопросам
Senior
4

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

Компании, где спрашивали
sber tech

Ответ от нейросети

sobes.tech AI

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.