2011-10-31 12 views
1

私はCPPで書かれたWebサーバーを持っています。私は、要求のサーバータイプを決定したい。つまり、要求がhttpまたはhttps URLに由来していますか?httpリクエストからサーバータイプを判断する

+2

'https'は暗号化された接続を必要とするあなたは本当に、同じネットワークポート上で' http'と 'https'を扱うことができません。 –

+1

http://またはhttps://は、サーバータイプではなく要求に使用されているプロトコルを定義しています... –

+0

実際のサーバーコードからわかりませんか?どのサーバーコードを使用していますか?HTTPSの場合は、セキュリティ保護されたリクエストについて確認できる余分なデータを通過する可能性があります。 – Rup

答えて

4

C++で書かれた独自のWebサーバーを持っている場合は、別のポートを経由して別の処理が必要なため、httpまたはhttpsを経由してきたかどうかはすでに分かっています。

+0

問題はHTTPとHTTPの両方のサーバーが同じポートでリッスンしている、つまり両方のVIPSが同じポートを指していますか? – TopCoder

+0

"仮想IP"はポートではありません。 TCP/IPはIPアドレスを使用して特定の(仮想)マシンを識別し、TCPポート番号を使用してそのマシン上のサービスを識別します。 – MSalters

+1

仮想IPアドレスはポートとは異なります。通常は、ポート80でHTTPを受信し、ポート443でHTTPSを受信します(両方とも同じIPアドレスで受信します)。 – janm

3

あなたはどのポートを聴いていますか? デフォルトでは、HTTPS URLは「https://」で始まり、HTTP URLが「http://」で始まり、デフォルトでポート80を使用するポート443をデフォルトで使用します。

セキュリティで保護された接続を提供するために証明書を管理する方法などの他の質問がありますか?

この記事は役に立つかもしれません - http://java.sun.com/developer/technicalArticles/Security/secureinternet/

+0

問題はHTTPとHTTPの両方のサーバーが同じポートでリッスンしている、つまり両方のVIPSが同じポートを指していますか? – TopCoder

+1

httpとhttpsを同じポートに置くことが可能かどうかは疑問ですが、話す言語をどのように区別するのでしょうか? CONNECTメソッドを使用する場合は、通常、暗号化されていないHTTPプロキシを使用してSSL暗号化通信(HTTPS)を容易にするために、要求接続をトランスペアレントTCP/IPトンネルに変換できます。 (ウィキペディアを参照) 私がServerfaultで見つけた面白いスレッド - http://serverfault.com/questions/47876/handling-http-and-https-requests-using-a-single-port-with-nginx – sarat

関連する問題