Как работает HTTP сервер в Go?

Junior
1.5k просмотров
AFK Offer AI

Стандартная библиотека net/http — полноценный production-ready сервер:

func main() {
    http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, %s!", r.URL.Query().Get("name"))
    })

// Для production — всегда создавай явный Server srv := &http.Server{ Addr: ":8080", ReadTimeout: 5 * time.Second, WriteTimeout: 10 * time.Second, IdleTimeout: 120 * time.Second, } log.Fatal(srv.ListenAndServe()) }

http.ServeMux — встроенный роутер (с Go 1.22 поддерживает методы и path params):

mux := http.NewServeMux()
mux.HandleFunc("GET /users/{id}", getUser)
mux.HandleFunc("POST /users", createUser)

Для graceful shutdown используй srv.Shutdown(ctx).

Следующий вопрос

Слайсы vs массивы?