IP Library Granted Patent US 7,774,499
Granted Patent B1
US 7,774,499 · App. 10/699,439 · Granted Aug 10, 2010

Accelerating network communications

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 7,774,499
App. No.
10/699,439
Granted
Aug 10, 2010
Kind
B1
Abstract

There is disclosed a method for accelerating network communications. The method may be implemented on a server computer or other computing device. The method may exist as a software program and may be stored on a storage medium. The method may include receiving a request, forwarding the request to a server, receiving a response from the server, and reviewing the response to determine whether the response includes a native expiration. When the response does not include the native expiration, a calculated expiration for the response may be computed. The calculated expiration may be inserted into the response creating an amended response. The amended response may be forwarded to the client. When the response includes the native expiration, the response may be forwarded to the client. The amended response may be stored and provided to other requesters.

Claims (181)

1. A method for increasing the throughput of network communications performed by a network access provider server, the method comprising:

the network access provider server establishing a connection with a client computer

the network access provider server receiving a request for a requested object from a requester, wherein the requester is a web browser on the client computer

the network access provider server storing request information included in the request as request history data

the network access provider server forwarding the request to a server

the network access provider server receiving a response from the server

the network access provider server reviewing the response to determine whether the response includes a native expiration

when the response does not include the native expiration

the network access provider server computing a computed expiration for the response, including

the network access provider server evaluating whether the response includes a modification history

when the response includes the modification history,

the network access provider server computing a time-to-live for the res s onse based on an a e factor a current time and a value of the modification history

the network access provider server computing the computed expiration based on the current time and the time-to-live

when the response does not include the modification history,

the network access provider server retrieving a modification query value from the request history data based on a response type and a response location

when the modification query value is retrieved,

the network access provider server computing the time-to-live for the response based on an age factor, a current time and the modification query value,

the network access provider server computing the computed expiration based on the current time and the time-to-live

when the retrieving the modification query value is not successful,

the network access provider server forwarding the response to the requester

the network access provider server inserting the computed expiration into the response creating an amended response

the network access provider server forwarding the amended response to the requester, wherein the amended response includes the requested object

storing the amended response

the network access provider server providing the amended response to other requesters at other client computers that request the requested object, the providing achieved without additional communication with the server.

2. The method of claim 1 wherein the server comprises an origin server.

3. The method of claim 1 wherein when the response includes the native expiration, the network access provider server forwarding the response to the requester.

4. The method of claim 1 wherein the computed expiration is based on at least one of a response content type and a response resource identifier.

5. The method of claim 1 wherein the computed expiration is based on a time-to-live.

6. The method of claim 1 further comprising:

the network access provider server evaluating whether a content type of the response is appropriate;

the network access provider server performing the reviewing only when the content type of the response is appropriate.

7. The method of claim 6 wherein the network access provider server evaluating whether a content type of the response is appropriate comprises the network access provider server checking to determine whether the content type is in an appropriate type list.

8. The method of claim 7 wherein the appropriate type list comprises at least one of graphic, JavaScript, Cascading Style Sheet, portable document format (PDF), executable program, audio, video, and multimedia.

9. The method of claim 1 wherein the network access provider server receiving a request comprises the network access provider server storing request information as request history data.

10. The method of claim 1 wherein the request information includes a request resource identifier, a request content type, and a modification query when the modification query is present.

11. The method of claim 1 further comprising:

when the time-to-live is greater than a defined maximum, the network access provider server setting the time-to-live to be the defined maximum;

when the time-to-live is less than a defined minimum, forwarding the response to the requester.

12. The method of claim 1 wherein the request is a hyper-text transfer protocol (HTTP) get, the modification query value is an HTTP if-modified-since value, and the modification history value is an HTTP last-modified value.

13. A method for increasing the throughput of network communications performed by a the network access provider server, the method comprising:

the network access provider server establishing a connection with a client computer

the network access provider server receiving a request for a requested object from a requester, wherein the requester is a web browser on the client computer

