第二十八回スパルタンプログラミング
何がしたいか?何が問題か?を意識して変なとこでぐだぐだ考えないこと! 30分悩んで分からなかったら、早めにヘルプを出す。
12.08は帰社日。面談がある。12.10にはボーナスが出るからね!ロードの新フレームを買うのか、スキーに手を出すのか。それとも貯金して日本経済を圧迫してやるのか。
そんな来週が待つ、週末のこと。
やりたいこと
- 何から手をつければ良いのかわからないのでそこを明確にしたい
やったこと
プロトコルネゴシエーションの調査
- 先週調べた3.2節のプロトコル切り替え部分は簡単そうだからそこを切り口にやろっかなと思った。
- 実装するとなるとテストしたいので、HTTP/2対応のブラウザ(firefoxとchrome)が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がこける
調査中。いっしーがいくつかヒントを拾ってくれた。
- Windows Select API on OpenSSL
- Secure programming with the OpenSSL API, Part 1: Overview of the API
- BIO
うーん、理解しきれないのと例が欲しいから、マスタリングTCP/IP SSL/TLS編を注文。
- 作者: Eric Rescorla,齋藤孝道,古森貞,鬼頭利之
- 出版社/メーカー: オーム社
- 発売日: 2003/11
- メディア: 単行本
- 購入: 4人 クリック: 68回
- この商品を含むブログ (20件) を見る
備考
HTTP2.0でなく、正式にはHTTP/2らしい