April 2020
Intermediate to advanced
496 pages
7h 33m
Japanese
本章では、7章のプロトコルの一部をGo言語で実装してみます。8章に関してはサーバー側で行うことが多く、それ以外もCSSや動画ストリーミングなので実装は省略します。
Go言語は2016年2月にリリースされた1.6から、標準でHTTP/2サポートが組み込まれています。HTTPS通信を行う設定をするだけで、4章で説明したNPN/ALPNネゴシエーションの候補にHTTP/2を表すh2が追加されます。クライアント・サーバーともに、ネゴシエーションで相手がHTTP/2をサポートしていることが確認できると、HTTP/2で通信を行います。
リスト9.1は、Googleと通信してプロトコルバージョンを確認するサンプルです。
package main
import (
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://google.com/")
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Printf("Protocol Version: %s\n", resp.Proto)
}
Go言語のHTTP/2サポートは環境変数によって制御できます。
環境変数 |
概要 |
|---|---|
|
クライアントのHTTP/2サポートを無効にする |
|
サーバーのHTTP/2サポートを無効にする |
|