Real World HTTPを読んだ (1章のみ)
なぜ読もうと思ったのか?
web業界に入って3年以上経つが、HTTPプロトコルについてちゃんと勉強したことがなかったので読んでみようとなった。
何を得たいか?
- HTTPについて体型形的に学んでみたい
- 実際にHTTPプロトコルはどのようにやりとりされているかを理解する
- HTTPに関連する技術の仕組みを理解する
所感
- GO言語のサンプルが手を動かしながらプロトコルのやりとりを見れるのが良い。この書籍なら目的を達成できそうではある。
- curlコマンドを動作をシミュレートする。curlの勉強にもなる。
- 背景も含めてすごく丁寧に解説されているので非常に読みやすいし、理解しやすい。
オススメです
Real World HTTP ―歴史とコードに学ぶインターネットとウェブ技術
- 作者: 渋川よしき
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
気になったところだけ、以下のメモに整理してみました。
気になったところだけメモ
1章 HTTP/1.0のシンタックス:基本となる4つの要素
- 最初のバージョンHTTP/0.9は、HTMLのドキュメントを取得するだけのシンプルなプトコロルだった。
HTTP/0.9でできないこと
HTTP/0.9からのリクエスト変更点
- メソッドが追加された(GET)
- HTTPバージョンが追加された
- ヘッダーが追加された(Host,User-Agent, Accept)
HTTP/0.9からのレスポンス変更点
- HTTPバージョンと3桁のスタータスコードが含まれる
- リクエストと同じヘッダーが含まれる
電子メールで使われていたヘッダーを使うことに
- ヘッダーは、「フィールド名:値」で構成
- ヘッダと本文の間に空行
- クライアントからサーバに送るヘッダ
- User-Agent、Referer、Authorization等
- サーバからクライアントに送るヘッダ
- Content-Type、Content-Lentgth,Content-Encoding,Date等
- X- から始めるヘッダは自由に使って良い
MIMEタイプ
メソッド
- GET、HEAD、POSTがある
- PUTとDELETEは、HTTP1.0の段階では必須でなかった
-
- 100番台:処理中の情報の伝達
- 200番台:成功時のレスポンス
- 300番台:サーバからクライアントへの命令。リダイレクトとか
- 400番台:クライアントエラー
- 500番台:サーバ内部のエラー
リダイレクト
URL
ボディ
- 1回のレスポンスごとに1ファイルを返す
- ボディはContent-Encodingで指定された圧縮アルゴリズムで圧縮できる
- この時、Content-Lengthは、圧縮後のデータサイズとなる
2章のレビューもたぶん書きます。