- 締切済み
HTTPS(SSL)通信とサーブレットについて
ショッピングサイトなどで、買い物カゴに入れたあと、支払いするときにHTTPS(SSL)通信になりますが、この場合の仕組みがよくわかりません。 (1)これは、WebサーバをHTTP用とHTTPS(SSL)用の2台構成として、買い物カゴにいれるまでは、HTTP用のWebサーバでアクセスしておいて、支払いするときにHTTPS(SSL)用のWebサーバにアクセスさせることで実現してるのでしょうか? (2)ショッピングサイトを見ると、URLはHTTP://がHTTPS://に変わるだけで、サーバが変わっているようには見えませんが、これは、apacheなどのWebサーバが持つバーチャルホスト機能で実現してるのでしょうか? (3)アプリケーションを開発する側としては、HTTP通信を行うサーブレットはHTTP用のサーバに配置して、HTTPS(SSL)通信を行うサーブレットはHTTPS(SSL)用のサーバに配置しておいて、HTTPS(SSL)通信をしたいときは、HTTP用のサーバに配置したサーブレットから、HTTPS(SSL)用のサーバに配置したサーブレットを呼びだすだけでOKでしょうか? (4)また、(3)が正しい場合、サーブレットの配置さえ気にしていれば、特にHTTPS(SSL)用のプログラムを組む必要はないでしょうか? 調べたのですが、最初からHTTP(SSL)通信する場合の方法しか記載がなくて困っています。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
(1), (2) apache では同じサーバです。同一のサーバが両プロトコルをサポートしています。 (3) サーブレット側では特に意識しません。http と https でサーブレットを共用できます。 切り替えはサーバ側のやサーブレットのリダイレクトで行うことが多いですね。 (4) サーブレット側では意識しませんが、暗号化のため、apacheの仮想ホストの機能が制限されます。
補足
サーブレットのリダイレクトで、HTTPS(SSL)通信用のWebサーバのURLに飛ばすということですね。ありがとうございます。 私自身が大きく勘違いしてるかもしれませんが、回答で、「httpとhttpsでサーブレットを共用する」とありますが、https(SSL)用のルートディレクト配下にサーブレットを配置した場合、その配置されたサーブレットはhttps(SSL)として動くと思っていたのですか。。。根本的なことが分かっていないのかもしれません。