2011-11-14 4 views
0

私は定期的にURLにhttp投稿要求メッセージを送信している(サードパーティのサーバを設定できます)。私のアプリケーションでは、桟橋サーバーを起動し、設定されたURLのデータを聞いてデータを読み込んでいます。
桟橋のようなサーバーを起動せずにサーバーから送信されたデータをリッスンすることができるのだろうか?サーバなしのhttppostリクエストメッセージを読む

+1

桟橋のないHTTPサーバーを使用できますか?はい、多くの選択肢があります。 HTTPサーバーなしでHTTPサーバーを使用できますか? No. –

答えて

2

自分でソケットを作成して、ポート80(または同様のもの)からHTTPリクエストを受け取ることができます。 http://download.oracle.com/javase/6/docs/api/java/net/ServerSocket.html

しかし、いくつかの問題があります。あなた自身がする必要があるオーバーヘッドはかなりあります。 HTTPリクエストを解析し、ヘッダーと本文を抽出します。ヘッダーに応じて、キャッシュや認証などの特定の処理を行う必要があります。実装する必要があることはたくさんあります。既存のWebサーバーを使用することは、通常、より良いアイデアです。それを書いた人々(通常)は、自分が行っていることを正確に知っているからです。

もう1つのオプションはApache HttpCoreライブラリ(http://hc.apache.org/httpcomponents-core-ga/index.html)です。あなたは自分のHttpサーバーを作成するために使用することができます...しかし、再び、あなたの世話をする必要がある多くのものがまだあります...

学習のためにそれをやりたい場合は、あなた自身。プロダクション用の場合は、一般的に使用されているWebサーバーを使用してください。

+0

桟橋のサーバーを起動するためのオーバーヘッドはありませんか?何千ものhttpリクエストメッセージが入ってきたら、jettyサーバーはいくつかのサーブレットスレッドを作成し、jvm実行時間の大部分を占めます – vjk

+1

しかし、jetty開発者はスケーリングについて考えていたので、jettyはそれらを処理する方法を知っています... tomcat/catalinaなどの異なるサーバーを試して、どれが自分の状況に最も適しているかを確認してください。いくつかのエッジケースでは、独自のサーバーを作成するのが良いかもしれませんが、私はその状況では、あなたが何かを棚から離れてうまくやっていると書いていると思います – klaustopher

+0

最後の点についてもっと同意できません。すべての正直なところ、HTTPサーバーなしでHTTPリクエストを受信する方法を既に求めている場合は、自分でHTTPサーバーを再作成することをお勧めします。 – BalusC

関連する問題