Computer networking system and method with pre-fetching using browser specifics and cookie information
First Claim
Patent Images
1. An apparatus-implemented method comprising:
- in a case where (i) a web server is associated with a first URL and (ii) a client device has generated a first HTTP request, which is for the first URL, receiving by a proxy server from the web server a first HTTP response;
determining, in accordance with the first HTTP response, a second URL specified by the first HTTP response;
pre-fetching by the proxy server for the client device a second HTTP response in accordance with the second URL before receiving by the proxy server from the client device a second HTTP request, which is for the second URL, wherein the pre-fetching comprises (1) estimating, before receiving by the proxy server from the client device the second HTTP request for the second URL, cookie information that the client device would use if the client device were to generate the second HTTP request for the second URL, (2) generating by the proxy server, in accordance with the estimated cookie information, a third HTTP request, which is for the second URL, wherein the generating comprises determining, in accordance with the estimated cookie information, a cookie to be included in the third HTTP request, and (3) receiving by the proxy server from a web server associated with the second URL the second HTTP response;
receiving by the proxy server from the client device the second HTTP request for the second URL; and
comparing by the proxy server (a) cookie information from the third HTTP request, which was generated by the proxy server in accordance with the estimated cookie information and (b) cookie information from the second HTTP request, which was received from the client device,wherein the estimating comprises;
(1) determining whether the first HTTP request generated by the client device includes a cookie field comprising a cookie name attribute;
(2) in accordance with the determination that the first HTTP request generated by the client device includes a cookie name attribute, determining, in accordance with the cookie name attribute, whether the proxy server has previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute;
(3) in accordance with the determination that that the proxy server has not previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, estimating cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute; and
(4) in accordance with the determination that that the proxy server has previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, performing an operation comprising (a) comparing a hostname of the first HTTP request with a hostname obtained during the previous estimation of cookie attribute information, and (b) comparing a path of the first HTTP request with a path obtained during the previous estimation of cookie attribute information.
0 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, method, and non-transitory computer-readable medium comprising program code which when executed by an apparatus causes the apparatus to effect the method, for pre-fetching web content. Preferably, a proxy server performs the pre-fetching. Techniques such, for example, as executing Javascript in pre-fetched pages, modifying pre-fetched pages to address URL generation involving random numbers or dates, using cookie information or browser specifics when performing pre-fetching of pages, and injecting Javascript to measure response time may be performed, by way of example.
94 Citations
25 Claims
-
1. An apparatus-implemented method comprising:
-
in a case where (i) a web server is associated with a first URL and (ii) a client device has generated a first HTTP request, which is for the first URL, receiving by a proxy server from the web server a first HTTP response; determining, in accordance with the first HTTP response, a second URL specified by the first HTTP response; pre-fetching by the proxy server for the client device a second HTTP response in accordance with the second URL before receiving by the proxy server from the client device a second HTTP request, which is for the second URL, wherein the pre-fetching comprises (1) estimating, before receiving by the proxy server from the client device the second HTTP request for the second URL, cookie information that the client device would use if the client device were to generate the second HTTP request for the second URL, (2) generating by the proxy server, in accordance with the estimated cookie information, a third HTTP request, which is for the second URL, wherein the generating comprises determining, in accordance with the estimated cookie information, a cookie to be included in the third HTTP request, and (3) receiving by the proxy server from a web server associated with the second URL the second HTTP response; receiving by the proxy server from the client device the second HTTP request for the second URL; and comparing by the proxy server (a) cookie information from the third HTTP request, which was generated by the proxy server in accordance with the estimated cookie information and (b) cookie information from the second HTTP request, which was received from the client device, wherein the estimating comprises; (1) determining whether the first HTTP request generated by the client device includes a cookie field comprising a cookie name attribute; (2) in accordance with the determination that the first HTTP request generated by the client device includes a cookie name attribute, determining, in accordance with the cookie name attribute, whether the proxy server has previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute; (3) in accordance with the determination that that the proxy server has not previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, estimating cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute; and (4) in accordance with the determination that that the proxy server has previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, performing an operation comprising (a) comparing a hostname of the first HTTP request with a hostname obtained during the previous estimation of cookie attribute information, and (b) comparing a path of the first HTTP request with a path obtained during the previous estimation of cookie attribute information. - View Dependent Claims (2, 3)
-
-
4. A proxy server subsystem for use in a system comprising (1) a client device, (2) the proxy server subsystem, and (3) a web server, the proxy server subsystem comprising a processor and a memory storing instructions for execution by the processor to perform steps comprising:
-
(a) in a case where (i) the web server is associated with a first URL and (ii) a client device has generated a first HTTP request, which is for the first URL, receiving by the proxy server subsystem from the web server a first HTTP response, (b) determining by the proxy server subsystem, in accordance with the first HTTP response, a second URL specified by the first HTTP response, (c) pre-fetching by the proxy server subsystem for the client device a second HTTP response in accordance with the second URL before receiving by the proxy server subsystem from the client device a second HTTP request, which is for the second URL, wherein the pre-fetching comprises (1) estimating by the proxy server subsystem, before receiving by the proxy server subsystem from the client device the second HTTP request for the second URL, cookie information that the client device would use if the client device were to generate the second HTTP request for the second URL, (2) generating by the proxy server subsystem, in accordance with the estimated cookie information, a third HTTP request, which is for the second URL, wherein the generating comprises determining, in accordance with the estimated cookie information, a cookie to be included in the third HTTP request, and (3) receiving by the proxy server subsystem from a webserver associated with the second URL the second HTTP response; (d) receiving by the proxy server subsystem from the client device the second HTTP request for the second URL; and (e) comparing by the proxy server subsystem (i) cookie information from the third HTTP request, which was generated by the proxy server subsystem in accordance with the estimated cookie information, and (ii) cookie information from the second HTTP request, which was received from the client device, wherein the estimating comprises; (1) determining whether the first HTTP request generated by the client device includes a cookie field comprising a cookie name attribute; (2) in accordance with the determination that the first HTTP request generated by the client device includes a cookie name attribute, determining, in accordance with the cookie name attribute, whether the proxy server subsystem has previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute; (3) in accordance with the determination that that the proxy server subsystem has not previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, estimating cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute; and (4) in accordance with the determination that that the proxy server subsystem has previously estimated, corresponding to the cookie name attribute, cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, performing an operation comprising (a) comparing a hostname of the first HTTP request with a hostname obtained during the previous estimation of cookie attribute information, and (b) comparing a path of the first HTTP request with a path obtained during the previous estimation of cookie attribute information. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A proxy server subsystem for use in a system comprising (i) a client device, (ii) the proxy server subsystem, and (iii) a web server, the proxy server subsystem comprising a processor and a memory storing instructions for execution by the processor to perform steps comprising:
-
(a) in a case where (i) the web server is associated with a first URL and (ii) a client device has generated a first HTTP request, which is for the first URL, receiving by the proxy server subsystem from the web server a first HTTP response, (b) determining by the proxy server subsystem, in accordance with the first HTTP response, a second URL specified by the first HTTP response, (c) pre-fetching by the proxy server subsystem for the client device a second HTTP response in accordance with the second URL before receiving by the proxy server subsystem from the client device a second HTTP request, which is for the second URL, wherein the pre-fetching comprises (i) estimating by the proxy server subsystem, before receiving by the proxy server subsystem from the client device the second HTTP request for the second URL, cookie information that the client device would use if the client device were to generate the second HTTP request for the second URL, (ii) generating by the proxy server subsystem, in accordance with the estimated cookie information, a third HTTP request, which is for the second URL, wherein the generating comprises determining, in accordance with the estimated cookie information, a cookie to be included in the third HTTP request, and (iii) receiving by the proxy server subsystem from a webserver associated with the second URL the second HTTP response; (d) receiving by the proxy server subsystem from the client device the second HTTP request for the second URL; and (e) comparing by the proxy server subsystem (i) cookie information from the third HTTP request, which was generated by the proxy server subsystem in accordance with the estimated cookie information, and (ii) cookie information from the second HTTP request, which was received from the client device, wherein at least one of the following conditions is satisfied; (1) wherein the estimating cookie information comprises (a) determining in accordance with a cookie name attribute in the first HTTP request whether the proxy server subsystem has previously estimated cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, and (b) if the determination is not true, setting the cookie domain attribute in accordance with a hostname of the first HTTP request, setting the cookie path attribute to be the universal forward slash path, and setting the cookie expiration attribute to be never expire; (2) wherein the estimating cookie information comprises (a) determining in accordance with a cookie name attribute in the first HTTP request whether the proxy server subsystem has previously estimated cookie attribute information comprising a cookie domain attribute, a cookie path attribute, and a cookie expiration attribute, and (b) if the determination is true, determining whether to update the cookie path attribute in accordance with a longest common path determination between two paths; (3) wherein the estimating cookie information comprises calculating a longest common path between two paths; and (4) wherein the estimating cookie information comprises (a) determining a cookie domain attribute in accordance with a comparison between a plurality of hostnames associated with the same cookie name attribute, and (b) determining a cookie path attribute in accordance with a longest common path of a plurality of paths associated with the same cookie name attribute. - View Dependent Claims (22, 23, 24, 25)
-
Specification