System and method for improving Internet communication by using intermediate nodes
A method for fetching a content from a web server to a client device is disclosed, using tunnel devices serving as intermediate devices. The client device accesses an acceleration server to receive a list of available tunnel devices. The requested content is partitioned into slices, and the client device sends a request for the slices to the available tunnel devices. The tunnel devices in turn fetch the slices from the data server, and send the slices to the client device, where the content is reconstructed from the received slices. A client device may also serve as a tunnel device, serving as an intermediate device to other client devices. Similarly, a tunnel device may also serve as a client device for fetching content from a data server. The selection of tunnel devices to be used by a client device may be in the acceleration server, in the client device, or in both. The partition into slices may be overlapping or non-overlapping, and the same slice (or the whole content) may be fetched via multiple tunnel devices.
1. A method for anonymously fetching by a client device from a publicly-accessed web server that stores a web-site that comprises multiple web pages, each identified using a distinct Uniform Resource Locator (URL), for use with a list of geographical locations, wherein the client device serves as a client device in a client-server architecture with a first server that is distinct from the web server, the method comprising:
storing, operating, or using, by the client device, a client operating system;
receiving, by the client device, the list of geographical locations;
selecting from the list, by the client device, a geographical location that is different from the geographical location of the client device when the client is currently selecting the geographical location;
sending, by the client device to the first server, multiple HyperText Transfer Protocol (HTTP) requests for two or more web pages out of the multiple web pages, wherein each of the two or more web pages is identified using the respective distinct URL;
sending, by the client device to the first server, the selected geographical location that is different from the geographical location of the client device;
receiving, by the client device from the first server, in response to the sending of the HTTP requests and the selected geographical location, the two or more web pages; and
constructing, by the client device, the web-site from the received two or more web pages,
wherein the web server is prevented from identifying the client device,
wherein the web server is prevented from identifying the geographical location of the client device when the client device is currently selecting the geographical location, and
wherein the selected geographical location that is different from the current geographical location of the client device is provided to the web server as the location of the client device that requested the two or more web pages.
2. The method according to claim 1 , further comprising executing, by the client device, an application, and wherein the using comprises using by the application.
3. The method according to claim 2 , wherein the application consists of, or comprises, a web browser.
4. The method according to claim 3 , wherein the web browser consists of, comprises of, or is based on, Microsoft Internet Explorer, Google Chrome, Opera™, Mozilla Firefox®, Safari, Opera Mini™, or Android web browser.
5. The method according to claim 2 , further comprising identifying, by the application, the two or more web pages out of the multiple web pages.
6. The method according to claim 1 , wherein the client device comprises, or consists of, a portable or mobile device that stores or operates a mobile operating system.
7. The method according to claim 6 , wherein the client device comprises, or consists of, a cellular telephone device.
8. The method according to claim 6 , wherein the mobile operating system is one out of Android version 2.2 (Froyo), Android version 2.3 (Gingerbread), Android version 4.0 (Ice Cream Sandwich), Android Version 4.2 (Jelly Bean), Android version 4.4 (KitKat), Apple iOS version 3, Apple iOS version 4, Apple iOS version 5, Apple iOS version 6, Apple iOS version 7, Microsoft Windows® Phone version 7, Microsoft Windows® Phone version 8, Microsoft Windows® Phone version 9, and Blackberry® operating system.
9. The method according to claim 1 , wherein each of the multiple web pages comprises, or consists of, a Hypertext Markup Language (HTML) object.
10. The method according to claim 1 , wherein the receiving, by the client device, of the list of geographical locations comprises receiving by the client device from the first server, the list of geographical locations.
11. The method according to claim 1 , wherein each of the multiple web pages includes, consists of, or comprises, a part or whole of files, text data, numbers, audio data, voice data, or any combination thereof.
12. The method according to claim 1 , wherein each of the multiple web pages includes, consists of, or comprises, multimedia data, video data, images, music data, computer programs, or any combination thereof.
13. The method according to claim 1 , wherein the client operating system consists or, comprises, or is based on, Microsoft Windows 7, Microsoft Windows XP, Microsoft Windows 8, Microsoft Windows 8.1, Linux, and Google Chrome OS, or any combination thereof.
14. The method according to claim 1 , wherein each of the geographical locations in the list consists of, or comprises, one out of a continent, a country, a region, a city, a street, a ZIP code, or a timezone.
15. The method according to claim 1 , wherein the geographical location is selected based on a geolocation.
16. The method according to claim 15 , wherein the geolocation is based on W3C Geolocation API.
17. The method according to claim 15 , for use with a database that associates IP addresses to geographical locations, wherein the geographical location is selected based on associating an IP address in the database.
18. The method according to claim 1 , wherein at least two of the multiple web pages have the same size.