Назад к вопросам
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.