← ко всем постам
2026-07-25 · #web

HTTP-сервер на стандартной библиотеке

Одна из сильных сторон Go — богатая стандартная библиотека. Полноценный веб-сервер пишется в несколько строк без единой внешней зависимости.

func main() {
    mux := http.NewServeMux()
    mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("ok"))
    })
    log.Fatal(http.ListenAndServe(":8080", mux))
}

Роутинг в Go 1.22+

В свежих версиях ServeMux научился разбирать методы и параметры пути прямо в паттерне: mux.HandleFunc("GET /users/{id}", handler). Раньше ради этого тянули сторонний роутер — теперь во многих случаях он не нужен.

Фреймворки вроде chi или gin по-прежнему полезны для крупных проектов, но начинать стоит со стандартной библиотеки — так лучше понимаешь, что происходит под капотом.