the network access provider server storing request information included in the request as request history data

the network access provider server forwarding the request to a server

the network access provider server receiving a response from the server

the network access provider server evaluating whether the response has a status code that is actionable

when the status code is actionable,

the network access provider server reviewing the response to determine whether the response includes a native expiration

when the response does not include the native expiration

the network access provider server calculating a calculated expiration for the response including

the network access provider server evaluating whether the response includes a modification history

when the response includes the modification history,

the network access provider server computing a time-to-live for the response based on an a e factor, a current time and a value of the modification history

the network access provider server computing the calculated expiration based on the current time and the time-to-live

when the response does not include the modification history,

the network access provider server retrieving a modification query value from the request history data based on a response type and a response location

when the modification query value is retrieved,

the network access provider server computing the time-to-live for the response based on an age factor, a current time and the modification query value,

the network access provider server computing the calculated expiration based on the current time and the time-to-live

when the retrieving the modification query value is not successful,

the network access provider server forwarding the response to the requester

the network access provider server inserting the calculated expiration into the response creating an amended response

the network access provider server forwarding the amended response to the requester, wherein the amended response includes the requested object

the network access provider server storing the amended response

the network access provider server providing the amended response to other requesters on other client computers that request the requested object, the providing achieved without additional communication with the server

when the response includes the native expiration, the network access provider server forwarding the response to the requester

when the status code is not actionable, the network access provider server forwarding the response to the requester.

14. The method of claim 13 wherein the network access provider server evaluating whether the response has a status code that is actionable comprises the network access provider server checking to determine whether the response has a hyper-text transfer protocol (HTTP) status code of “OK” or “Not Modified”.

15. A method for increasing the throughput of network communications performed by a network access provider server, the method comprising:

the network access provider server establishing a connection with a client computer

the network access provider server receiving a request for a requested object from a requester, wherein the requester is a web browser on the client computer

the network access provider server storing request information from the request as request history data

the network access provider server forwarding the request to a server

the network access provider server receiving a response from the server

the network access provider server reviewing the response to determine whether the response includes a native expiration

when the response does not include the native expiration

the network access provider server evaluating whether a content type of the response is appropriate

when the content type of the response is appropriate

the network access provider server computing a calculated expiration for the response, including

the network access provider server evaluating whether the response includes a modification history

when the response includes the modification history,

the network access provider server computing a time-to-live for the response based on an age factor, a current time and a value of the modification history

the network access provider server calculating the calculated expiration based on the current time and the time-to-live when the response does not include the modification history,

the network access provider server retrieving a modification query value from the request history data based on a response type and a response location

when the modification query value is retrieved,

the network access provider server computing the time-to-live for the response based on an age factor, a current time and the modification query value,

the network access provider server calculating the calculated expiration based on the current time and the time-to-live when the retrieving the modification query value is not successful,

the network access provider server forwarding the response to the requester

the network access provider server inserting the calculated expiration into the response creating an amended response

the network access provider server forwarding the amended response to the requester, wherein the amended response includes the requested object

the network access provider server storing the amended response

the network access provider server providing the amended response to other requesters on other client computers that request the requested object, the providing achieved without additional communication with the server when the content type of the response is not appropriate,

the network access provider server forwarding the response to the requester

when the response includes the native expiration,

the network access provider server forwarding the response to the requester.

16. The method of claim 15 wherein the network access provider server evaluating whether a content type of the response is appropriate comprises the network access provider server checking to determine whether the content type is a graphic image.

17. The method of claim 16 wherein the network access provider server evaluating whether a content type of the response is appropriate comprises the network access provider server checking to determine whether the content type is one of a Graphics Interchange Format (GIF) file or Joint Photographic Experts Group (JPEG) file.

18. The method of claim 15 wherein the network access provider server evaluating whether a content type of the response is appropriate comprises the network access provider server checking to determine whether the content type is in an appropriate type list.

19. The method of claim 18 wherein the appropriate type list comprises at least one of graphic, JavaScript, Cascading Style Sheet, portable document format (PDF), audio, video, and multimedia.

