Patentable/Patents/US-7305473
US-7305473

Provision of transparent proxy services to a user of a client device

PublishedDecember 4, 2007
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A proxy server for providing transparent proxy services to a user of a client device is provided. The proxy server receives a request from a browser for a unit of digital content, requests the unit of digital content from a remote server, receives the unit of digital content from the remote server, parses the unit of digital content for references to the remote server, identifies a reference within a software construct, inserts a software function into the modified remote page for modifying references, inserts a call to the software function into the software construct, modifies references to the remote server in the unit of digital content to form a modified unit of digital content by inserting a surrogate server hostname into the references and removing a remote server hostname from the references, and transmits the modified unit of digital content to the browser.

Patent Claims
85 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of providing transparent proxy services to a user of a client device, the client device having a browser for retrieving digital content from a data network, wherein the client device, a proxy server and a remote server are connected to the data network, the method comprising: the proxy server receiving a first request from the browser for a first unit of digital content, wherein there is a remote server hostname associated with the remote server and the first request includes the remote server hostname for referencing the first unit of digital content; the proxy server requesting the first unit of digital content from the remote server; the proxy server receiving the first unit of digital content from the remote server; the proxy server parsing the first unit of digital content for references to the remote server; the proxy server identifying a first reference within a software construct, wherein the software construct, when performed, would force a page reload by the browser; the proxy server inserting a first software function into the modified remote page for modifying references; the proxy server inserting a call to the first software function into the software construct, wherein the first reference is encapsulated in the function call; the proxy server modifying at least one reference to the remote server in the first unit of digital content to form a modified first unit of digital content by inserting a surrogate server hostname into the at least one reference and removing a remote server hostname from the at least one reference, wherein the surrogate server hostname is different from the remote server hostname; and the proxy server transmitting the modified first unit of digital content to the browser.

2

2. The method of providing transparent proxy services to a user of a client device of claim 1 , wherein there is a proxy server hostname associated with the proxy server, and the surrogate server hostname is the proxy server hostname.

3

3. The method of providing transparent proxy services to a user of a client device of claim 1 , the method further comprising the proxy server receiving a second request from the browser for a second unit of digital content, wherein the second request identifies the surrogate server hostname as a source of the second unit of digital content.

4

4. The method of providing transparent proxy services to a user of a client device of claim 3 , the method further comprising: the proxy server modifying the second request to a modified second request by removing the surrogate server hostname from the second request; and the proxy server transmitting the modified second request to the remote server.

5

5. The method of providing transparent proxy services to a user of a client device of claim 1 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, the modifying step comprising appending the surrogate server hostname to the remote server hostname in the at least one reference.

6

6. The method of providing transparent proxy services to a user of a client device of claim 1 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, wherein the at least one reference includes a local path, the modifying step comprising: inserting the surrogate server hostname into the at least one reference in place of the remote server hostname; and making the remote server hostname server part of the local path of the at least one reference.

7

7. The method of providing transparent proxy services to a user of a client device of claim 6 , wherein the remote server hostname comprises plural characters, the modifying step further comprising reversing the characters in the remote server hostname to thereby make the remote server hostname read backwards.

8

8. The method of providing transparent proxy services to a user of a client device of claim 7 , wherein the remote server hostname includes one or more periods (“.”), the modifying step further comprising changing the periods to slashes (“/”) in the reversed remote server hostname.

9

9. The method of providing transparent proxy services to a user of a client device of claim 7 , the modifying step further comprising inserting a separator between the reversed hostname of the remote server and the remainder of the path.

10

10. The method of providing transparent proxy services to a user of a client device of claim 9 wherein the separator comprises a caret (“^”).

11

11. The method of providing transparent proxy services to a user of a client device of claim 1 , the method further comprising inserting a base reference tag pointing to the surrogate server into the modified remote page.

12

12. The method of providing transparent proxy services to a user of a client device of claim 1 , the method further comprising determining if a base tag is present in the remote page, and if so, then modifying the base tag to point to the surrogate server by replacing the remote server hostname with the surrogate server hostname.

13

13. The method of providing transparent proxy services to a user of a client device of claim 1 , the parsing step comprising identifying a first reference, wherein the first reference is to be displayed by the browser and therefore would be visible to the user, the method further comprising not modifying the first reference.

14

