IP Library Granted Patent US 8,312,074
Granted Patent B2
US 8,312,074 · App. 11/439,330 · Granted Nov 13, 2012

Method for multipart encoding

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 8,312,074
App. No.
11/439,330
Granted
Nov 13, 2012
Kind
B2
Abstract

A system including a user agent configured to transmit request data to a content server, wherein the request data corresponds to a request for a web page; and an optimization server configured to receive a first response data corresponding to the request data from a content server, identify response object data within the first response data, query the content server for second response data that is associated with the identified response object data, and transmit optimized data to the user agent, wherein the contents of the optimized data can include the first response data and the second response data.

Claims (83)

1. A method comprising:

receiving from a client device a request for a web page and a request object list that identifies embedded request object data that has been stored at the client device, wherein the request object list is generated by querying a data cache, provides information for determining whether the embedded request object data is fresh, and is updated to include any existing cookie data corresponding to the embedded request object data as being stale if the embedded request object data is not fresh;

transmitting the request for the web page to a content server;

receiving first response data that corresponds to the request;

identifying embedded response object data within the first response data, wherein the embedded response object data refers to second response data;

acquiring the second response data from a content server based on the embedded response object data;

determining whether the embedded response object data does not match any embedded request object data;

marking second response data that is referenced by the non-matching embedded response object data; and

providing, at an optimization server, optimized data to the client device having a user agent that requested the web page, wherein the optimized data includes the first response data and the marked second response data, and the marked second response data is provided together with the first response data to the user agent.

2. The method of claim 1 , further comprising identifying the request object data within the request.

3. The method of claim 2 , further comprising determining whether the embedded response object data matches the request object data.

4. The method of claim 3 , further comprising determining whether the request object data is fresh or stale if the embedded response object data matches the request object data.

5. The method of claim 4 , further comprising indicating that the optimized data does not include the second response data referenced by the embedded response object data if the matching request object data is fresh.

6. The method of claim 4 , further comprising determining whether the content server verified that the matching request object data was fresh or stale if the request object data is stale.

7. The method of claim 6 , further comprising indicating that the optimized data includes the second response data referenced by the embedded response object data if the content server verifies that the matching request object data is stale.

8. The method of claim 6 , further comprising indicating that the optimized data does not include the second response data referenced by the embedded response object data if the content server verifies that the matching request object data is fresh.

9. The method of claim 8 , further comprising updating a freshness cache so that the client device can notify the user agent that a subsequent request object data that is marked as stale is fresh.

10. The method of claim 8 , further comprising updating content data from stale to fresh at a data cache of the user agent.

11. The method of claim 1 , further comprising determining whether the second response data referenced by the embedded response object data is to be downloaded to the user agent.

12. The method of claim 11 , wherein the optimized data includes the second response data if content data referenced by the embedded response object data is to be downloaded to the user agent.

13. The method of claim 11 , wherein the optimized data does not include the second response data if content data referenced by the embedded response object data is not to be downloaded to the user agent.

14. A method comprising:

receiving from a client device a request for a web page and a request object list that identifies embedded request object data that has been stored at the client device, wherein the request object list is generated by querying a data cache, provides information for determining whether the embedded request object data is fresh, and is updated to include any existing cookie data corresponding to the embedded request object data as being stale if the embedded request object data is not fresh;

receiving first response data corresponding to the web page from a content server;

identifying embedded response object data within the first response data, wherein the embedded response object data refers to second response data;

acquiring the second response data from a content server based on the embedded response object data;

determining whether the embedded response object data does not match any embedded request object data;

marking second response data that is referenced by the non-matching embedded response object data; and

transmitting, at an optimization server, optimized data that includes the first response data and the marked second response data, wherein the marked second response data is transmitted together with the first response data.

15. The method of claim 14 , further comprising determining whether the request includes a request object list.

16. The method of claim 15 , further comprising providing the request object list identifying the request object data within the request if the request includes a request object list.

17. The method of claim 16 , further comprising determining whether the embedded response object data matches the request object data.

18. The method of claim 17 , further comprising determining whether the request object data is fresh or stale if the embedded response object data matches the request object data.

19. The method of claim 18 , further comprising indicating that the optimized data does not include the second response data referenced by the embedded response object data if the request object data is fresh.

20. The method of claim 18 , further comprising verifying with the content server that the request object data was fresh or stale if the request object data is stale.

21. The method of claim 20 , further comprising indicating that the optimized data includes the second response data referenced by the embedded response object data if the request object data has been verified to be stale.

22. The method of claim 20 , further comprising indicating that the optimized data does not include the second response data referenced by the embedded response object data if the request object data has been verified to be fresh.

23. The method of claim 14 , further comprising determining whether the second response data referenced by the embedded response object data is to be downloaded to a user agent.

24. The method of claim 23 , wherein the optimized data includes the second response data if the second response data referenced by the embedded response object data is to be downloaded to the user agent.

25. The method of claim 23 , wherein the optimized data does not include the second response data if content data referenced by the embedded response object data is not to be downloaded to the user agent.

26. A method comprising:

transmitting at a client device a request for a web page to a content server, wherein the request is appended with a request object list that identifies embedded request object data that has been stored at the client device, wherein the request object list is generated by querying a data cache, provides information for determining whether the embedded request object data is fresh, and is updated to include any existing cookie data that is retrieved from a cookie cache and corresponds to the embedded request object data as being stale if the embedded request object data is not fresh; and

receiving optimized data that includes first response data together with marked second response data,

wherein the first response data is provided by the content server in response to the request, and

wherein the marked second response data has been generated using:

an identification of embedded response object data within the first response data, wherein the embedded response object data refers to second response data,

an acquisition of the second response data from a content server based on the embedded response object data,

a determination of whether the embedded response object data does not match any embedded request object data, and

a marking of second response data that is referenced by the non-matching embedded response object data.

27. The method of claim 26 , further comprising updating the request object list by marking the embedded request object data as being fresh if the embedded request object data is fresh.

28. The method of claim 26 , further comprising updating the request object list by marking the embedded request object data as being stale if the embedded request object data is not fresh.

29. A system comprising:

a client hardware device, having a user agent, configured to receive a request for a web page,

query a data cache to generate a request object list that identifies embedded request object data of the request,

determine whether the embedded request object data is fresh,

query a cookie cache to retrieve any existing cookie data corresponding to the embedded request object data as being stale if the embedded request object data is not fresh,

update the request object list to include the any existing cookie data, and

transmit the request for a web page and the request object list that identifies embedded request object data that has been stored at the client hardware device; and

an optimization server configured to

receive a first response data corresponding to the request from a content server,

identify embedded response object data within the first response data, wherein the embedded response object data refers to the second response data,

acquire the second response data from a content server based on the embedded response object data,

determine whether the embedded response object data does not match any embedded request object data,

mark second response data that are referenced by the non-matching embedded response object data, and

transmit optimized data to the user agent,

wherein the optimized data includes the first response data and the marked second response data, and the marked second response data is transmitted together with the first response data to the user agent.

30. A non-transitory computer-readable medium encoded with computer-implemented instructions, when executed, causing a computer to perform a method, the method comprising:

receiving from a client device a request for a web page and a request object list that identifies embedded request object data that has been stored at the client device, wherein the request object list is generated by querying a data cache, provides information for determining whether the embedded request object data is fresh, and is updated to include any existing cookie data corresponding to the embedded request object data as being stale if the embedded request object data is not fresh;

receiving first response data from a content server, wherein the first response data corresponds to a request for a web page;

identifying embedded response object data within the first response data, wherein the embedded response object data refers to second response;

acquiring the second response data from a content server based on the embedded response object data;

determining whether the embedded response object data does not match any embedded request object data;

marking second response data that is referenced by the non-matching embedded response object data; and

transmitting, at an optimization server, optimized data that includes the first response data and the marked second response data, wherein the marked second response data is transmitted together with the first response data.

31. A non-transitory computer-readable medium encoded with computer-implemented instructions, when executed, causing a computing device to perform a method, the method comprising:

transmitting a request for a web page to a content server, wherein the request is appended with a request object list that identifies embedded request object data that has been stored at a client device, wherein the request object list is generated by querying a data cache, provides information for determining whether the embedded request object data is fresh, and is updated to include any existing cookie data that is retrieved from a cookie cache and corresponds to the embedded request object data as being stale if the embedded request object data is not fresh; and

receiving optimized data that includes first response data together with marked second response data,

wherein the first response data is provided by the content server in response to the request, and

wherein the marked second response data has been generated using:

an identification of embedded response object data within the first response data, wherein the embedded response object data refers to second response data,

an acquisition of the second response data from a content server based on the embedded response object data,

a determination of whether the embedded response object data does not match any embedded request object data, and

a marking of second response data that is referenced by the non-matching embedded response object data.

Assignments (18)
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 →
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 →
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 →
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 May 11, 2022
From: BYTEMOBILE INNOVATIONS, LLC
To: CITRIX SYSTEMS, INC.
Reel/Frame 059894/0655 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 037289/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE, INC.
Reel/Frame 035440/0599 →
RELEASE OF SECURITY INTEREST Recorded Feb 20, 2015
From: PARTNERS FOR GROWTH III, L.P.
To: BYTEMOBILE, INC.
Reel/Frame 034991/0891 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 6, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031730/0322 →
THIS SUBMISSION IS TO CORRECT THE SPELLING OF THE RECEIVING PARTY (ASSIGNEE)'S STREET NAME IN THE ORIGINAL COVER SHEET RECORDED AT REEL/FRAME 030609/0389. THE ADDRESS NAME SHOULD BE WEST CYPRESS CREEK ROAD. Recorded Sep 17, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031287/0874 →
MERGER Recorded Jun 13, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 030609/0389 →
SECURITY AGREEMENT Recorded Dec 22, 2011
From: BYTEMOBILE, INC.
To: PARTNERS FOR GROWTH III, L.P.
Reel/Frame 027438/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2006
From: STAVRAKOS, NICHOLAS; KOOPMANS, FRED; KOOPMANS, CHRIS; AMBATKAR, PARIKSHIT
To: BYTEMOBILE, INC.
Reel/Frame 018041/0079 →