Yuki Watanabe's Blog

Yuki Watanabe's Blog

エンジニアリングと子育てについて

『Real World HTTP 第2版』を読みました

昨年12月に『Real World HTTP 第2版――歴史とコードに学ぶインターネットとウェブ技術』を読みました。WEBアプリケーション開発に必要な内容が凝縮されており、効率よくWEB技術について復習できました。読み終えてから1ヶ月ほど経過していますが、復習を兼ねて読んだ感想を記します。

感想

WEBアプリケーション開発に必要な内容が詰まった良い書籍でした。

  • 効率的にWEB技術を復習できた
  • curlコマンドを使えるようになった
  • GoでのHTTPクライアント、サーバーの作成方法がわかった

などの学びがありました。

フロントエンドとバックエンド(API)が分離されたアプリケーション開発をする際には、事前に読んでおくと開発効率を大きく上げられそうだと感じます。私がSPA(Single Page Application)構成のアプリケーション開発をする際に調べた内容が載っていることが多かったです。クッキーやmultipart/form-data形式でファイルの送信など、まさしく当時知りたかった内容でした。調査当時は体系だった情報を得られなかったため、自分がMDN等を読んで理解した内容を記事にしていました。

qiita.com

内容的は『WEBを支える技術」に通じる点が多く、比較すると『Real World HTTP 第2版』の方がより幅広い内容が載っています。しかし、本書の扱う範囲が広く詳細な記述は多くないため、認証やセキュリティなどの分野は他書で深堀ることも必要だと感じます。

身になった内容が多い一方で、Server-Sent EventsやWebSocketなどは触ったことがなく腹落ちできていない点があるので、必要になった際にまた読み返します。

残念だった点は、O'Reilly Japanで購入したEbookに含まれるepub形式のファイルを、mobi形式に変換すると文字化けしてしまいKindleで読めなかったことです。

著者は「渋川 よしき」さんです。渋川さんの書籍は、他にも『Goならわかるシステムプログラミング』を読んだことがありすが、こちらは低レイヤプログラミングをGoで学べる構成になっており、Goと低レイヤに興味があった当時の私にとってどストライクな内容でした。

よく使うcurlコマンドのオプション

本書では、curlコマンドでHTTPサーバーへリクエストを送りレスポンスを確認する過程があります。 適宜手を動かしながら本書を読み進めていたため、curlコマンドに慣れる事ができました。

ブラウザからアクセスすることで同様のリクエストを送ることはできますが、コマンドラインで操作した方が効率的なため、普段の開発でもcurlコマンドを積極的に使うようになりました。 せっかくなので、よく使うcurlコマンドのオプションをまとめておきます。

# オプションなし GETリクエストを送りレスポンスボディを出力する
curl http://localhost:3000/api

# -i オプション レスポンスヘッダー、レスポンスボディを出力する
curl -i http://localhost:3000/api

# -d --data オプション POSTリクエストを発行しレスポンスボディを出力する
curl -d http://localhost:3000/api '{"Foo": "Bar"}'

# -X オプション HTTPメソッドの指定する
curl -X PUT http://localhost:3000/api

# -o オプション 出力先を指定する
curl -o http://localhost:3000/api output.json

# -L オプション リダイレクト先の情報を取得する
curl -L http://localhost:3000/api

まとめ

  • 効率的にWEB技術を復習できた
  • curlコマンドを使えるようになった
  • GoでのHTTPクライアント、サーバーの作成方法がわかった