14. The method of providing transparent proxy services to a user of a client device of claim 1 , the parsing step comprising identifying a first reference which is associated with any of the following HTML tags: <SRC=″″>, <HREF=″″>, <ACTION=″″>, “<META CONTENT=‘#;URL’>”; and the modifying step comprising modifying the first reference.

15

15. The method of providing transparent proxy services to a user of a client device of claim 1 , the parsing step comprising identifying a first reference, wherein the first reference ends with an extension indicating that content identified by the first reference is binary data, the method further comprising not modifying the first reference.

16

16. The method of providing transparent proxy services to a user of a client device of claim 1 , the parsing step comprising identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname, the method further comprising not modifying the first reference.

17

17. The method of providing transparent proxy services to a user of a client device of claim 1 , the parsing step comprising identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname and the first reference comprises a link, the modifying step comprising modifying the reference to provide an error message to the user if the user selects the link.

18

18. The method of providing transparent proxy services to a user of a client device of claim 1 , the parsing step comprising identifying a first reference, wherein the first reference is a relative reference or an absolute reference relative to root, the method further comprising not modifying the first reference.

19

19. The method of providing transparent proxy services to a user of a client device of claim 1 , the step of receiving the first unit of digital content from the remote server further comprising receiving a header from the remote server which is of a type which will cause the browser to load a new page, wherein the header includes a first reference including the remote server hostname; the method further comprising modifying the first reference; and the method further comprising the proxy server transmitting the modified header to the browser.

20

20. The method of providing transparent proxy services to a user of a client device of claim 19 , wherein the header comprises “Location”.

21

21. The method of providing transparent proxy services to a user of a client device of claim 19 , wherein the header comprises “Content-Location”.

22

22. The method of providing transparent proxy services to a user of a client device of claim 1 , wherein the step of receiving the first unit of digital content from the remote server further comprising receiving a header from the remote server which is of a type which will cause the browser to set a cookie, wherein the header includes a first reference including the remote server hostname; the method further comprising modifying the first reference; and transmitting the modified header to the browser.

23

23. A proxy server for providing transparent proxy services to a user of a client device, the client device having a browser for retrieving digital content from a data network, wherein the client device, the proxy server and a remote server are connected to the data network, the remote server having a remote server host name, the proxy server comprising computer software code for: receiving a first request from the browser for a first unit of digital content, wherein there is a remote server hostname associated with the remote server and the first request includes the remote server hostname for referencing the first unit of digital content; requesting the first unit of digital content from the remote server; receiving the first unit of digital content from the remote server; parsing the first unit of digital content for references to the remote server; identifying a first reference within a software construct, wherein the software construct, when performed, would force a page reload by the browser; inserting a first software function into the modified remote page for modifying references; inserting a call to the first software function into the software construct, wherein the first reference is encapsulated in the function call; modifying at least one reference to the remote server in the first unit of digital content to form a modified first unit of digital content by inserting a surrogate server hostname into the at least one reference and removing a remote server hostname from the at least one reference, wherein the surrogate server hostname is different from the remote server hostname; and transmitting the modified first unit of digital content to the browser.

24

24. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , wherein there is a proxy server hostname associated with the proxy server, and the surrogate server hostname is the proxy server hostname.

25

25. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , the computer software code further for receiving a second request from the browser for a second unit of digital content, wherein the second request identifies the surrogate server hostname as a source of the second unit of digital content.

26

26. The proxy server for providing transparent proxy services to a user of a client device of claim 25 , the proxy server further comprising computer software code for: modifying the second request to a modified second request by removing the surrogate server hostname from the second request; and transmitting the modified second request to the remote server.

27

27. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, the computer software code for modifying comprising computer software code for appending the surrogate server hostname to the remote server hostname in the at least one reference.

28

28. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, wherein the at least one reference includes a local path, the computer software code for modifying comprising the computer software code for: inserting the surrogate server hostname into the at least one reference in place of the remote server hostname; and making the remote server hostname server part of the local path of the at least one reference.

29

29. The proxy server for providing transparent proxy services to a user of a client device of claim 28 , wherein the remote server hostname comprises plural characters, the computer software code for modifying further comprising computer software code for reversing the characters in the remote server hostname to thereby make the remote server hostname read backwards.

30

30. The proxy server for providing transparent proxy services to a user of a client device of claim 29 , wherein the remote server hostname includes one or more periods the computer software code for modifying further comprising computer software code for changing the periods to slashes (“/”) in the reversed remote server hostname.

31

