今回は、CONNECTメソッドについて勉強していきたいと思います。情報安全確保支援士の午後問題にも出てくることがあったので、しっかりと理解していきたいと思います。
1. CONNECTメソッドとは?
概要
CONNECTメソッドとはWebサーバへリクエストを送る際に使うメソッドの一つです。特にHTTPS通信でWebサーバにリクエストを送る際に用います。他にはHTTP通信の際に使うGETメソッドなどがあります。
ではなぜHTTP通信の際とHTTPS通信の際で用いるメソッドが異なるのでしょうか。それは、HTTP通信とHTTPS通信で説明したデータの暗号化が関係してきます。
2. プロキシを介した通信のイメージ
前回の記事「HTTP通信とHTTPS通信」では、簡単にするためにブラウザとWebサーバの通信にDNSサーバやプロキシサーバを省略して説明させていただきました。しかし、今回はプロキシサーバが大きな意味を持ってくるので、プロキシサーバを介した通信のイメージを見ていきたいと思います。
プロキシサーバとは?
プロキシサーバとは、インターネット上にあるWebサーバに対し、ブラウザの代理として通信を行うサーバのことです。プロキシ(proxy)とは日本語に訳すと「代理」でその名の通りですね。プロキシサーバを介してWebサーバと通信をするメリットは、ここではざっくりとセキュリティのためと思ってください。
HTTP通信の場合
例えば、プー子’s blog(架空サイト)のとあるページ(http://pooko.net/archives/640)にアクセスしたいとします。
- ブラウザはプロキシサーバにリクエストを送ります。
- プロキシサーバはペイロードを抜き出して、対象のWebサーバにリクエストを送ります。
HTTPS通信の場合
こちらも同様の例で説明しますが、プー子’s blog(架空サイト)のとあるページ(http://pooko.net/archives/640)にアクセスしたいとします。違いをわかりやすくするため、まずはHTTP通信と同じくGETメソッドでプロキシサーバにリクエストを送る場合を考えます。
- ブラウザはプロキシサーバにリクエストを送ります。
- プロキシサーバはペイロードを抜き出したいのですが、暗号化されていて中身が見れず、Webサーバへリクエストを渡すことができません。
これでは困ってしまうので、GETメソッドではなくCONNECTメソッドを使用します。CONNECTメソッドは、Webサーバとブラウザの間にトンネルを作ってほしいと依頼するメソッドです。プロキシがトンネルを確立したら、ブラウザからのリクエストを内容を見ずにWebサーバに流します。そのため、流れは下記のようになります。
- ブラウザはプロキシサーバにリクエストを送ります。
- プロキシサーバはブラウザとWebサーバの間にトンネルを作ります。
- ブラウザはGETメソッドを使ってリクエストを送ります。(プロキシサーバは中身を見ずに右に受け流します。)
まとめ
今回はCONNECTメソッドについて勉強をしていきました。普段インターネットサーフィンをしていても全く意識しなくイメージしずらいので、今後パケット監視ソフトを使って実際に見てみたいと思います。
ここまでお読みいただきありがとうございました!
コメント