hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Jakarta-httpclient Wiki] Update of "ConnectionManagementDesign" by RolandWeber
Date Sat, 28 Apr 2007 17:28:54 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-httpclient Wiki" for change
notification.

The following page has been changed by RolandWeber:
http://wiki.apache.org/jakarta-httpclient/ConnectionManagementDesign

The comment on the change is:
updated for HTTPCLIENT-649

------------------------------------------------------------------------------
  
  == Routes ==
  
+ The two most common type of routes have one or two hops, being either direct or through
exactly one proxy.
+ However, there are cases when connections have to be established through a chain of proxies
([https://issues.apache.org/jira/browse/HTTPCLIENT-649 HTTPCLIENT-649]).
- Route representation does not need to cover routes of arbitrary length. For practical purposes,
there will be at most two hops: target and proxy. A modifiable route representation is useful
for tracking. A non-modifiable route representation could be useful for lookup keys and return
values. A sophisticated connection manager will probably need different lookup keys though.
Options:
+ A modifiable route representation is useful for tracking. A non-modifiable route representation
could be useful for lookup keys and return values. A sophisticated connection manager will
probably need different lookup keys though. Options:
   * route interface plus both a modifiable and non-modifiable implementation, similar to
{{{StringBuilder}}} and {{{String}}}
   * modifiable route representation only, similar to {{{HostConfiguration}}} in !HttpClient
3.x
  The target and proxy can be represented by {{{HttpHost}}} objects. This identifies schemes
(HTTP, HTTPS) by their name. It does not cover cases where applications use different socket
factories for the same scheme. That's not likely to be a problem.
  [[BR]]
- Route length (direct/proxied), tunnelling state and layered/plain can be represented by
{{{boolean}}} values. Using {{{int}}} for the route length would allow for custom implementations
of more complex routes (with the interface option), but the restriction to two hops will probably
show up elsewhere too.
+ Route length (direct/proxied) for the two common cases, tunnelling state and layered/plain
can be represented by {{{boolean}}} values. Using {{{int}}} for the route length would allow
for custom implementations of more complex routes (with the interface option), but the restriction
to two hops will probably show up elsewhere too.
  Multiple levels of layering are hypothetical and therefore not considered.
  [[BR]]
- Generic {{{Object}}} instances can be used to represent connection based authentication
state. Two objects are required for proxy and target authentication. Comparison relies on
the generic {{{equals}}} method. Applications can use whatever is considered appropriate to
represent the authentication, for example:
+ Generic {{{Object}}} instances can be used to represent connection based authentication
state. Two objects are required for proxy and target authentication, assuming at most one
proxy. Comparison relies on the generic {{{equals}}} method. Applications can use whatever
is considered appropriate to represent the authentication, for example:
   * {{{CredentialsProvider}}} for NTLM authentication. If a route is requested with the same
{{{CredentialsProvider}}}, the same credentials would be available and so the authentication
state can be re-used.
   * {{{SSLSocketFactory}}} for TLS/SSL with client authentication. The socket factory uses
a unique key store, so the same credentials would be available and the authentication state
can be re-used.
   * A key store for TLS/SSL with client authentication. This is a variation of the {{{SSLSocketFactory}}}
option.

---------------------------------------------------------------------
To unsubscribe, e-mail: httpcomponents-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpcomponents-dev-help@jakarta.apache.org


Mime
View raw message