Claims
- 1. A secure networking device for use in mediating networking communications between a server and a plurality of clients configured to communicate via the Hypertext Transfer Protocol (HTTP), the secure networking device comprising:
an HTTP multiplexor/demultiplexor configured to receive HTTP requests from the plurality of clients via a plurality of client-side connections, and to route the requests from the plurality of clients to a target server over a common, secure, server-side connection to the server.
- 2. The secure networking device of claim 1, wherein the HTTP multiplexor/demultiplexor is further configured to receive a plurality of responses to the HTTP requests from the target server, via the common, secure, server-side connection, and to route each of the plurality of responses back to an originating client.
- 3. The secure networking device of claim 2, wherein the HTTP multiplexor/demultiplexor is further configured to compress each of the responses in real time before routing each response to an originating client.
- 4. The secure networking device of claim 3, wherein the responses are received in encrypted form at the HTTP multiplexor/demultiplexor from the target server, and where the HTTP multiplexor/demultiplexor is further configured to decrypt each responses, and encrypt it in real time before routing it to an originating client.
- 5. The secure networking device of claim 1, wherein the HTTP multiplexor/demultiplexor is configured to pre-establish the secure server-side connection prior to receiving the plurality of requests.
- 6. The secure networking device of claim 5, wherein the HTTP multiplexor/demultiplexor is configured to pre-establish the secure server-side connection on boot-up.
- 7. The secure networking device of claim 1, wherein the HTTP multiplexor/demultiplexor is configured to periodically tear down and reestablish the secure server-side connection.
- 8. The secure networking device of claim 1, wherein the server-side connection is one of a plurality of server-side connections to the target server, each server-side connection having an associated server-side device socket and a server socket.
- 9. The secure networking device of claim 8, wherein the HTTP multiplexor/demultiplexor is configured to select an optimal server socket to which to send each of the plurality of requests.
- 10. The secure networking device of claim 9, wherein the HTTP multiplexor/demultiplexor is configured to select an optimal server socket at least in part by examining response times of the server sockets.
- 11. The secure networking device of claim 9, wherein the HTTP multiplexor/demultiplexor is configured to select an optimal server socket at least in part by choosing a next server socket in a round robin.
- 12. The secure networking device of claim 8, wherein the number of server-side connections is smaller than the number of client-side connections, and the HTTP multiplexor/demultiplexor is configured to multiplex HTTP traffic between the larger number of client-side connections and the smaller number of server-side connections.
- 13. The secure networking device of claim 8, wherein the server-side connections connect to a plurality of servers, and the HTTP multiplexor/demultiplexor is configured to select a target server based on a characteristic of the request.
- 14. The secure networking device of claim 13, wherein the characteristic of the request is selected from the group consisting of content-type, content, and header.
- 15. The secure networking device of claim 1, wherein the target server is a front-end server and the secure server-side connection is a front-end secure server-side connection.
- 16. The secure networking device of claim 15, wherein HTTP multiplexor/demultiplexor is configured to set up the front-end secure server-side connection is set up using the Secure Socket Layer (SSL) protocol.
- 17. The secure networking device of claim 15, wherein the front-end server is a web server.
- 18. The secure networking device of claim 15, wherein the HTTP multiplexor/demultiplexor is further configured to pre-establish a secure server-side connection to a back-end server.
- 19. The secure networking device of claim 18, wherein the back-end server is selected from the group consisting of an application server and a database server.
- 20. The secure networking device of claim 18, wherein the HTTP multiplexor/demultiplexor is further configured to pre-establish the secure server-side connection to the back-end server using the Secure Socket Layer (SSL) protocol.
- 21. The secure networking device of claim 18, wherein the HTTP multiplexor/demultiplexor is further configured to periodically tear down and re-establish the secure server-side connection to the back-end server.
- 22. The secure networking device of claim 18, wherein the HTTP multiplexor/demultiplexor is further configured to receive requests from the front-end server and to route the requests to the back-end server over the pre-established secure server-side connection to the back-end server.
- 23. The secure networking device of claim 22, wherein the front-end server is one of a plurality of front-end servers, and HTTP multiplexor/demultiplexor is further configured to receive requests from the plurality of front-end servers and to route the requests from the plurality of front-end servers to the back-end server over the secure server-side connection to the back-end server.
- 24. A secure networking system, comprising:
a plurality of clients configured to initiate HTTP requests; a front-end server configured to serve HTTP responses in response to receiving HTTP requests from each of the clients; and a secure networking device configured to pre-establish a secure connection to the front-end server, and to connect to the plurality of clients via a plurality of secure client-side connections, wherein the secure networking device is further configured to receive a plurality of HTTP requests from the plurality of clients via the plurality of secure client-side connections, and to route the requests from the plurality of clients to the front-end server over the secure front-end server-side connection.
- 25. The secure networking system of claim 24, further comprising:
a back-end server configured to process requests from the front-end server; wherein the secure networking device is configured to pre-establish a secure back-end connection between the networking device and the back-end server, and to route traffic between the front-end server and back-end server, over the secure back-end connection, where the traffic is related to transactions requested by a plurality of originating clients.
- 26. A secure networking method for use in mediating communications between plurality of clients and one or more servers via a secure networking device, the method comprising:
pre-establishing a secure server-side connection between the secure networking device and a server; receiving requests at the secure networking device from the plurality of clients via plural client-side connections between the networking device and each of the clients; and sending the requests from the plurality of clients over the pre-established secure server-side connection.
- 27. The method of claim 26, further comprising:
before receiving the requests at the secure networking device, setting up the plurality of secure client-side connections using the Secure Socket Layer protocol.
- 28. The method of claim 26, further comprising:
decrypting the client requests at the networking device.
- 29. The method of claim 28, further comprising:
selecting an optimal server socket on the server for each request.
- 30. The method of claim 29, wherein the step of selecting an optimal server socket is accomplished at least in part by determining a least busy server-side socket on the networking device.
- 31. The method of claim 29, wherein the step of selecting an optimal server socket is accomplished at least in part by determining a next server socket in a round robin.
- 32. The method of claim 28, wherein the server is one of a plurality of servers connected to the networking device via secure server-side connections, the method further comprising:
selecting a target server for each request.
- 33. The method of claim 32, wherein the target server for each request is selected at least in part based on a characteristic of the request.
- 34. The method of claim 33, wherein the characteristic of the request is selected from a group consisting of content-type, content, and header.
- 35. The method of claim 28, further comprising:
re-encrypting each request and forwarding it to the server over the pre-established server-side connection.
- 36. The method of claim 35, further comprising:
receiving a response to each request from the server, via a pre-established secure server-side connection between the networking device and the server.
- 37. The method of claim 36, further comprising:
decrypting each response, at the networking device.
- 38. The method of claim 36, further comprising:
compressing each response, at the networking device.
- 39. The method of claim 36, further comprising:
sending each response to an originating client, via a client-side secure connection.
- 40. The method of claim 35, wherein the server is a front-end server and the secure server-side connection is a secure front-end server connection, the method further comprising:
pre-establishing a secure back-end server connection between the networking device and a back-end server; receiving a plurality of requests from the front-end server relating to transactions requested by a plurality of originating clients, via the secure front-end server connection; and sending the plurality of requests to the back-end server, via the pre-established, secure back-end server connection.
- 41. The method of claim 40, further comprising:
receiving responses from the back-end server via the pre-established, secure back-end server connection; and sending each response to an originating front-end server, via the pre-established, secure front-end server connection.
- 42. The method of claim 41, wherein the back-end server is selected from the group consisting of an application server and a database server.
- 43. The method of claim 40, wherein the front-end server is a web server.
- 44. The method of claim 26, further comprising:
periodically tearing down and reestablishing the secure server-side connection.
- 45. A computer networking device for mediating network communication between a plurality of clients and a server system configured to communicate via Hypertext Transfer Protocol (HTTP), the computer networking device comprising a Secure Socket Layer (SSL) multiplexor/demultiplexor configured to receive SSL-encapsulated HTTP requests from a plurality of the clients and to distribute those requests over an individual server TCP connection to a corresponding socket on the server system.
- 46. The computer networking device of claim 45, wherein the multiplexor/demultiplexor is further configured to receive SSL-encapsulated HTTP responses from the server system over the individual server TCP connection and to selectively route those responses to the clients via a plurality of client TCP connections.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/975,522, entitled “HTTP Multiplexor/Demultiplexor,” filed on Oct. 10, 2001, which in turn is a continuation-in-part of U.S. patent application Ser. No. 09/882,375, entitled “HTTP Multiplexor/Demultiplexor,” filed on Jun. 15, 2001, which in turn claims priority from U.S. Provisional Patent Application Ser. No. 60/239,552, entitled “HTTP Multiplexor/Demultiplexor,” filed on Oct. 10, 2000. This application also claims priority to U.S. Provisional Patent Application Ser. No. 60/287,188, entitled “Data Transfer System and Method,” filed on Apr. 27, 2001, and to U.S. Provisional Patent Application Ser. No. 60/308,234 entitled “Computer Networking Device,” filed on Jul. 26, 2001. The disclosures of all of these applications are incorporated herein by reference, in their entirety and for all purposes.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60239552 |
Oct 2000 |
US |
|
60287188 |
Apr 2001 |
US |
|
60308234 |
Jul 2001 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
| Parent |
09975522 |
Oct 2001 |
US |
| Child |
10136030 |
Apr 2002 |
US |
| Parent |
09882375 |
Jun 2001 |
US |
| Child |
09975522 |
Oct 2001 |
US |