workspace/go/web/clientでclient.goファイルを作成する。
package main import ( "fmt" "log" "net/http" "net/http/httputil" ) func main() { resp, err := http.Get("http://localhost:8889") defer resp.Body.Close() if err != nil { log.Fatal(err) } dump, err := httputil.DumpResponse(resp, true) if err != nil { log.Fatal(err) } fmt.Println(string(dump)) }
resp, err := http.Get("http://localhost:8889")でサーバにアクセスする。dump, err := httputil.DumpResponse(resp, true)でサーバからクライアントに返ってきたレスポンスをdumpという変数で人が理解できる形でとってくる。
MING64のコマンドラインに下記のコードを入力する。
$ cd ~/workspace/go/server/
$ go run server.go
別の端末(MINGW64)を開き、下記のコードを入力する。
$ cd ~/workspace/go/client/
$ go run client.go
そうると、下記の画面がコマンドラインに表示される。これがクライアントが受け取るレスポンスである。
HTTP/1.1 200 OK
Content-Length: 68
Content-Type: text/html; charset=utf-8
Date: Thu, 14 Jun 2018 06:25:35 GMT
<html><head><title>app</title></head><body>hello world</body></html>
HTTP/1.1 200 OKは、httpのプロトコルが通信できたことを意味する。Content-Length: 68は、bodyの長さで、Content-Type: text/html; charset=utf-8は、charset=utf-8という言語でtextがhtmlで書かれていること意味する。
Date: Thu, 14 Jun 2018 06:25:35 GMTで、標準時間を表し、<html><head><title>app</title></head><body>hello world</body></html>がサーバーに書かれている内容である。