ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

第二十八回スパルタンプログラミング

何がしたいか?何が問題か?を意識して変なとこでぐだぐだ考えないこと! 30分悩んで分からなかったら、早めにヘルプを出す。

12.08は帰社日。面談がある。12.10にはボーナスが出るからね!ロードの新フレームを買うのか、スキーに手を出すのか。それとも貯金して日本経済を圧迫してやるのか。

そんな来週が待つ、週末のこと。

やりたいこと

  • 何から手をつければ良いのかわからないのでそこを明確にしたい

やったこと

プロトコルネゴシエーションの調査

  • 先週調べた3.2節のプロトコル切り替え部分は簡単そうだからそこを切り口にやろっかなと思った。
  • 実装するとなるとテストしたいので、HTTP/2対応のブラウザ(firefoxchrome)がUpgradeヘッダ送ってくるか調べた。→送ってきません。さて?
  • 調べた結果1結果2

プロトコルネゴシエーションは使用スキーマが http か https かで方法が異なります。https の場合は TLS の拡張である NPN(Next Protocol Negotiation) もしくは ALPN(Application-Layer Protocol Negotiation) で行います。 http の場合は HTTP Upgrade を使用して、クライアントが いったん HTTP/1.1 で Upgrade ヘッダ付きリクエストをサーバーに送出し、Upgrade のトークンによって HTTP/2 にスイッチするという方針を取ります。 ただし主要ブラウザーベンダは TLS 拡張によるネゴシエートのみサポートする方針と取っており、HTTP Upgrade はそれほど積極的にサポートされていないのが現状です。

分かりやすい!

HTTPとHTTPS

そもそもHTTPSを全く知らん。

HTTPS自体はプロトコルではなく、SSL/TLSプロトコルによって提供されるセキュアな接続の上でHTTP通信を行うことをHTTPSと呼んでいる。

HTTP/2に対応する前にHTTPSに対応しよう!

SSL?TLS?

元はSSL(Secure Socket Layer)と呼ばれるプロトコルで、SSL 3.0の次のバージョンがTLS 1.0という関係(機能的にはほぼ同じ)にあるが、SSLという名称が既に広く定着していたため、実際にはTLSを指していてもSSLと表記したり、「SSL/TLS」「TLS/SSL」などと両者を併記したりすることが多い。

以下のシマンテックの資料が分かりやすかった。

SSLってどう実装するの?

サーベイサーベイっ!(ミサトさんでお願いします)

opensslを使おう。

selectからのSSL_readがこける

調査中。いっしーがいくつかヒントを拾ってくれた。

うーん、理解しきれないのと例が欲しいから、マスタリングTCP/IP SSL/TLS編を注文。

マスタリングTCP/IP SSL/TLS編

マスタリングTCP/IP SSL/TLS編

備考

HTTP2.0でなく、正式にはHTTP/2らしい