Computer networking system and method with pre-fetching using browser specifics and cookie information
First Claim
Patent Images
1. An apparatus-implemented method comprising:
- receiving by a proxy server, in a case where a client device had generated a HTTP GET request for a first URL, and a web server had generated a first HTTP response, the first HTTP response;
generating, by the proxy server, Javascript not present in the first HTTP response that, upon execution by a web browser of the client device, causes the client device web browser to (1) obtain at least one client-device-web-browser-characteristic selected from the group consisting of (i) browser screen height, (ii) browser screen width, (iii) browser window height, (iv) browser window width, (v) a characteristic reflecting whether the web browser has Java enabled, (vi) browser color depth, (vii) browser pixel depth, (viii) browser timezone, (ix) browser history length, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, (2) generate a second URL whose characters are selected in accordance with the at least one client-device-web-browser-characteristic, and (3) perform an HTTP operation using the second URL, thereby transmitting the at least one client-device-web-browser-characteristic to the proxy server, wherein the HTTP operation is a HTTP GET request or an HTTP POST request;
receiving, by the proxy server, the at least one client-device-web-browser-characteristic that was transmitted;
in a case where Javascript in the first HTTP response would upon execution by a web browser of the proxy server perform URL generation in accordance with at least one proxy-server-web-browser-characteristic of the web browser of the proxy server, the at least one proxy-server-web-browser-characteristic being selected from the group consisting of (i) browser screen height, (ii) browser screen width, (iii) browser window height, (iv) browser window width, (v) a characteristic reflecting whether the web browser has Java enabled, (vi) browser color depth, (vii) browser pixel depth, (viii) browser timezone, (ix) browser history length, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, modifying, by the proxy server, the Javascript in the first HTTP response so that upon execution of the modified Javascript by the web browser of the proxy server, one or more of the at least one proxy-server-subsystem-web-browser-characteristic is replaced with a correspondingly respective one or more of the at least one client-device-web-browser-characteristic when performing URL generation; and
executing, by the proxy server, the modified Javascript to generate a URL.
4 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.
-
Citations
21 Claims
-
1. An apparatus-implemented method comprising:
-
receiving by a proxy server, in a case where a client device had generated a HTTP GET request for a first URL, and a web server had generated a first HTTP response, the first HTTP response; generating, by the proxy server, Javascript not present in the first HTTP response that, upon execution by a web browser of the client device, causes the client device web browser to (1) obtain at least one client-device-web-browser-characteristic selected from the group consisting of (i) browser screen height, (ii) browser screen width, (iii) browser window height, (iv) browser window width, (v) a characteristic reflecting whether the web browser has Java enabled, (vi) browser color depth, (vii) browser pixel depth, (viii) browser timezone, (ix) browser history length, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, (2) generate a second URL whose characters are selected in accordance with the at least one client-device-web-browser-characteristic, and (3) perform an HTTP operation using the second URL, thereby transmitting the at least one client-device-web-browser-characteristic to the proxy server, wherein the HTTP operation is a HTTP GET request or an HTTP POST request; receiving, by the proxy server, the at least one client-device-web-browser-characteristic that was transmitted; in a case where Javascript in the first HTTP response would upon execution by a web browser of the proxy server perform URL generation in accordance with at least one proxy-server-web-browser-characteristic of the web browser of the proxy server, the at least one proxy-server-web-browser-characteristic being selected from the group consisting of (i) browser screen height, (ii) browser screen width, (iii) browser window height, (iv) browser window width, (v) a characteristic reflecting whether the web browser has Java enabled, (vi) browser color depth, (vii) browser pixel depth, (viii) browser timezone, (ix) browser history length, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, modifying, by the proxy server, the Javascript in the first HTTP response so that upon execution of the modified Javascript by the web browser of the proxy server, one or more of the at least one proxy-server-subsystem-web-browser-characteristic is replaced with a correspondingly respective one or more of the at least one client-device-web-browser-characteristic when performing URL generation; and executing, by the proxy server, the modified Javascript to generate a URL. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
2. A processor-implemented method comprising:
-
in a case where (a) a client device has generated a first HTTP request for a first URL and (b) a web server has generated a first HTTP response corresponding to the first URL, receiving, by a proxy server, first Javascript included in the first HTTP response, wherein the first Javascript upon execution by a device would generate a URL in accordance with Javascript window.innerHeight of a web browser of the device, Javascript window.innerWidth of the web browser of the device, and Javascript Date( ).getTimezoneOffset( ) of the web browser of the device; forwarding, by the proxy server to the client device, the first Javascript, whereby a web browser of the client device executes the first Javascript to generate a URL in accordance with Javascript window.innerHeight of the web browser of the client device, Javascript window.innerWidth of the web browser of the client device, and Javascript Date( ).getTimezoneOffset( ) of the web browser of the client device; modifying, by the proxy server, the first Javascript, which if executed by the proxy server prior to the modification would generate a URL in accordance with Javascript window.innerHeight of a web browser of the proxy server, Javascript window.innerWidth of the web browser of the proxy server, and Javascript Date( ).getTimezoneOffset( ) of the web browser of the proxy server, to (a) replace Javascript window.innerHeight with a static value corresponding to Javascript window.innerHeight of the web browser of the client device, (b) replace Javascript window.innerWidth with a static value corresponding to Javascript window.innerWidth of the web browser of the client device, and (c) replace Javascript Date( ).getTimezoneOffset( ) with a static value corresponding to Javascript Date( ).getTimezoneOffset( ) of the web browser of the client device, whereby the modified first Javascript, if executed by the proxy server, would generate a URL in accordance with the static value corresponding to Javascript window.innerHeight of the web browser of the client device, the static value corresponding to Javascript window.innerWidth of the web browser of the client device, and the static value corresponding to Javascript Date( ).getTimezoneOffset( ) of the web browser of the client device; and executing, by the proxy server, the modified first Javascript, whereby the static value corresponding to Javascript window.innerHeight of the web browser of the client device, the static value corresponding to Javascript window.innerWidth of the web browser of the client device, and the static value corresponding to Javascript Date( ).getTimezoneOffset( ) of the web browser of the client device are used in place of Javascript window.innerHeight of the web browser of the proxy server, Javascript window.innerWidth of the web browser of the proxy server, and Javascript Date( ).getTimezoneOffset( ) of the web browser of the proxy server, respectively, when generating a URL.
-
-
3. A proxy server subsystem used in a system comprising (1) a client device, (2) the proxy server subsystem, and (3) a web server, the proxy server subsystem comprising:
-
first receiving means for receiving, in a case where the client device had generated a HTTP GET request for a first URL, and the web server had generated a first HTTP response, the first HTTP response; generating means for generating Javascript not present in the first HTTP response that, upon execution by a web browser of the client device, causes the client device web browser to (1) obtain at least one client-device-web-browser-characteristic selected from the group consisting of (i) browser screen height, (ii) browser screen width, (iii) browser window height, (iv) browser window width, (v) a characteristic reflecting whether the web browser has Java enabled, (vi) browser color depth, (vii) browser pixel depth, (viii) browser timezone, (ix) browser history length, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, (2) generate a second URL whose characters are selected in accordance with the at least one client-device-web-browser-characteristic, and (3) perform an HTTP operation using the second URL, thereby transmitting the at least one client-device-web-browser-characteristic to the proxy server subsystem, wherein the HTTP operation is a HTTP GET request or an HTTP POST request; second receiving means for receiving the at least one client-device-web-browser-characteristic; modifying means for, in a case where Javascript in the first HTTP response would upon execution by a web browser of the proxy server subsystem perform URL generation in accordance with at least one proxy-server-subsystem-web-browser-characteristic of the web browser of the proxy server subsystem, the at least one proxy-server-subsystem-web-browser-characteristic being selected from the group consisting of (i) browser screen height, (ii) browser screen width, (iii) browser window height, (iv) browser window width, (v) a characteristic reflecting whether the web browser has Java enabled, (vi) browser color depth, (vii) browser pixel depth, (viii) browser timezone, (ix) browser history length, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, modifying the Javascript in the first HTTP response so that upon execution of the modified Javascript by the web browser of the proxy server subsystem, one or more of the at least one proxy-server-subsystem-web-browser-characteristic is replaced with a correspondingly respective one or more of the at least one client-device-web-browser-characteristic when performing URL generation; and executing means for executing the modified Javascript to generate a URL, wherein a processor and memory are included in the proxy server subsystem.
-
-
4. A proxy server for use in a system comprising a client device, the proxy server, and a web server, the proxy server comprising:
-
a memory; and a processor coupled to the memory, wherein said processor is configured to; (a) in a case where the client device has generated a HTTP GET request for a first URL, receive from the web server, which is associated with the first URL, a first HTTP response corresponding to the first URL, (b) obtain first Javascript from the first HTTP response, (c) generate, and cause to be received by a web browser of the client device, second Javascript which, when processed by the client device web browser, causes the client device web browser to (1) obtain at least one client-device-web-browser-characteristic of the client device web browser, the at least one client-device-web-browser-characteristic being selected from the group consisting of (i) browser screen height, obtained from the Javascript window.screen.availHeight variable, (ii) browser screen width, obtained from the Javascript window.screen.availWidth variable, (iii) browser window height, obtained from the Javascript window.innerHeight variable, (iv) browser window width, obtained from the Javascript window.innerWidth variable, (v) a characteristic indicating whether the web browser has Java enabled, obtained from the Javascript window.navigator.javaEnabled( ) property, (vi) browser color depth, obtained from the Javascript window.screen.colorDepth variable, (vii) browser pixel depth, obtained from the Javascript window.screen.pixelDepth variable, (viii) browser timezone, obtained from the Javascript Date( ).getTimezoneOffset( ) property, (ix) browser history length, obtained from the Javascript window.history.length variable, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, and (2) effect transmission, to the proxy server, of the at least one client-device-web-browser-characteristic, (d) receive, via a network connection, the at least one client-device-web-browser-characteristic, (e) in a case where the first Javascript would upon execution by the proxy server perform URL generation in accordance with at least one proxy-server-web-browser-characteristic of a web browser of the proxy server, the at least one proxy-server-web-browser-characteristic being selected from the group consisting of (i) browser screen height, obtained from the Javascript window.screen.availHeight variable, (ii) browser screen width, obtained from the Javascript window.screen.availWidth variable, (iii) browser window height, obtained from the Javascript window.innerHeight variable, (iv) browser window width, obtained from the Javascript window.innerWidth variable, (v) a characteristic indicating whether the web browser has Java enabled, obtained from the Javascript window.navigator.javaEnabled( ) property, (vi) browser color depth, obtained from the Javascript window.screen.colorDepth variable, (vii) browser pixel depth, obtained from the Javascript window.screen.pixelDepth variable, (viii) browser timezone, obtained from the Javascript Date( ).getTimezoneOffset( ) property, (ix) browser history length, obtained from the Javascript window.history.length variable, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, modify the first Javascript so that, upon execution of the modified first Javascript by the proxy server, one or more characteristics of the at least one client-device-web-browser-characteristic is used in place of a respectively corresponding one or more characteristics of the at least one proxy-server-web-browser-characteristic when performing URL generation, whereby a third URL is generated by the proxy server using the one or more characteristics of the at least one client-device-web-browser-characteristic, wherein (1) the modification of the first Javascript comprises inserting, in the first Javascript, Javascript that when executed overwrites, in the proxy server web browser, the one or more characteristics of the at least one proxy-server-web-browser-characteristic with the respectively corresponding one or more characteristics of the at least one client-device-web-browser-characteristic, or (2) the modification of the first Javascript comprises replacing a function call regarding a characteristic of the at least one proxy-server-web-browser-characteristic with a static value of a respectively corresponding characteristic of the at least one client-device-web-browser-characteristic, and (f) execute, by the proxy server, the modified first Javascript to generate the third URL.
-
-
5. A proxy server apparatus comprising:
-
a memory; and a processor coupled to the memory, wherein said processor is configured to; (a) receive, in a case where a client device has generated a HTTP GET request for a first URL, from a web server associated with the first URL, a first HTTP response corresponding to the first URL, (b) obtain first Javascript from the first HTTP response, (c) generate, and cause to be received by a web browser of the client device, second Javascript which, when processed by the client device web browser, causes the client device web browser to (1) obtain at least one client-device-web-browser-characteristic of the client device web browser, the at least one client-device-web-browser-characteristic being selected from the group consisting of (i) browser screen height, obtained from the Javascript window.screen.availHeight variable, (ii) browser screen width, obtained from the Javascript window.screen.availWidth variable, (iii) browser window height, obtained from the Javascript window.innerHeight variable, (iv) browser window width, obtained from the Javascript window.innerWidth variable, (v) a characteristic indicating whether the web browser has Java enabled, obtained from the Javascript window.navigator.javaEnabled( ) property, (vi) browser color depth, obtained from the Javascript window.screen.colorDepth variable, (vii) browser pixel depth, obtained from the Javascript window.screen.pixelDepth variable, (viii) browser timezone, obtained from the Javascript Date( ).getTimezoneOffset( ) property, (ix) browser history length, obtained from the Javascript window.history.length variable, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, and (2) effect transmission, to the proxy server apparatus, of the at least one client-device-web-browser-characteristic, (d) receive, via a network connection, the at least one client-device-web-browser-characteristic, (e) in a case where the first Javascript would upon execution by the proxy server apparatus perform URL generation in accordance with at least one proxy-server-apparatus-web-browser-characteristic of a web browser of the proxy server apparatus, the at least one proxy-server-apparatus-web-browser-characteristic being selected from the group consisting of (i) browser screen height, obtained from the Javascript window.screen.availHeight variable, (ii) browser screen width, obtained from the Javascript window.screen.availWidth variable, (iii) browser window height, obtained from the Javascript window.innerHeight variable, (iv) browser window width, obtained from the Javascript window.innerWidth variable, (v) a characteristic indicating whether the web browser has Java enabled, obtained from the Javascript window.navigator.javaEnabled( ) property, (vi) browser color depth, obtained from the Javascript window.screen.colorDepth variable, (vii) browser pixel depth, obtained from the Javascript window.screen.pixelDepth variable, (viii) browser timezone, obtained from the Javascript Date( )getTimezoneOffset( ) property, (ix) browser history length, obtained from the Javascript window.history.length variable, (x) browser identity, (xi) browser version, and (xii) a characteristic regarding installed browser plugins, modify the first Javascript so that, upon execution of the modified first Javascript by the proxy server apparatus, one or more characteristics of the at least one client-device-web-browser-characteristic is used in place of a respectively corresponding one or more characteristics of the at least one proxy-server-apparatus-web-browser-characteristic when performing URL generation, whereby a third URL is generated by the proxy server apparatus using the one or more characteristics of the at least one client-device-web-browser-characteristic, wherein (1) the modification of the first Javascript comprises inserting, in the first Javascript, Javascript that when executed overwrites, in the proxy server apparatus web browser, the one or more characteristics of the at least one proxy-server-apparatus-web-browser-characteristic with the respectively corresponding one or more characteristics of the at least one client-device-web-browser-characteristic, or (2) the modification of the first Javascript comprises replacing a function call regarding a characteristic of the at least one proxy-server-apparatus-web-browser-characteristic with a static value of a respectively corresponding characteristic of the at least one client-device-web-browser-characteristic, (f) execute, by the proxy server apparatus, the modified first Javascript to generate the third URL, (g) send, by the proxy server apparatus, third Javascript obtained from the first Javascript, the third Javascript lacking the modification, so that the client device receives the third Javascript without receiving the modification, and (h) prefetch on behalf of the client device, by the proxy server apparatus, the third URL.
-
Specification