IP Library Granted Patent US 8,010,699
Granted Patent B2
US 8,010,699 · App. 12/836,460 · Granted Aug 30, 2011

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 8,010,699
App. No.
12/836,460
Granted
Aug 30, 2011
Kind
B2
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 (121)

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 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,

computing a time-to-live for the response based on an a first group of information

computing the computed expiration based on a 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 a second group of information

 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

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

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

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

3. 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.

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

5. 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.

6. The method of claim 5 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.

7. The method of 6 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.

8. 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.

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

10. The method of claim 8

wherein the first group of information includes an age factor, the current time and a value of the modification history

wherein the second group of information includes the age factor, the current time and the modification query value.

11. The method of claim 10 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 11 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 nontransitory 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 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,

computing a time-to-live for the response based on an a first group of information

computing the computed expiration based on a 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 a second group of information

 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

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

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

14. The nontransitory storage medium of claim 13 wherein the server comprises an origin server.

15. The nontransitory storage medium of claim 13 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.

16. The nontransitory storage medium 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.

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

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

19. The nontransitory storage medium of claim 13 wherein the computed expiration is based on a time-to-live.

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

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

22. The nontransitory storage medium of claim 20

wherein the first group of information includes an age factor, the current time and the value of the modification history

wherein the second group of information includes the age factor, the current time and the modification query value.

23. The nontransitory storage medium of claim 22 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.

24. The nontransitory storage medium of claim 23 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.

25. 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

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 the network access provider server 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 a first group of information

 computing the computed expiration based on a 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 a second group of information

 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

when the response includes the native expiration, forwarding the response to the requester.

26. The network access provider server of claim 25 wherein the server comprises an origin server.

27. The network access provider server of claim 25 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.

28. The network access provider server of claim 27 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.

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

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

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

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

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

34. The network access provider server of 32

wherein the first group of information includes an age factor, the current time and a value of the modification history

wherein the second group of information includes the age factor, the current time and the modification query value.

35. The network access provider server of claim 34 wherein the storage medium has further instructions stored thereon which when executed cause the 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.

36. The network access provider server of claim 35 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 (2)
SECURITY INTEREST Recorded Apr 17, 2017
From: UNITED ONLINE, INC.
To: BANC OF CALIFORNIA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042031/0932 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2010
From: POPEK, GERALD; BLASER, SHANE; TAMURA, RANDALL; NGUYEN, THOD; WARREN, TERRY
To: UNITED ONLINE, INC.
Reel/Frame 025198/0577 →