How do you handle HTTP server HTTP/2 in Go?

To handle HTTP/2 in Go, you need to create a server that supports HTTP/2. This can be achieved by creating an http.Server with the http2 package enabled. Here is an example:
HTTP2 Server

Example

package main

import (
	"fmt"
	"log"
	"net/http"

	"golang.org/x/net/http2"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hello, HTTP/2!")
	})

	server := &http.Server{
		Addr: ":8080",
	}

	http2.ConfigureServer(server, &http2.Server{})

	log.Fatal(server.ListenAndServeTLS("server.crt", "server.key"))
}

In this example, the http2.ConfigureServer function is used to enable HTTP/2 support for the server. The http.Server is then created with the desired configuration and starts listening on the specified port using ListenAndServeTLS.

Note that for HTTP/2 to work, the server must be served over HTTPS, so a certificate and key are required for TLS encryption. In the example above, the ListenAndServeTLS function is used to serve the server over HTTPS.


Most Helpful This Week