Go言語:HTTPサーバーの基本

HTTPサーバーの話

  • net/httpをimportしてちょろちょろするくらいで簡単にサーバーを立ち上げられる。
  • サーバーの処理はinterfaceで定義された関数に実装していく。
    • Handleでルーティング処理と、ルーティングさせるオブジェクトの設定。
    • ServeHTTPを実装することで、出力する内容を設定できる。
    • 直接関数を設定するなら、HandleFuncを使う。
    • ListenAndServeで、HTTPサーバーの起動。
  • 実装の内容
    • HandleHandleFuncに渡される引数はhttp.ResponseWriterhttp.Request
    • HandleHandleFuncListenAndServeよりも前に定義されているもののみ、サーバーに反映される。
  • 実装を進めれば、テンプレートも使用可能。
    • また後日。

Exercise

これ

簡単なHTTPサーバー

実行して、http://localhost:4000にアクセス。

  • レスポンスとして、各パスに適用した関数に書かれている文字列を返す。
  • プログラムを実行しているプロンプトの出力として、Servedという文字列と、http.Requestの内容が出力される。
    • リクエストの内容を取得するのも簡単そう。
  • ListenAndServeよりも後に書かれている/struct_outというAPIは実際にはアクセス出来ない。
    • net/http側の実装として404が返される。