3章Go言語によるHTTP/1.0クライアントの実装

HTTPの基礎となる箱と、それを送受信するcurlコマンドの書き方について1章で学びました。

  • メソッドとパス

  • ヘッダー

  • ボディ

  • ステータス

本章では、Go言語を使って上記の内容を自由に送受信するコードの書き方を学びます。

caution

前章までは、curlコマンドにHTTP/1.0での実行オプション(--http1.0)を付けていましたが、この章では省略しています。実行時に「HTTP1.1」というプロトコルバージョンが表示されますが挙動に大きな違いはありません。

3.1 Go言語を使う理由

Googleが2007年に公開したGo言語は、他の言語と比較してさまざまな有用性を備えていてバランスが良いため、幅広く使われるようになってきています。

  • 他の言語とくらべてコンパクトな言語仕様と豊富な標準ライブラリ

  • コンパイルが動的スクリプト言語の実行並に高速で、型チェックが確実に行われる

  • 実行速度も高速で、マルチコアの性能を引き出しやすく、省メモリ

  • クロスコンパイルが簡単

  • アウトプットが単一バイナリになるため配布しやすい

これらに加えて、次のように教育用言語として優れているため、本書ではHTTPの実証コードの実装にGo言語を採用しています。

  • 言語仕様が他の言語よりも少なく、他の言語ユーザーが見ても挙動が理解しやすいため、擬似言語として優れている

  • コンパイル言語であり、構文や型のチェックが行われるため、入力の間違いに気づきやすい ...