20. The method of claim 15 wherein the calculated expiration is based on at least one of a response content type and a response resource identifier.

21. The method of claim 15 wherein the calculated expiration is based on a time-to-live.

22. The method of claim 15 wherein the network access provider server receiving a request comprises the network access provider server storing request information as request history data.

23. The method of claim 15 wherein the request information includes a request resource identifier, a request content type, and a modification query when the modification query is present.

24. The method of claim 15 further comprising:

when the time-to-live is greater than a defined maximum, the network access provider server setting the time-to-live to be the defined maximum;

when the time-to-live is less than a defined minimum, the network access provider server forwarding the response to the requester.

25. The method of claim 15 wherein the request is a hyper-text transfer protocol (HTTP) get, the modification query value is an HTTP if-modified-since value, and the modification history value is an HTTP last-modified value.

26. A storage medium having instructions stored thereon which when executed by a processor cause a network access provider server to perform operations comprising:

the network access provider server establishing a connection with a client computer

the network access provider server receiving a request for a requested object from a requester, wherein the requester is a web browser on the client computer

the network access provider server storing request information from the request as request history data

the network access provider server forwarding the request to a server

the network access provider server receiving a response from the server

the network access provider server reviewing the response to determine whether the response includes a native expiration

when the response does not include the native expiration

the network access provider server computing a computed expiration for the response, including

the network access provider server evaluating whether the response includes a modification history

when the response includes the modification history,

the network access provider server computing a time-to-live for the response based on an age factor, a current time and a value of the modification history

the network access provider server computing the computed expiration based on the current time and the time-to-live when the response does not include the modification history,

the network access provider server retrieving a modification query value from the request history data based on a response type and a response location

when the modification query value is retrieved,

the network access provider server computing the time-to-live for the response based on an age factor, a current time and the modification query value,

the network access provider server computing the computed expiration based on the current time and the time-to-live when the retrieving the modification query value is not successful,

the network access provider server forwarding the response to the requester

the network access provider server inserting the computed expiration into the response creating an amended response

the network access provider server forwarding the amended response to the requester, wherein the amended response includes the requested object

the network access provider server storing the amended response

the network access provider server providing the amended response to other requesters on other client computers that request the requested object, the providing achieved without additional communication with the server.

27. The storage medium of claim 26 wherein the server comprises an origin server.

28. The storage medium of claim 26 having further instructions stored thereon which when executed by the processor cause the network access provider server to perform further operations comprising: the network access provider server evaluating whether a content type of the response is appropriate; the network access provider server performing the reviewing only when the content type of the response is appropriate.

29. The storage medium of claim 28 wherein the network access provider server evaluating whether a content type of the response is appropriate comprises the network access provider server checking to determine whether the content type is in an appropriate type list.

30. The storage medium of claim 29 wherein the appropriate type list comprises at least one of graphic, JavaScript, Cascading Style Sheet, portable document format (PDF), audio, video, and multimedia.

31. The storage medium of claim 26 wherein

when the response includes the native expiration, the network access provider server forwarding the response to the requester.

32. The storage medium of claim 26 wherein the computed expiration is based on at least one of a response content type and a response resource identifier.

33. The storage medium of claim 26 wherein the computed expiration is based on a time-to-live.

34. The storage medium of claim 26 wherein the network access provider server receiving a request comprises the network access provider server storing request information as request history data.

35. The storage medium of claim 26 wherein the request information includes a request resource identifier, a request content type, and a modification query when the modification query is present.

36. The storage medium of claim 26 having further instructions stored thereon which when executed by the processor cause the network access provider server to perform operations further comprising:

when the time-to-live is greater than a defined maximum, the network access provider server setting the time-to-live to be the defined maximum

when the time-to-live is less than a defined minimum, the network access provider server forwarding the response to the requester.

37. The storage medium of claim 36 wherein the request is a hyper-text transfer protocol (HTTP) get, the modification query value is an HTTP if-modified-since value, and the modification history value is an HTTP last-modified value.

