RESTful Webサービス用クライアントAPIは,HttpURLConnection/HttpsURLConnectionクラスをラップしており,実際のHTTP通信についてはJDKが行っています。なお,以降では特に明記のないかぎり,HttpURLConnection/HttpsURLConnectionをまとめてHttpURLConnectionと呼びます。
仕組みについて次の図に示します。
図中の1.および2.では次の処理を行っています。
RESTful Webサービス用クライアントAPIは,エンティティボディリーダやエンティティボディライタを使用して,JavaオブジェクトやHTTPリクエストを相互にマーシャル・アンマーシャルしています。このため,ユーザプログラムが入力ストリームや出力ストリームを直接操作する必要はありません。
RESTful Webサービス用クライアントAPIは,トランスポート層の処理をHttpURLConnectionに委譲しています。また,プロパティやHTTPヘッダを設定するためのさまざまなビルトインメソッドを提供していますが,ビルトインメソッドに指定した値はそのままHttpURLConnectionに設定します。そのため,実際のHTTP通信やビルトインメソッドに指定した値を使用した処理はJDKが行います。