31. The proxy server for providing transparent proxy services to a user of a client device of claim 29 , the computer software code for modifying further comprising computer software code for inserting a separator between the reversed hostname of the remote server and the remainder of the path.

32

32. The proxy server for providing transparent proxy services to a user of a client device of claim 29 wherein the separator comprises a caret (“^”).

33

33. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , further comprising computer software code for inserting a base reference tag pointing to the surrogate server into the modified remote page.

34

34. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , further comprising computer software code for determining if a base tag is present in the remote page, and if so, then modifying the base tag to point to the surrogate server by replacing the remote server hostname with the surrogate server hostname.

35

35. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , the computer software code for parsing comprising computer software code for identifying a first reference, wherein the first reference is to be displayed by the browser and therefore would be visible to the user, the proxy server further comprising computer software code for not modifying the first reference.

37

37. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , the computer software code for parsing comprising computer software code for identifying a first reference, wherein the first reference ends with an extension indicating that content identified by the first reference is binary data, the proxy server further comprising computer software code for not modifying the first reference.

38

38. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , the computer software code for parsing comprising computer software code for identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname, the proxy server further comprising computer software code for not modifying the first reference.

39

39. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , the computer software code for parsing comprising computer software code for identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname and the first reference comprises a link, the computer software code for modifying comprising computer software code for modifying the reference to provide an error message to the user if the user selects the link.

40

40. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , the computer software code for parsing comprising computer software code for identifying a first reference, wherein the first reference is a relative reference or an absolute reference relative to root, the proxy server further comprising computer software code for not modifying the first reference.

41

41. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , the computer software code for receiving the first unit of digital content from the remote server further comprising computer software code for: receiving a header from the remote server which is of a type which will cause the browser to load a new page, wherein the header includes a first reference including the remote server hostname; modifying the first reference; and transmitting the modified header to the browser.

42

42. The method of providing transparent proxy services to a user of a client device of claim 41 , wherein the header comprises “Location”.

43

43. The method of providing transparent proxy services to a user of a client device of claim 41 , wherein the header comprises “Content-Location”.

44

44. The proxy server for providing transparent proxy services to a user of a client device of claim 23 , wherein the computer software code for receiving the first unit of digital content from the remote server further comprising computer software code for receiving a header from the remote server which is of a type which will cause the browser to set a cookie, wherein the header includes a first reference including the remote server hostname; the proxy server further comprising computer software code for modifying the first reference; and computer software code for transmitting the modified header to the browser.

45

45. A proxy server for providing transparent proxy services to a user of a client device, the client device having a browser for retrieving digital content from a data network, wherein the client device, the proxy server and a remote server are connected to the data network, the remote server having a remote server host name, the proxy server comprising: means for receiving a first request from the browser for a first unit of digital content, wherein there is a remote server hostname associated with the remote server and the first request includes the remote server hostname for referencing the first unit of digital content; means for requesting the first unit of digital content from the remote server; means for receiving the first unit of digital content from the remote server; means for parsing the first unit of digital content for references to the remote server; means for identifying a first reference within a software construct, wherein the software construct, when performed, would force a page reload by the browser; means for inserting a first software function into the modified remote page for modifying references; inserting a call to the first software function into the software construct, wherein the first reference is encapsulated in the function call; means for modifying at least one reference to the remote server in the first unit of digital content to form a modified first unit of digital content by inserting a surrogate server hostname into the at least one reference and removing a remote server hostname from the at least one reference, wherein the surrogate server hostname is different from the remote server hostname; and means for transmitting the modified first unit of digital content to the browser.

46

46. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , wherein there is a proxy server hostname associated with the proxy server, and the surrogate server hostname is the proxy server hostname.

47

47. The proxy server for providing transparent proxy services to a user of a client device of claim 45 further comprising means for receiving a second request from the browser for a second unit of digital content, wherein the second request identifies the surrogate server hostname as a source of the second unit of digital content.

48

48. The proxy server for providing transparent proxy services to a user of a client device of claim 47 , further comprising: means for modifying the second request to a modified second request by removing the surrogate server hostname from the second request; and means for transmitting the modified second request to the remote server.

49

49. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, the means for modifying comprising means for appending the surrogate server hostname to the remote server hostname in the at least one reference.

50

50. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, wherein the at least one reference includes a local path, the means for modifying comprising: means for inserting the surrogate server hostname into the at least one reference in place of the remote server hostname; and means for making the remote server hostname server part of the local path of the at least one reference.

51