38. A network access provider server configured to accelerate network traffic delivery, the network access provider server comprising:

a processor

a memory coupled with the processor

a storage medium having instructions stored thereon which when executed cause the network access provider server to perform actions comprising

the network access provider server establishing a connection with a client computer

receiving a request for a requested object from a requester, wherein the requester is a web browser on the client computer

storing request information from the request as request history data

forwarding the request to a server

receiving a response from the server

reviewing the response to determine whether the response includes a native expiration

when the response does not include the native expiration

computing a computed expiration for the response, including

evaluating whether the response includes a modification history when the response includes the modification history,

computing a time-to-live for the response based on an age factor, a current time and a value of the modification history

computing the computed expiration based on the current time and the time-to-live

when the response does not include the modification history,

retrieving a modification query value from the request history data based on a response type and a response location

when the modification query value is retrieved,

computing the time-to-live for the response based on an age factor, a current time and the modification query value

computing the computed expiration based on the current time and the time-to-live

when the retrieving the modification query value is not successful, forwarding the response to the requester

inserting the computed expiration into the response creating an amended response

forwarding the amended response to the requester, wherein the amended response includes the requested object

storing the amended response

providing the amended response to other requesters on other client computers that request the requested object, the providing achieved without additional communication with the server.

39. The network access provider server of claim 38 wherein the server comprises an origin server.

40. The network access provider server of claim 38 having further instructions which when executed cause the processor to perform further operations comprising: evaluating whether a content type of the response is appropriate; performing the reviewing only when the content type of the response is appropriate.

41. The network access provider server of claim 40 wherein the evaluating whether a content type of the response is appropriate comprises checking to determine whether the content type is in an appropriate type list.

42. The network access provider server of claim 41 wherein the appropriate type list comprises at least one of graphic, JavaScript, Cascading Style Sheet, portable document format (PDF), audio, video, and multimedia.

43. The network access provider server of claim 38 wherein when the response includes the native expiration, forwarding the response to the requester.

44. The network access provider server of claim 38 wherein the computed expiration is based on at least one of a response content type and a response resource identifier.

45. The network access provider server of claim 38 wherein the computed expiration is based on a time-to-live.

46. The network access provider server of claim 38 wherein the receiving a request comprises storing request information as request history data.

47. The network access provider server of claim 38 wherein the request information includes a request resource identifier, a request content type, and a modification query when the modification query is present.

48. The network access provider server of claim 38 wherein the storage medium has further instructions stored thereon which when executed cause the computing device to perform further operations comprising:

when the time-to-live is greater than a defined maximum, setting the time-to-live to be the defined maximum

when the time-to-live is less than a defined minimum, forwarding the response to the requester.

49. The network access provider server of claim 48 wherein the request is a hyper-text transfer protocol (HTTP) get, the modification query value is an HTTP if-modified-since value, and the modification history value is an HTTP last modified value.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jun 19, 2017
From: SILICON VALLEY BANK
To: UNITED ONLINE, INC.
Reel/Frame 042902/0735 →
SECURITY INTEREST Recorded Apr 17, 2017
From: UNITED ONLINE, INC.
To: BANC OF CALIFORNIA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042031/0932 →
SECURITY AGREEMENT Recorded Aug 11, 2008
From: UNITED ONLINE, INC.
To: SILICON VALLEY BANK
Reel/Frame 021370/0112 →
RELEASE OF LIEN Recorded Jan 19, 2006
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: UNITED ONLINE, INC.; JUNO ONLINE SERVICES; NETZERO, INC.
Reel/Frame 017198/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2006
From: POPEK, GERALD; BLASER, SHANE; TAMURA, RANDALL; NGUYEN, THOD; WARREN, TERRY
To: UNITED ONLINE, INC.
Reel/Frame 017026/0444 →
GRANT OF SECURITY INTEREST Recorded Jan 5, 2005
From: UNITED ONLINE, INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 015546/0516 →