34 lines
1.9 KiB
Plaintext
34 lines
1.9 KiB
Plaintext
Reverse HTTP
|
|
|
|
The HTTP server paradigm is a valuable abstraction for browsing and accessing data and applications in a RESTful fashion from thin clients or
|
|
other applications. However, when it comes to mobile devices, the server paradigm is often not available because those devices exist on
|
|
restricted networks that do not allow inbound connections. These devices (eg. phones, tablets, industrial controllers, etc.) often have
|
|
signficant content (eg. photos, video, music, contacts, etc.) and services (eg. GPS, phone, modem, camera, sound) that are worthwile to access
|
|
remotely and often the HTTP server model is very applicable.
|
|
|
|
The Jetty reverse HTTP module provides a gateway that efficiently allows HTTP connectivety to servers running in outbound-only networks. There are two key components:
|
|
|
|
The reverse HTTP connector is a jetty connector (like the HTTP, SSL, AJP connectors) that accepts HTTP requests for the Jetty server instance. However, the reverse HTTP connector does not accept inbound TCP/IP connections. Instead it makes an outbound HTTP connection to the reverse HTTP gateway and uses a long polling mechanism to efficiently and asynchronously fetch requests and send responses.
|
|
|
|
The reverse HTTP gateway is a jetty server that accepts inbound connections from one or more Reverse HTTP connectors and makes them available as normal HTTP targets.
|
|
|
|
To demonstrate this from a source release, first run a gateway instance:
|
|
|
|
cd jetty-reverse-http/reverse-http-gateway
|
|
mvn exec:java
|
|
|
|
In another window, you can run 3 test servers with reverse connectors with:
|
|
|
|
cd jetty-reverse-http/reverse-http-connector
|
|
mvn exec:java
|
|
|
|
|
|
The three servers are using context path ID's at the gateway (virtual host and cookie based mappings can also be done), so you can access the
|
|
three servers via the gateway at:
|
|
|
|
http://localhost:8080/gw/A
|
|
http://localhost:8080/gw/B
|
|
http://localhost:8080/gw/C
|
|
|
|
|