51. The proxy server for providing transparent proxy services to a user of a client device of claim 50 , wherein the remote server hostname comprises plural characters, the means for modifying further comprising means for reversing the characters in the remote server hostname to thereby make the remote server hostname read backwards.

52

52. The proxy server for providing transparent proxy services to a user of a client device of claim 51 , wherein the remote server hostname includes one or more periods (“.”), the means for modifying further comprising means for changing the periods to slashes (“/”) in the reversed remote server hostname.

53

53. The proxy server for providing transparent proxy services to a user of a client device of claim 51 , the means for modifying further comprising means for inserting a separator between the reversed hostname of the remote server and the remainder of the path.

54

54. The proxy server for providing transparent proxy services to a user of a client device of claim 51 wherein the separator comprises a caret (“^”).

55

55. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , further comprising means for inserting a base reference tag pointing to the surrogate server into the modified remote page.

56

56. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , further comprising means for determining if a base tag is present in the remote page, and if so, then modifying the base tag to point to the surrogate server by replacing the remote server hostname with the surrogate server hostname.

57

57. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , the means for parsing comprising means for identifying a first reference, wherein the first reference is to be displayed by the browser and therefore would be visible to the user, the proxy server further comprising means for not modifying the first reference.

59

59. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , the means for parsing comprising means for identifying a first reference, wherein the first reference ends with an extension indicating that content identified by the first reference is binary data, the proxy server further comprising means for not modifying the first reference.

60

60. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , the means for parsing comprising means for identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname, the proxy server further comprising means for not modifying the first reference.

61

61. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , the means for parsing comprising means for identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname and the first reference comprises a link, the means for modifying comprising means for modifying the reference to provide an error message to the user if the user selects the link.

62

62. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , the means for parsing comprising means for identifying a first reference, wherein the first reference is a relative reference or an absolute reference relative to root, the proxy server further comprising means for not modifying the first reference.

63

63. The proxy server for providing transparent proxy services to a user of a client device of claim 45 : the means for receiving the first unit of digital content from the remote server further comprising means for receiving a header from the remote server which is of a type which will cause the browser to load a new page, wherein the header includes a first reference including the remote server hostname; the proxy server further comprising means for modifying the first reference; and the proxy server further comprising means for transmitting the modified header to the browser.

64

64. The method of providing transparent proxy services to a user of a client device of claim 63 , wherein the header comprises “Location”.

65

65. The method of providing transparent proxy services to a user of a client device of claim 63 , wherein the header comprises “Content-Location”.

66

66. The proxy server for providing transparent proxy services to a user of a client device of claim 45 , wherein the means for receiving the first unit of digital content from the remote server further comprising means for receiving a header from the remote server which is of a type which will cause the browser to set a cookie, wherein the header includes a first reference including the remote server hostname; the proxy server further comprising means for modifying the first reference; and means for transmitting the modified header to the browser.

67

67. A computer readable medium having a computer program stored on a computer, thereon the computer program for providing transparent proxy services to a user of a client device, the client device having a browser for retrieving digital content from a data network, wherein the client device, the proxy server and a remote server are connected to the data network, the remote server having a remote server host name, the computer program, when executed causing: receiving a first request from the browser for a first unit of digital content, wherein there is a remote server hostname associated with the remote server and the first request includes the remote server hostname for referencing the first unit of digital content; requesting the first unit of digital content from the remote server; receiving the first unit of digital content from the remote server; parsing the first unit of digital content for references to the remote server; identifying a first reference within a software construct, wherein the software construct, when performed, would force a page reload by the browser; inserting a first software function into the modified remote page for modifying references; instructions for inserting a call to the first software function into the software construct, wherein the first reference is encapsulated in the function call; modifying at least one reference to the remote server in the first unit of digital content to form a modified first unit of digital content by inserting a surrogate server hostname into the at least one reference and removing a remote server hostname from the at least one reference, wherein the surrogate server hostname is different from the remote server hostname; and transmitting the modified first unit of digital content to the browser.

68

68. The computer program for providing transparent proxy services to a user of a client device of claim 67 , wherein there is a proxy server hostname associated with the proxy server, and the surrogate server hostname is the proxy server hostname.

69

69. The computer program for providing transparent proxy services to a user of a client device of claim 67 further comprising instructions for receiving a second request from the browser for a second unit of digital content, wherein the second request identifies the surrogate server hostname as a source of the second unit of digital content.

70

