Сервер: http.Handler (ServeHTTP), http.HandleFunc, http.ListenAndServe. Request - Method, URL, Header, Body. ResponseWriter - WriteHeader, Write, Header(). Клиент: http.Get/Post или http.Client с кастомным Transport и Timeout. Контекст для отмены и таймаута: NewRequestWithContext, клиент передает контекст в запрос. Не забывать закрывать Body ответа.
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { ... })
http.ListenAndServe(":8080", nil)
// client
req, _ := http.NewRequestWithContext(ctx, "GET", url, nil)
resp, err := client.Do(req)
defer resp.Body.Close()