HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。
Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。
Q&A
解決済
2回答
15814閲覧
総合スコア67
2グッド
2クリップ
投稿2015/08/20 04:02
2
Webアプリ内でHttpClient 4.3.6を利用し、あるサービスのAPIを叩いています。 その際に毎回コネクションを生成しているので、生成のコストが馬鹿にならないのでは?と思い DBアクセスのようにコネクションプーリングが行えないか、と考えたのですが可能でしょうか? またその際に利用できそうなライブラリ等がありましたら教えて頂けると嬉しいです。
●Webアプリ構成 Java 8 Tomcat 8 Spring 4.0.8
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
0
そもそも、HTTPは「1つのリクエストに1つのレスポンスを返す」というのが基本構造ですし、HTTPSでなければ認証も発生しませんので、接続コストは3wayハンドシェイク程度です。
とはいえ、World Wide Webの時代となると一気に複数ファイルのリクエストが当たり前になってきたので、Keep-aliveやSPDY→HTTP/2など、1コネクションで複数のリクエスト - レスポンスを流すという技術も普及してきています。
もっとも、Keep-aliveでは接続できる時間に限りがありますので、利用できるのが「一気に複数リクエストする場合」にほぼ限られます。また、HTTP/2はサーバ側の対応とHTTPS化が事実上必須で、向こうが対応していなければ打つ手はありまえん。
投稿2015/08/20 04:33
総合スコア146842
ベストアンサー
HTTPもコネクションプール的な事は可能ですが、長時間ソケットを開いているのは相手サーバーに迷惑です。 ふつうはソケットの接続数に限りがあるので、ソケットを開きっぱなしということは、他の接続ができないようになってしまいます。
なお、下記のサイトを見る限り何もしなくてもHttpClientを使うとコネクションをプールするようです。
参考: HttpClientとConnectionManagerとCLOSE_WAITと
投稿2015/08/20 04:31
退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
HTTP接続のプーリングは可能か?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。