70. The computer program for providing transparent proxy services to a user of a client device of claim 69 further comprising instructions for: modifying the second request to a modified second request by removing the surrogate server hostname from the second request; and transmitting the modified second request to the remote server.

71

71. The computer program for providing transparent proxy services to a user of a client device of claim 67 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, the instructions for modifying comprising instructions for appending the surrogate server hostname to the remote server hostname in the at least one reference.

72

72. The computer program for providing transparent proxy services to a user of a client device of claim 67 , wherein the remote server comprises a web server and the data network utilizes TCP/IP and HTTP protocols, wherein the at least one reference includes a local path, the instructions for modifying comprising instructions for: inserting the surrogate server hostname into the at least one reference in place of the remote server hostname; and making the remote server hostname server part of the local path of the at least one reference.

73

73. The computer program for providing transparent proxy services to a user of a client device of claim 72 , wherein the remote server hostname comprises plural characters, the instructions for modifying further comprising instructions for reversing the characters in the remote server hostname to thereby make the remote server hostname read backwards.

74

74. The computer program for providing transparent proxy services to a user of a client device of claim 72 , wherein the remote server hostname includes one or more periods (“.”), the instructions for modifying further comprising instructions for changing the periods to slashes (“/”) in the reversed remote server hostname.

75

75. The computer program for providing transparent proxy services to a user of a client device of claim 72 , the instructions for modifying further comprising instructions for inserting a separator between the reversed hostname of the remote server and the remainder of the path.

76

76. The computer program for providing transparent proxy services to a user of a client device of claim 75 wherein the separator comprises a caret (“{circumflex over ( 0 )}”).

77

77. The computer program for providing transparent proxy services to a user of a client device of claim 67 further comprising instructions for inserting a base reference tag pointing to the surrogate server into the modified remote page.

78

78. The computer program for providing transparent proxy services to a user of a client device of claim 67 further comprising instructions for determining if a base tag is present in the remote page, and if so, then modifying the base tag to point to the surrogate server by replacing the remote server hostname with the surrogate server hostname.

79

79. The computer program for providing transparent proxy services to a user of a client device of claim 67 , the instructions for parsing comprising instructions for identifying a first reference, wherein the first reference is to be displayed by the browser and therefore would be visible to the user, the computer program further comprising instructions for not modifying the first reference.

81

81. The computer program for providing transparent proxy services to a user of a client device of claim 67 , the instructions for parsing comprising instructions for identifying a first reference, wherein the first reference ends with an extension indicating that content identified by the first reference is binary data, the computer program further comprising instructions for not modifying the first reference.

82

82. The computer program for providing transparent proxy services to a user of a client device of claim 67 , the instructions for parsing comprising instructions for identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname, the computer program further comprising instructions for not modifying the first reference.

83

83. The computer program for providing transparent proxy services to a user of a client device of claim 67 , the instructions for parsing comprising instructions for identifying a first reference, wherein the first reference includes a hostname other than the remote server hostname and the first reference comprises a link, the instructions for modifying comprising instructions for modifying the reference to provide an error message to the user if the user selects the link.

84

84. The computer program for providing transparent proxy services to a user of a client device of claim 67 , the instructions for parsing comprising instructions for identifying a first reference, wherein the first reference is a relative reference or an absolute reference relative to root, the computer program further comprising instructions for not modifying the first reference.

85

85. The computer program for providing transparent proxy services to a user of a client device of claim 67 , the instructions for receiving the first unit of digital content from the remote server further comprising instructions for: receiving a header from the remote server which is of a type which will cause the browser to load a new page, wherein the header includes a first reference including the remote server hostname; modifying the first reference; and transmitting the modified header to the browser.

86

86. The computer program for providing transparent proxy services to a user of a client device of claim 85 , wherein the header comprises “Location”.

87

87. The computer program for providing transparent proxy services to a user of a client device of claim 85 , wherein the header comprises “Content-Location”.

88

88. The computer program for providing transparent proxy services to a user of a client device of claim 67 , wherein the instructions for receiving the first unit of digital content from the remote server further comprising instructions for receiving a header from the remote server which is of a type which will cause the browser to set a cookie, wherein the header includes a first reference including the remote server hostname; the computer program further comprising instructions for modifying the first reference; and instructions for transmitting the modified header to the browser.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

March 27, 2001

Publication Date

December 4, 2007

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Provision of transparent proxy services to a user of a client device” (US-7305473). https://patentable.app/patents/US-7305473

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.