IP Library Granted Patent US 9,692,725
Granted Patent B2
US 9,692,725 · App. 14/448,265 · Granted Jun 27, 2017

Systems and methods for using an HTTP-aware client agent

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,692,725
App. No.
14/448,265
Granted
Jun 27, 2017
Kind
B2
Abstract

Systems and methods are described for using a client agent operating in a virtual private network environment to intercept HTTP communications. Methods include: intercepting at the network layer, by a client agent executing on a client, an HTTP request from an application executing on the client; modifying the HTTP request; and transmitting, via a transport layer connection, the modified HTTP request to a server. Additional methods may comprise adding, removing, or modifying at least one cookie in the HTTP request. Still other methods may comprise modifying at least one name-value pair contained in the HTTP request. Corresponding systems are also described.

Claims (31)

1. A method comprising:

(a) intercepting, by a client agent executing on a processor of a client device, one or more transport layer packets below an application layer of a network stack of the client device, the one or more transport layer packets comprising application layer content data of a web page from a server for a request from a user agent executing on the client device;

(b) identifying, by the client agent while operating below the application layer of the network stack of the client device, request object data from uniform resource locators (URLs) embedded in application layer content data contained in a payload of the intercepted one or more transport layer packets; and

(c) placing, by the client device, the request object data on a request object list;

(d) querying, by the client device, a data cache of the client device to determine whether the request object data of the request object list in stored in the data cache;

(e) marking, by the client device responsive to determining that request object data is not stored in the cache, in the request object list the request object data as to be downloaded to the client device; and

(f) transmitting, by the client device, the request object list including the request object data marked as to be downloaded to the client device to a second device.

2. The method of claim 1 , wherein (a) further comprises intercepting, by the client agent, the one or more transport layer packets, at a network layer of the network stack.

3. The method of claim 1 , wherein (a) further comprises intercepting, by the client agent, the one or more transport layer packets, at a transport layer of the network stack.

4. The method of claim 1 , wherein (b) further comprises inserting, in the application layer content data, information identifying a version of the request object data identified by the URL stored in the data cache.

5. The method of claim 1 , wherein (b) further comprises modifying a URL identified in the application layer content data.

6. The method of claim 1 , wherein (d) further comprises determining that a second requested object data of the request object list is stored in the data cache and is fresh and wherein (e) further comprises marking the second requested object data in the request object list as being fresh.

7. The method of claim 1 , wherein (d) further comprises determining that a second requested object data of the request object list is stored in the data cache and is stale; and wherein (e) further comprises marking the second requested object data in the request object list as being stale.

8. The method of claim 1 , wherein (e) further comprises determining that the requested object data marked as being stale or to be downloaded matches stored predicted request data in a predicted response cache.

9. The method of claim 8 , further comprising marking the requested object data in the request object list as not to be downloaded.

10. The method of claim 1 , wherein the second device is intermediary to the client device and a content server, the second device configured to obtain one or more requested object data in the request object list from one or more content servers.

11. A system comprising:

a client agent configured to execute on a processer of a client device and to intercept one or more transport layer packets below an application layer of a network stack of the client device, the one or more transport layer packets comprising application layer content data of a web page from a server for a request from a user agent executing on the client device;

wherein the client agent is configured to operate below the application layer of the network stack of the client device and to identify, while operating below the application layer of the network stack of the client device, request object data from uniform resource locators (URLs) embedded in application layer content data contained in a payload of the intercepted one or more transport layer packets; and

wherein the client device is configured to place the request object data on a request object list and query a data cache of the client device to determine whether the request object data of the request object list in stored in the data cache; and

responsive to determining that request object data is not stored in the cache, the client device is configured to mark in the request object list the request object data as to be downloaded to the client device; and

wherein the client device is configured to transmit the request object list including the request object data marked as to be downloaded to the client device to a second device.

12. The system of claim 11 , wherein the client agent is further configured to intercept the one or more transport layer packets, at a network layer of the network stack.

13. The system of claim 11 , wherein the client agent is further configured to intercept the one or more transport layer packets, at a transport layer of the network stack.

14. The system of claim 11 , wherein the client agent is further configured to insert in the application layer content data information identifying a version of the request object data identified by the URL stored in the data cache.

15. The system of claim 11 , wherein the client agent is further configured to modify a URL identified in the application layer content data.

16. The system of claim 11 , wherein the client device is further configured to determine that a second requested object data of the request object list is stored in the data cache and is fresh and mark the second requested object data in the request object list as being fresh.

17. The system of claim 11 , wherein the client device is further configured to determine that a second requested object data of the request object list is stored in the data cache and is stale and mark the second requested object data in the request object list as being stale.

18. The system of claim 11 , wherein the client device is further configured to determine that the requested object data marked as being stale or to be downloaded matches stored predicted request data in a predicted response cache.

19. The system of claim 18 , wherein the client device is further configured to mark the requested object data in the request object list as not to be downloaded.

20. The system of claim 11 , wherein the second device is intermediary to the client device and a content server, the second device is configured to obtain one or more requested object data in the request object list from one or more content servers.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2014
From: VENKATRAMAN, CHARU; HE, JUNXIAO; SONI, AJAY; STAVRAKOS, NICHOLAS; MONKS, JEFF; KOOPMANS, FRED; KOOPMANS, CHRIS; DAKHANE, KAPIL
To: CITRIX SYSTEMS, INC.
Reel/Frame 033843/0686 →