【書評】Real World HTTPを読んでみた

【書評】Real World HTTPを読んでみた

オライリーのReal World HTTPをとりあえず一周読んでみたので、理解したところ理解できてないところを自分の記録よう用にまとめたいと思います。

全体の流れ

この本ではHTTPがどのように発展してきたのかを時系列で追いながら解説されています。

HTTP/1.0から始まり、1.1、2.0と話が進んでいき、最初はコアな実装について学びどんどん最新の技術について学んでいくという流れです。

ところどころGo言語での実装の章があり、実際に動かしながら学んでいけます。

僕は全体の流れを掴みたかったので、実装の部分は軽く目を通しただけで実装はしていません。もう一度読む予定なので、そのときに実装までできたらと考えています。

HTTP/1.0

前半は全ての基礎となるHTTP/1.0(0.9)の話でした。

HTTPはheaderとbodyとmethod/pathとstatus codeの4要素から構成されていること、具体的にどのようなことができるプロトコルなのかが説明されています。

基本的な仕組みなのでサクサク進めることができました。ほとんど確認みたいなものです。

新しく理解したところ

中には今までなんとなくしか理解ができていなかったところもあり、この本を読んだことできっちり理解することができました。

 

本文の内容と直接関係はないですが、とても分かりやすい例え等もあり知ってる内容でも読んでいて飽きませんでした。

 

理解が足りないところ

Cacheまわりが相変わらず苦手というか難しいなと感じました。

ETagによる判定や、サーバーからの指定などあまり意識したことのないところも多くありまだまだ理解が足りないです。

 

また、これはこの章に限ったことではないのですが、プロキシが入ってきた通信やトランスポート層の絡むと一気に分からなくなるのでもう少しレイヤーを下げた部分もしっかり勉強します、、

 

HTTP1.1〜2.0

この辺りからほとんど知らない話ばかりでした。上述のトランスポート層の話が入ってきてどんどん迷子になりました。

理解したところ

web-socketなしでどのようにサーバーから情報を送信する方法として、ポーリングやロングポーリングがあることをしりました。

またクライアントがGPSを使わずに自分の居場所を推定する方法なども取り上げられていて面白い内容が多かったです。

JSON-RPCなどのRPCを使った、RESTとは違うアーキテクチャでのAPIの構築なども学びの一つです。

また、OAuth以外の認可・認証の方法も紹介されていたので実装してみようと思います。

 

HTTP2.0では、やっと身近に使われているセマンティクスが出てきたのでまだ理解できることが多かったです。ogpやJSON-LDなどは実装されているものをよく見るので理解しやすかったです。

セマンティックウェブはつまりbotなどのマシンにとって理解しやすい(=解析しやすい)インターフェイスを作ろうっていう取り組みと解釈して問題ないのかな?って感じです。

理解できなかったところ

特に理解ができなかったところとしては、WebRPC・ストリーミング周り・AMPです。

WebRPCがブラウザ間のP2Pを扱うプロトコル、ストリーミングが動画などを細かくパケット化して通信するもの、AMPがスマホに最適化したサイトを構築するもの、というところまでは理解できました。

が、それ以上の細かいところはほんとによくわかりませんでした。。

どれも触ってみるしかないのかなぁ、、

あとは、トランスポート層の知識が必要な部分もあったので、先にそっちの勉強をするのもいいのかなと思ったり。

 

セキュリティ周り・REST API

このあたりは基本的なことが多かったです。

一度どこかでしっかりと勉強していれば簡単に理解できることでしょう。