Endpoint
and
ServerEndpoint
abstractions that use HTTP
messages sent over TCP sockets as the underlying communication
mechanism.See: Description
Class | Description |
---|---|
HttpEndpoint | |
HttpServerEndpoint |
An implementation of the
ServerEndpoint abstraction that
uses HTTP messages sent over TCP sockets (instances of ServerSocket ) for the underlying communication mechanism. |
Endpoint
and
ServerEndpoint
abstractions that use HTTP
messages sent over TCP sockets as the underlying communication
mechanism. HttpEndpoint
instances can be
used by clients to initiate calls over HTTP; each instance contains
the host name and TCP port number to which to connect, as well as an
optional SocketFactory
for customizing the type of
Socket
to use. HttpServerEndpoint
instances are used to listen
for and receive incoming calls over HTTP; each instance contains the
name of the listening host and the number of the TCP port on which to
listen, as well as an optional ServerSocketFactory
for customizing the type of ServerSocket
to use.
Note that providing socket factories which produce SSL sockets does
not result in endpoints which are fully HTTPS capable. HTTPS support
is offered by the net.jini.jeri.ssl
security provider.
HttpEndpoint
and HttpServerEndpoint
map
OutboundRequest
and
InboundRequest
instances to HTTP
request/response messages: request data is transmitted as the
entity-body
of an HTTP POST request, while response data is
transmitted as the entity-body
of the corresponding HTTP response
message. When possible, HTTP 1.1 persistent connections and chunked transfer
coding are employed. For information on HTTP, refer to
RFC 2616.
HttpEndpoint
consults the same set of system properties used by
HttpURLConnection
:
http.proxyHost
: if specified, the value of this property is
interpreted as the host name of the HTTP proxy to use. If
http.proxyHost
is not specified, then the proxyHost
system property is consulted as a fallback; if it is not specified either,
then HTTP proxying is disabled (i.e., all HTTP messages are sent directly to
the target host of the given HttpEndpoint
).
http.proxyPort
: if http.proxyHost
or
proxyHost
is set, then the (integer) value of
http.proxyPort
system property is used as the port number on
which to connect to the HTTP proxy; if unspecified, then the
proxyPort
property is consulted as a fallback. If neither
http.proxyPort
nor proxyPort
is specified (but
http.proxyHost
or proxyHost
is), then the HTTP
proxy port number defaults to 80.
http.nonProxyHosts
: if specified, the value of this property
is interpreted as a list of host name patterns, each delimited by the '|'
character. Individual host name patterns may be literal host
names/addresses, or partial host names/addresses containing the '*' character
as a wildcard. The '*' wildcard matches arbitrary (including zero-length)
spans of characters. If http.nonProxyHosts
is specified and the
name of the target host for a given outbound message matches at least one of
the patterns, then messages to that host will not be sent through the HTTP
proxy.
HttpEndpoint
supports both basic and digest HTTP authentication
methods, specified in RFC
2617. Like HttpURLConnection
, it obtains authentication
parameters (e.g., username, password) from the Authenticator
class.
HttpEndpoint
and HttpServerEndpoint
support
the transport layer aspects of at least the following constraints:
ConnectionAbsoluteTime
ConnectionRelativeTime
ConstraintAlternatives
if at
least one element is supported
Integrity.NO
Confidentiality.NO
ClientAuthentication.NO
ServerAuthentication.NO
Delegation.NO
ClientMaxPrincipal
ClientMaxPrincipalType
ClientMinPrincipal
ClientMinPrincipalType
ServerMinPrincipal
DelegationAbsoluteTime
DelegationRelativeTime
ClientMaxPrincipal
,
ClientMaxPrincipalType
, ClientMinPrincipal
,
ClientMinPrincipalType
, ServerMinPrincipal
,
DelegationAbsoluteTime
, and
DelegationRelativeTime
constraints are trivially
supported if ClientAuthentication.YES
,
ServerAuthentication.YES
, and Delegation.YES
are not supported.)