以下斜め読んだ内容

pseudo translation of useful posts, book reviews, remarks,etc. twitter: feeddict

SPDYメモ

  • ニュースサイト記事、ホワイトペーパー等々斜め読んだだけではイマイチ掴めないSPDY
  • 要するにこういうこと?、な話を箇条書き
  • 出典等は後から追加

以下羅列

  • HTTPを50%高速化?
  • SPDYの実装:サーバー、ライブラリ
    • experimentalなものもリリースされたもの、言語別、色々出てる
    • SPDY公式サイトにリストあり
    • SPDY - The Chromium Projects
  • SPDYの実装:ブラウザ
    • chromefirefoxkindle fireに入ってるブラウザ(amazon silk)、で使える
    • ie、opera他はわからない
  • SPDYとセキュリティ
    • HTTP+TLSが安全だと思われる程度には安全
      • よくわからない
  • サイト高速化ネタからSPDYを見てみると。。。。
    • IE6時代同時接続数が2/hostだった
    • これだと増大するhttpリクエストを捌けない
    • 最近のブラウザは6/hostに増やし、なんとかhttpリクエストを捌こうとしてる
      • ブラウザによっては8/hostとかも、Androidは2.3では9/hostにしてたが4で6/hostに修正
      • Browserscopeに一覧
    • 6/hostでも足りない場合は当然ある
    • ただし、httpの仕組み上、使用中のコネクションで投げたリクエストに対応するレスポンスが戻らないと、次のリクエストを投げれない
    • ちなみにHTTP1.1のpipliningだと対応するレスポンス待たずに次のリクエスト出せるが
      • だけどブラウザで実装が進んでない。実装が難しい?
    • SPDYはコネクション1つでノンブロッキングに送受信できるようにして、高速化を図る
    • コネクション1つでやるメリットは他にも
  • SPDYの使いどころ
    • SSLが必要かつ、頻繁にリソース(css/js/img/json/etc..)の送受信があるような環境
      • 現状では有効な場面は限定される
      • ssl everywhereな世界になれば一変するが
    • SPDY接続は初期化コスト(=投げるパケット)が大きいから。頻繁な送受信がないと元が取れない
  • SPDYのデータ送受信の工夫
    • シングルコネクションでリクエスト/レスポンスの多重化、だけではない模様
    • httpヘッダを圧縮して送受信
      • cookieはmaxで4kbあるし、チリも積もると相当になる
  • SPDYがやってるhttpヘッダ圧縮のテクニック
    • zlib使うだけじゃなく色々工夫
    • 圧縮効率をアップ、データ量削減
    • よく使うhttpヘッダのイディオムを登録した専用のlookup辞書。圧縮・復元効率アップ
    • SPDY接続に必要なヘッダ行だけ残して残りは削除。データ量を削減
    • httpフィールドは全部小文字に置換。圧縮効率アップ
      • keep-aliveだったりKEEP-ALIVEだったり、とかしない
    • 他にもヘッダのデータサイズを削り、復元を高速化する工夫色々
  • SPDY PUSH?
    • SPDY Server Pushとも呼ばれる
    • いわゆるpush notificationとは別の文脈で定義された機能
    • ブラウザのキャッシュへダイレクトに、img/css/js/json/etc.を投げつける
    • 例えば、jsのロードと評価・実行を分離させるには従来js黒魔術が必要
      • object要素でロード、不正なMIMEタイプ指定してロード、とか
      • ブラウザのデフォルト動作は読込終わったら即実行
      • これが簡単にできるのは、メリットの1つとして言える?
    • 他にも色々な側面あるみたいだが
  • websocketとspdyどう違うわけ?競合技術?
  • フォーカスしてる問題が違う
    • spdyは高速化ネタの文脈にある
    • websocketにヘッダない
    • websocketだとcss/imgに正しいMIMEタイプ指定してデータ送れる?
    • リアルタイムwebとはオーバーラップしてるが直接結びつかない
  • websocket over spdy?
  • HTTP2.0とSPDY
    • SPDYのドラフトが取り込まれるのかとか、MSがちょっとアレンジしようとしてるとか
    • SPDYが解決しようとしてる問題が解決される仕様になってればいい話。
    • SPDY作者の一人がMS案へ寸評してた。
  • よいリソース探してる
    • 仕様のドラフト。ニュースサイトの記事。この両極の中間くらいなものが欲しい
    • ざっくり概要、使いどころがわかりそうなもの
    • E BOOKあり
      • The Pragmatic Bookshelf | The SPDY Book
      • 150pくらいで、コードサンプルがほぼnode。サンプルアプリはexpress使ってる
      • node v0.6以前の情報で書かれてる。zlibモジュールがない時代
      • サンプルアプリや解説で使われるnode-spdyモジュールは初期ver.
      • node-spdy v0.1系くらい。2012.4時点でv1.2.0に
      • v1.2.0では、依存モジュールがコアモジュールだけになるようリライトされてる
      • 2011.07の本(今改訂してる、良案pleaseとtweet)
      • Twitter / @spdybook: It's nearly time for work ...
      • 盛りだくさんの本
        • そのうち斜め読む
        • ネットワークプログラミングど素人にもやさしい書き方
        • 類似技術、併用できる関連テクニック(ex.SSL false start)のピックアップ
          • それぞれについてpro/con
        • spdy導入で必要になる、wiresharkつかったパケットのキャプチャーとか
        • openssl使ってオレオレ証明書の作り方とか検証とか