golangのHTTPサーバは、少量のコードで動くものを作ることができます。内部的には、net/httpパッケージのServerとHandlerで構成されます。 Serverは名前の通り、Serveするもので、HTTPをどのネットワークソースで提供するかを定義するものです。 Handlerは、HTTPリクエストを実際にどう処理するかを抽象化したinterfaceで、ServeHTTP(w http.ResponseWriter req *http.Request)を提供しています。 しかし、これらは簡易に使う場合、見えなくなっています。どうしてそうなっているかを理解することで、幾つかのテクニックを知ることができます。 コードが短くなる過程 よく例として出てくるHTTPサーバの実装例は以下のコードです。 通常版 package main import ( "net/http" ) func