GB2421322A - User interface for an internet web browser - Google Patents

User interface for an internet web browser Download PDF

Info

Publication number
GB2421322A
GB2421322A GB0416405A GB0416405A GB2421322A GB 2421322 A GB2421322 A GB 2421322A GB 0416405 A GB0416405 A GB 0416405A GB 0416405 A GB0416405 A GB 0416405A GB 2421322 A GB2421322 A GB 2421322A
Authority
GB
United Kingdom
Prior art keywords
web
web page
server
operable
error code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0416405A
Other versions
GB0416405D0 (en
Inventor
Shane Lee Ambridge
Simon Richard Edge
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Barefruit Ltd
Original Assignee
Barefruit Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Barefruit Ltd filed Critical Barefruit Ltd
Priority to GB0416405A priority Critical patent/GB2421322A/en
Publication of GB0416405D0 publication Critical patent/GB0416405D0/en
Priority to GBGB0501851.0A priority patent/GB0501851D0/en
Priority to PCT/GB2005/002835 priority patent/WO2006008516A1/en
Priority to BRPI0513582-6A priority patent/BRPI0513582A/en
Priority to DE602005003449T priority patent/DE602005003449T2/en
Priority to PT05762142T priority patent/PT1706832E/en
Priority to ES05762142T priority patent/ES2297734T3/en
Priority to CNB2005800246119A priority patent/CN100550015C/en
Priority to EP05762142A priority patent/EP1706832B1/en
Priority to JP2007522016A priority patent/JP2008507057A/en
Priority to AU2005263962A priority patent/AU2005263962B2/en
Priority to CA002574521A priority patent/CA2574521A1/en
Publication of GB2421322A publication Critical patent/GB2421322A/en
Priority to US11/465,564 priority patent/US8751601B2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]

Abstract

There is disclosed a user interface for a network, for example the Internet. If a user clicks on an incorrect hyperlink then the system, instead of merely informing the user that an error (e.g. ''404 Not Found'' error - meaning that the requested web page is not available) has occurred, provides the user with a list (503) of hyperlinks to alternative web pages. The alternative web pages are related to the context of the web page that was originally requested by the user (but was not available, due to the incorrect hyperlink, to the user) . In a preferred embodiment (300), the system analyses a web page (201) (i.e. the web page that contained the incorrect hyperlink) for context information and uses the context information to improve the relevance to the user of the list (503) . The system may also analyse other web pages for context information.

Description

IMPROVED USER INTERFACE Background This invention relates to an improved user interface for a telecommunications apparatus that can receive data from, and transmit data to, other telecommunication apparatuses. More particularly, but not exclusively, the invention relates to an improved user interface for an Internet web browser. Sometimes, when a user uses a web browser to view internet pages, the user will type the web page address (also known as a Uniform Resource Locator or "URL") into the web browser. Alternatively, the user may use a "bookmark" specifying a web page address. The web page address both specifies a particular machine connected to the internet, and also specifies a particular web resource (such as a web server) of that machine. The web browser then transmits a request for the desired page to the web server, as a result of which the web server returns information to the web browser that defines the appearance of the web page. Sometimes, the web address validly specifies the internet address of a web server but does not validly specify a web page on the particular web server.For example, the user may either (i) incorrectly enter the internet address of the desired page, or (ii) may enter the internet address of a web page that previously existed but no longer exists. In such cases the web server will return an error code to the user's web browser. A typical error code is hyper text transfer protocol (HTTP) "404 Not Found" although there are also various other error codes such as "410 Gone". A user receiving such messages thus learns only that the specified web page does not exist, without any further reasons or useful information being provided. In some cases, the web server may direct a user to the website's homepage, in the event that the user requests a page that is not available on the server, but this is usually of limited usefulness or interest to the user whose actions in specifying a particular web page within a web site are typically indicative of a specific interest. Statements of Invention Against this background, and in accordance with a first aspect of the invention, there is provided a system as set out in claim 1. According to a second aspect of the invention, there is provided a plug-in for a web browser, as set out in claim 26. According to a third aspect of the invention, there is provided a proxy add-in for a proxy server, as set out in claim 30. According to a fourth aspect of the invention, there is provided an error handler for a web server, as set out in claim 33. According to a fifth aspect of the invention, there are provided helper servers as set out in claims 36 and 38. According to a sixth aspect of the invention, there is provided a method of providing an improved user interface as set out in claim 45. An advantage of the present invention is that rather than merely presenting the user with an error code indicating that the requested web page could not be retrieved, the user is presented with one or more alternative links that are relevant to the web page that the user was attempting to view. The user can then click on one or more of the links. Thus, the invention can provide constructive suggestions of alternative web pages when the originally requested web page does not exist. Description of Figures Embodiments of the invention will now be described by way of example only and with reference to the following drawings in which:- Figure 1 illustrates a computer system arranged in accordance with a first embodiment of the invention; Figure 2 illustrates a computer system arranged in accordance with a second embodiment of the invention; Figure 3 illustrates a computer system arranged in accordance with a third embodiment of the invention; Figure 4 illustrates a computer system arranged in accordance with a fourth embodiment of the invention; Figure 5 illustrates a web page as seen by a user of the system of Figure 1, following entry of a non-existent URL; and Figure 6 illustrates a web page, as seen by a user of the system of Figure 2, following processing of a data entry by that system.
Description of the Preferred Embodiments
First Embodiment Figure 1 shows a system 100 according to a first embodiment of the invention. The system 100 comprises a user's personal computer (PC) 101. The user's PC 101 has standard accessories such as a mouse (not shown), a keyboard 103 and a screen 104 that can be used for displaying web pages. The user's PC 101 also has a modem 105 which allows the user's PC 101 to be connected to the internet. In this embodiment, the user's PC 101 is a desktop PC although in other embodiments, the user's PC 101 could, for example, be a mobile telephone or a personal digital assistant (PDA). The user's PC 101 is provided with web browser software 110. The web browser software 110 may, for example, be the Microsoft (RTM) Internet Explorer (RTM) , Netscape Navigator (RTM) or Mozilla(RTM). In use, a user enters a URL for a web page, usually via keystrokes on the keyboard 103. This results in the browser software sending a request to the web server specified by the entered URL. Where such a URL exists, that web server returns instructions to the browser software 110 at the user's PC 101, and that browser software 110 interprets the received information and then displays the requested web page on the screen 104.As will be well known to those skilled in the art, the information sent by the web server and interpreted by the browser software 110 is typically encoded using the hypertext markup language (HTML) and is delivered using the hypertext transfer protocol (HTTP) protocol. Details of the HTTP protocol and related protocols may be found on the internet at the following web addresses (note that the following documents are incorporated by reference): http://www.ietf.org/rfc/rfc1945.txt Hypertext Transfer Protocol -- HTTP/1.0 http://www.ietf.org/rfc/rfc2616.txt Hypertext Transfer Protocol -- HTTP/1.1 http://www.ietf.org/rfc/rfc1866.txt Hypertext Markup Language - 2.0 http://www.w3.org/TR/REC-html32 HTML 3.2 Reference Specification http://www.w3.org/TR/htm1401/ HTML 4.01 Specification http://www.w3.org/TR/xhtmll/ XHTML 1.0 The Extensible HyperText Markup Language (Second Edition) http://www.w3.org/TR/xhtml-basic/ XHTML Basic http://www.w3.org/TR/xhtmlll/ XHTML 1.1 - Module-based XHTML In the following description, reference will be made to URLs, web addresses and so forth.It will of course be understood that, although a URL is almost always entered or referenced as an alphanumeric string (e.g. "www.ietf.org", referring to the addresses above), the internet in fact operates on the basis of Internet Protocol (IP) addresses which are 32 bit numbers that may be represented as a series of twelve numbers separated by periods, such as 101.114.186.000. Thus, a preliminary step, when a user requests a web page, is usually for the browser software 110 to access a remote domain name server (DNS) which resolves the textual web address (a fully-qualified domain name, or FQDN) entered by the user into its IP address. This IP address is then returned by the DNS to the browser which then sends the request for a particular page to the resolved IP address.One or more web resources may be present at the resolved IP address, for example two web servers for unrelated web sites may both be accessible at the same IP address. The FQDN, when resolved, also specifies a particular web server; the web address also specifies a particular web page present on the web server. Referring still to Figure 1, suppose the user wishes to view a web page on a remote web server 120. The user types the URL of the web page into the web browser software 110 using the keyboard 103. A hypothetical example of such an internet address is: http://www.chemical_elements.com/hydrogen/atomic weight.html where "www.chemical_elements.com" specifies the FQDN address of the web server 120 and where "/hydrogen/atomic_weight.html" specifies a web page that is sought on the web server 120. As a first step, the web browser software 110 sends an HTTP request 130 to the web server 120 (having initially obtained a resolution of the URL into an IP address as defined above). The web server 120 receives the request for the information (the page) sought, but (in this hypothetical example), finds that the requested page is not available. The web server 120 therefore returns an HTTP status code to the web browser software 110 at the user's PC 101, indicating that the requested web page could not be found. An example of an HTTP status code is "404 Not Found". This status code indicates that the requested web page could not be found; there are alternative HTTP status codes which can be used by the web server 120 to indicate whether the requested web page is temporarily or permanently unavailable on the web server 120. In accordance with an embodiment of the present invention, rather than displaying this 404 error, a plug-in 111 is instead employed to enhance the functionality of the browser in handling such errors, as will be explained below. Plug-ins such as plug-in 111 are pieces of software that augment the web browser software 110. A browser helper object (BHO) could be used as a plug-in for Microsoft (RTM) Internet Explorer (RTM) Without the plug-in 111, the web browser software 110 would simply display an indication that the requested page could not be found on the server, together with the HTTP status code (e.g., "404 Not Found"). The plug-in 111 modifies the behaviour of the web browser software 110 when an appropriate HTTP status code such as "404 Not Found" is received.Specifically, the plug-in 111 detects the HTTP status code and prevents the web browser software 110 from displaying the normal "404 Not Found" error display. Instead, the plug-in 111 causes the web browser software 110 to send an HTTP request 132 to a helper web server 140 which is typically remote from both the web server 120 testing the URL which could not be located, and the user's PC 101. The HTTP request 132 includes the URL of the web page that was not available on the web server 120. The helper web server 140 operates in conjunction with the plug-in 111 to provide the user with an alternative, improved display of information, as set out below. The helper web server 140 includes analysis software 141 that analyses the address contained in the HTTP request 132 in order to determine the context of the page that was not available on the web server 120. Here, the analysis software 141 analyses the web address of the web server 120 and also analyses the address of the web page that could not be found on the web server 120, and determines that the context of the missing web page involves the keywords: "chemical", "elements", "hydrogen", "atomic" and "weight". Software and algorithms for determining the context of information are, as such, well known in the art. For example, some known algorithms assess the number of links to a web page, and the sources of those links, in order to determine the context of the information; some others employ techniques based on word stemming.The details of the algorithm(s) used by the analysis software employed here do not form part of the present invention and will not be discussed further. The helper web server 140 also includes index database software 142 which is used to identify web pages on other web servers (i.e. on web servers other than the web server 120 and the helper web server 140) that could be relevant to the context of the missing web page. The index database software 142 comprises a database that lists potentially relevant web sites for each term in the database. For example, for the word "chemical", the index database software 142 may have several entries that are related to the field of chemistry. For the word "elements", the index database software 142 may have some entries that are relevant to chemistry and some that are not relevant to chemistry. An example of an entry in the index database software 142 for the word "element" that is not relevant to the field of chemistry would be a web page entitled "elements of modern dance" which, in this example, would be related to choreography and not to chemistry. The index database software 142 uses the key words extracted by the analysis software 141 to produce a list of potentially relevant web pages. The list produced may be ordered/ranked by the anticipated relevance of the web pages to the key words.For example, a web page having the key words "atomic", "weight" and "hydrogen" may be ranked higher than a web page having the key words "chemical", "elements", "hydrogen" and "weight" even though the latter web page has four of the key words rather than three of the key words. The details of the ranking algorithms employed here do not form a part of the present invention and will not be described further. Ranking algorithms are, as such, known in the art, and the details of the ranking algorithm(s) employed here do not form part of the present invention and will not be discussed further. The ranked list of potentially relevant websites produced by the index database software 142 is then passed to web page creation software 143. The web page creation software 143 also forms part of the helper web server 140. The web page creation software 143 dynamically generates a web page that is sent as an HTTP response 133 to the user's PC 101. The web browser software 110 then interprets the HTTP response 133 and displays the web page on the display 104 of the user's PC 101. By "dynamic", it is meant that the web page creation software 143 does not retrieve a pre-defined web page, but that the web page creation software 143 generates a web page on the basis of the context that was determined by the analysis software 141 and by the links as determined and ranked by the index database software 142. Thus, the web page that is generated by the web page creation software 143 will usually be particular to a given context. Each time that the user attempts to view a web page that does not exist on the web server 120, or does not exist on some other web server, the plug-in 111 is able to detect the receipt of the HTTP "404 Not Found" or similar response from the web server.The plug-in 111 then causes the user's PC 101 to contact the helper web server 140 so that a dynamically generated web page, that is relevant to the context of the unavailable page, is displayed on the screen 104 of the user's PC 101. Figure 5 shows an example of a web page 500 that is displayed on the screen 104 of the user's PC 101 once the HTTP response 133 has been received by the user's PC 101 and interpreted by the web browser software 110. As shown, the web page 500 contains a message field 501, which provides the user with an informative message, and also contains a back button 502 and a link field 503. In this case, the message is: "Sorry, couldn't find the page you were looking for. You can either press the 'Back button' or click on a relevant link". The back button 502 allows the user to move back through his history of previously viewed web pages. The link field 503 provides the user with a ranked list of suggested links that may be of relevance to the context of the user. Here, the link field 503 contains two links, link 503.1 and link 503.2. For each of the two links, the title of the web page pointed to by the respective links is given, followed by the respective key words that are present on the respective web page followed by the internet address of the respective web page. As shown, the link 503.1 is a web page that is relevant to the properties of hydrogen. The web address gives the web server and the address of the web page on the web server. Link 503.2 is concerned with a choreography web page. Link 503.2 is displayed below link 503.1 as, according to the ranking formed by the index database software 142, link 503.2 is considered less likely to be relevant to the user than the link 503.1. Assuming that the user regards the link 503.1 as being relevant, and proceeds to select the link 503.1 by clicking on it using the mouse 102, the link 503.1 specifies the internet address of the web page that the user wishes to view. Here, the page may be found on a linked server 150. The linked server 150 in this embodiment is not typically a part of the web server 120 or the helper web server 140; instead, the database of the index database software 142, held on the helper server 140, contains an internet link to the linked server 150. Thus, the link 503.1 specifies the internet address of linked server 150 and also specifies the location on the linked server 150 where the page may be found. When the user clicks on the link 503.1, the web browser software 110 sends an HTTP request 134 to the linked server 150. The linked server 150 returns an HTTP response 135 which defines the required web page. The web browser software 110 interprets the web page defined by the HTTP response 135 and displays the requested web page on the screen 104 of the user's PC 101. Thus, the plug-in 111 and the helper web server 140 can improve the web browsing experience of a user by, instead of merely presenting the user with a HTTP "404 Not Found" message, presenting the user with a list of potentially relevant links for the user to click on.
Second Embodiment Figure 2 shows a system 200 according to a second embodiment of the invention. Many of the components of the system 200 are identical to components of the system 100. The parts in common have therefore retained the same reference numerals that were used in Figure 1. Whereas the system 100 catered for a situation where the user entered the address of a non-existent web page, system 200 caters for the situation where a user clicks on a link provided by a "linking web server" 201 which points to a link that does not exist on the web server 120. The system 200 is also able to collect information that may be used to improve the relevance of the links presented to the user, or for other purposes. As a first step in this second embodiment, the user types the internet address (URL) of a website on the linking web server 201 into the web browser software 110 via the keyboard 103. The web browser software 110 sends an HTTP request 202 to the linking web server 201. In this example, the requested page on the linking web server 201 is found, so the linking web server 201 responds with an HTTP response 203. The web browser software 110 interprets the web page defined by the HTTP response 203 and displays the web page on the display 104. The displayed web page includes one or more faulty links. By faulty links, it is meant that the link is either incorrect or that the link points to a page that is no longer available. In a next step, the user clicks on one of the faulty links (which, of course, he does not know to be faulty as a rule). The web browser software 110 sends an HTTP request 130 to the remote web server 120 where the website of the missing page or broken link is held. The web server 120 determines that the requested page is not available and returns an HTTP "404 Not Found" response 131 to the web browser software 110. The system 200 has a plug-in 211 which is similar to the plug-in 111 but includes a participant ID 212. The participant ID 212 is a piece of data that identifies the organisation that supplied the plug-in 211 to the user. The plug-in 211 is arranged to be able to transmit the participant ID 212 to a helper server 240. The helper server 240 is similar to the helper server 140 of the system 100 but includes participant monitoring software 242 for analysing the various participant IDs 212 of different users. Although for clarity only a single user's PC 101 is shown in system 200, multiple users, using respective PCs, can simultaneously use web browser software 110 at their respective PCs together with respective plugins 211. The plug-ins 211 are substantially identical but are provided with different participant IDs 212, depending on whichever organisation supplied a plug-in 211 to a user. Returning to Figure 2, when the plug-in 211 detects that an HTTP "404 Not Found" response 131 has been received from the web server 120, the plug-in 211 causes the web browser software 110 to send an HTTP request 232 to the helper web server 240. The HTTP request 232 is similar to the HTTP request 132 of system 100 but includes the participant ID 212. For the system 200, an example of the HTTP request 232, is as follows: GET http://internet_address_of_helper_web_server_240/search. asp?participantID=123456&referrer=web_page_address_of_page_o n_linking_server_201&error=404&missing_page=web_page_address _of_missing_page where: internet_address_of_helper_web_server_240 is the internet address of the helper server 240; participant ID is the participant ID of the plug-in 211; web_page_address_of_page_on_linking_server_201 is the address of the web page on the linking web server 201 that contains a link to the page that is not present on the web server 120; 404 is the status code of the HTTP response 131; and web_page_address_of_missing_page is the address of the page not present on the web server 120 that was pointed to by the page on the linking server 201. The helper web server 240 uses the HTTP request 232 to deduce the context of the missing web page. The participant monitoring software 242 that forms part of the helper server 240 records the participant ID 212 of the plug-in 211 that caused the HTTP request 232 to be sent. Here, the participant ID 212 has a value of "123456". The helper server 240 comprises analysis software 241 that is similar to the analysis software 141 of the system 100. However, the analysis software 241 obtains, by virtue of the extra information provided in the HTTP request 232 (compared to the HTTP request 132), enhanced information regarding the context of the web page that the user attempted to view. The analysis software 241 uses the "referrer" information in the HTTP request 232 to send an HTTP request 220 to the linking web server 201. The HTTP request 220 requests the web page, from the web server 201, that contained the erroneous link to a page on the web server 120. The linking web server 201 responds with an HTTP response 221. The HTTP response 221 includes information which defines the appearance and content of the web page that was displayed on the display 104 of the user's PC 101. The analysis software 241 does not actually display the web page defined by the information in the context HTTP response 221 but analyses the information to determine keywords in the vicinity of the link. Figure 6 shows an example of a web page 600 as displayed on the display 104 of the user's PC 101. The analysis software 241 analyses the web page 600 to determine the location of the link that pointed to the non-existent web page on the web server 120. The link is denoted by the reference numeral 601. As shown, the words in the vicinity of the link 601 contains various keywords that are relevant to the context of the link 601. The analysis software 241 analyses these keywords to determine appropriate key words. Various methods for analysing and indexing key words on web pages are known in the art. Here, the analysis software 241 determines key words 602 that are to be used by the index database software 142. The analysis software 241 also analyses the web address of the web page 600 for relevant key words.The results of the analysis are passed by the analysis software 241 to the index database software 142. The index database software 142 then produces a list of one or more links that are anticipated to be relevant to the user. In this embodiment, system 200 uses the participant ID 212 to obtain further context information. The participant monitoring software 242 comprises a database that relates participant IDs to whichever organisation supplied the plugin 211 to the user. In this hypothetical example, the participant ID 212 has a value of "123456" which indicates that the plug-in 211 was supplied to the user by a hypothetical organisation called "Industrial Chemistry Organisation". It is likely that the user has some affiliation with the hypothetical society of "Industrial Chemistry Organisation" and this provides additional context information, namely that the expected context is the field of chemistry. In this embodiment, the participant monitoring software 242 passes to the index database software 142 information indicating the expected context. The list of potentially relevant websites that is created by the index database software 142 is passed to the web page creation software 143 which then sends an HTTP response 233 to the web browser software 110. The HTTP response 233 includes information defining a web page; the web browser software 110 interprets the information and displays the web page on the display 104. The displayed web page is similar to that shown in Figure 5 but is more focused towards what is deemed by the analysis software 241 and the index database software 142 to be the likely context of the user. The HTTP response 233 is similar to the HTTP response 133 of the system 100 but, whereas the web page defined by the HTTP response 133 included a link that pointed directly to the linked server 150, the web page defined by the HTTP response 233 has links to the helper server 240.Although the links point to the helper server 240 rather than the linked server 150, the links contain information which allows the helper server 240 to direct the web browser software 110 to the linked server 150. The way in which the helper server 240 processes these links will now be discussed. If the user clicks on one of the links, the web browser software 110 sends an HTTP request 234 to the helper server 240. For the system 200, an example of the HTTP request 234 is as follows: GET http://internet_address of_helper_web_server_240/tracker .asp?participantID=123456&link_address=web_page_address_of_w eb_page_on_linked_server_150 The HTTP request 234 specifies the web address of the helper server 240 and also contains, as parameters, the web address of the linked server 150 and the participant ID 212. The helper server 240 includes tracker software 243. Here, the tracker software 243 determines that the participant ID is "123456". The tracker software 243 maintains a count of the number of times that an HTTP request 234 is received for each participant ID 212. Thus, each time that the user of the PC 101 clicks on a link received from the helper server 240, the tracker software 243 will increment by 1 a tally for the participant ID "123456". When other users click on such links, the respective tally for the other participant IDs will be increased by 1. Thus, the tracker software 243 allows the helper server 240 to determine how many "clicks" are received from each of the organisations that can distribute plug-ins 211. The helper server 240 also includes re-direction software 244. On receipt of an HTTP request 234, the re-direction software 244 extracts the parameter specifying the web address of a page on a linked server 150. The re-direction software 244 then sends an HTTP response 235 to the web browser software 110. The HTTP response 235 includes an HTTP re-direction status code (e.g. "302 Moved Temporarily", which is always followed by a "Location:" header field) which indicates to the web browser software 110 that the web browser software 110 should look for the web page (that is, the web page requested by the HTTP request 234) at another location. The other location is specified by, in this example, the "Location:" header field of the HTTP response 235. The web browser software 110, on receipt of the HTTP response 235, sends an HTTP request 134 to the linked server 150. The linked server 150 responds with an HTTP response 135 and causes a web page to be displayed on the display 104 of the user's PC 101. An advantage of the inclusion in the HTTP request 232 of the participant ID 212 is that the participant monitoring software 242 can improve the context that is used by the index database software 142. In alternative embodiments of the system 200, the participant ID 212 is omitted from the HTTP request 232 and the participant monitoring software 242 is dispensed with.In still another embodiment, the participant monitoring software 242 is used, in conjunction with the analysis software 241 and the index database software 142, to either enhance the ranking of "favoured" linked servers 150 or is used to prevent links to one or more "non-favoured" linked servers 150 from being presented to the user. In alternative embodiments of the system 200, the plug-in 211 is arranged so that the participant ID 212 is not included in the HTTP request 234, in which case the tracker software 243 of the helper server 240 could be dispensed with. However, the inclusion of the participant ID 212 in the HTTP request 234 and retention of the tracker software 243 is preferred.The use of the participant ID 212 tracker software 243 allows the helper server 240 to count how many links have been provided to a particular linked server 150, and also to determine the participant ID 212 of the plug-in 211 that was used to access a particular linked server 150. This allows the owners of the helper server 240 to obtain financial revenue from owners of linked servers 150 and to share the revenue with the organisations that provide the plug-in 211 to users. Figure 2 shows only a single linked server 150. In a typical implementation of the system 200, it will be understood that there are many linked servers 150. For a server 150 to be "linked" to the helper server 240, it is necessary that the index database software 142 contains information that specifies the web address of a web page on a particular linked server 150. Of course, as well as having links to a plurality of linked servers 150, the index database software 142 may have links to a plurality of web pages that are retrievable from a particular linked server 150. The links may also include links to other web pages, that can be retrieved without a "404 Not Found" error, on the web server 120. Suppose that the owners of the helper server 240 have concluded agreements with the respective owners of various linked servers 150 so that, for each "click-through" to a linked server 150 that results from the use of a plug-in 211 and the helper server 240, the owner of the respective linked server 150 provides a payment to the owner of the helper server 240. Suppose also that the owners of the helper server 240 have concluded agreements with one or more organisations that are prepared to distribute plug-ins 211, where each of the organisations is allocated a respective participant ID 212 (e.g. "123456" or "111222") to distinguish the plug-ins 211. The tracker software 243 and the re-direction software 244 each counts how many clickthroughs have been passed to each linked server 150.As an example, suppose company A owns a first linked server 150 that has received 20 click-throughs, and that company B owns a second linked server 150 that has received 10 clickthroughs. Both company A and company B provide the owners of the helper server 240 with financial remuneration based on the number of click-throughs as recorded by the tracker software 243 and the re-direction software 244. Thus, the owners of the helper server 240 are remunerated for a total of 30 click-throughs. Suppose also that a first organisation C has provided some users with a plug-in 211 having a participant ID 212 of "123456", and that a second organisation D has provided other users with a plug-in 211 having a participant ID 212 of "111222".The owners of the helper server 240 can provide the organisations C and D with a portion of the remuneration received from the owners A and B, in proportion to the number of click-throughs resulting from (i) the plug-in 211 having the participant ID of "123456", and (ii) from the plug-in 211 having the participant ID 212 of "111222". Thus, the organisations C and D are encouraged to distribute plug-ins 211 with the respective participant IDs 212 to users. In alternative embodiments of the system 200, it is not necessary to count the number of click-throughs to the one or more linked servers 150. In such embodiments, the participant ID 212 is not included in the HTTP request 234; similarly, the tracker software 243 may be dispensed with.
Third Embodiment Figure 3 shows a system 300 according to a third embodiment of the invention. The system 300 is in some ways similar to the system 200 and like reference numerals are again employed for like components. However, the system 300 includes a proxy web server 301. Proxy servers are used by some internet service provides (ISPs) as gateways between individual subscribers of the ISP (e.g. home users) and the internet. Proxy servers are also used by some businesses as an interface between the PCs used by their staff, and the internet. Proxy servers can provide increased security by incorporating a virus scanner and increased performance by caching information. All web (HTTP) communication between the user's PC 101 and the internet is through the proxy server 301 which receives HTTP requests from the user's PC 101 and then relays them to other web servers on the internet.HTTP responses from the other web servers on the internet are received by the proxy server 301 which then relays them to the user's PC 101. Another difference between the system 300 and the system 200 is that the helper web server 340 of the system 300 does not count the number of click-throughs to linked servers 150. Instead, modified index database software 342 is used instead of the index database software 142. As well as storing the web addresses of web pages on linked servers 150, the index database software 342 also stores "linked IDs" 312 which allow linked servers 350 to count how many click-throughs they have received from the helper server 340. The linked servers 350 are similar to the linked servers 150 but include tracker software 343 for counting the number of click-throughs received. In the embodiment illustrated in Figure 3, the user of the PC 101 either types in a web address into the web browser software 110 or clicks on a link to the linking web server 201. Here, the HTTP request 202 is intercepted by the proxy server 301 which modifies the header of the HTTP request 202 and sends a new HTTP request 302 to the linking web server 201. The linking web server 201 responds with a HTTP response 203 which is intercepted by the proxy server 301. The proxy server 301 modifies the header of the HTTP response 203 and sends a HTTP response 303 back to the web browser software 110. A similar sequence of events occurs for HTTP requests 130 and 330. When the HTTP "404 Not Found" response 131 is received by the proxy server 301 from the linked web server 120, a "proxy add-in" 311 modifies the behaviour of the proxy server 301. The proxy add-in 311 is a piece of software (in this embodiment) or hardware that modifies the behaviour of the proxy server 301 when an HTTP "404 Not Found" or similar status code is received. Thus, the proxy add-in 311 performs a function that is in some ways equivalent to the plug-in 111 and the plug-in 211 of the systems 100 and 200. The proxy add-in 311 is typically supplied to the owner of the proxy server 301 by the owner of the helper server 340. Whenever the proxy server 301 receives an HTTP "404 Not Found" response 131 from a web server 120, the proxy add-in 311 causes the proxy server 301 to generate a HTTP re-direct response 331 and send it to the web browser software 110.The HTTP re-direct response 331 includes the web address of the page on the linking web server 201 that has an erroneous link to a page on the web server 120, and the web address of the missing page on the web server 120. The web browser software 110, on receipt of the HTTP redirect response 331, sends an HTTP request 132 to the helper web server 340 via the proxy server 301. The HTTP request 132 is received by the helper web server 340 as HTTP request 332. The HTTP requests 132 and 332 both include as parameters the web address of the page on the linking web server 201 that contained an erroneous link to a page on the linked web server 120, together with the address of the missing page on the web server 120. The helper web server 340 extracts from the HTTP request 332 the web address of the page on the linking web server 201. As for the system 200, the helper web server 340 sends an HTTP request 220 to the linking web server 201 and receives an HTTP response 221. As for the system 200, the analysis software 241 determines the context of the missing web page and passes context information to index database software 342. The index database software 342 includes a database of web pages on linked servers 350. The index database software 342 also includes one or more linked IDs 312. The linked IDs 312 are provided to the owner of the helper web server 340 by the respective owner(s) of the linked servers 350. Typically, each owner of a linked server 350 supplies the owner of the helper server 340 with a linked ID 312 that is unique to the owner of the helper server 340. The one or more linked IDs 312 allow the owner(s) of linked servers 350 to distinguish click-throughs from the helper server 340 with click-throughs from other web servers (not shown). The linked server 350 counts the number of linked IDs 312 that it receives. Suppose that the owner of the helper web server 340 has been allocated a linked ID 312 having the value of "123321".Each time that the linked server 350 receives a linked ID 312 having a value of "123321", a counter (not shown) is incremented. Thus, this counter allows the owner of the linked server 350 to determine how many click-throughs have originated from the helper web server 340. In return, the owner of the linked server 350 remunerates the owner of the helper web server 340. A more detailed description of the system 300 will now be presented. As before, the web page creation software 143 generates a web page and this web page is sent as an HTTP response 133 to the user's PC 101 via the proxy server 301. The HTTP response 133 is received by the user's PC 101 as HTTP response 333. As a result, a web page is displayed on the display 104 of the user's PC 101. The web page includes one or more links. Each of the one or more links points to a linked server 350. Each of the links also includes, as a parameter, the linked ID 312 that has been allocated by the owner of the respective linked server 350 to the owner of the helper web server 340. If the user clicks on one of the links, then an HTTP request 334 is sent from the user's PC 101 via the proxy server 301, and is received by the linked server 350 as an HTTP request 334A. The HTTP request 334 is similar to the HTTP request 134 of the systems 100 and 200 but includes, as a parameter, the value of the linked ID 312, i.e. "123321". The linked server 350 includes tracker software 343 that analyses the linked ID parameters that are contained in HTTP requests. Each time that the linked server 350 receives an HTTP request with a linked ID of "123321", the tracker software 343 increments a counter, indicating that a clickthrough has been received under the auspices of the helper web server 340. In response to the HTTP request 334A, the linked web server 350 sends an HTTP response 135 via the proxy server 301, to the user's PC 101, where it is received as an HTTP response 135A. The proxy add-in 311 of the system 300 does not store a participant ID 212. In an alternative embodiment of the system 300, the proxy add-in 311 stores a participant ID 212 which is conveyed to the helper server 340. This allows the helper server 340 to distinguish between proxy servers 301 owned by different organisations. By counting, for each value, e.g. "123456", the number of participant IDs 212 received, the owner of the helper server 340 can remunerate the owners of the proxy servers 301 in proportion with the number of click-throughs. Of course, this alternative embodiment cannot track whether or not an HTTP request 332 actually resulted in a click-through.In an alternative embodiment, the proxy add-in 311 is modified so that HTTP requests 334 are monitored, thus allowing the modified proxy add-in 311 to determine the remuneration appropriate to each of the respective owners of the participating proxy servers 301.
Fourth Embodiment Figure 4 shows a system 400 according to a fourth embodiment of the invention. Whereas the systems 100, 200, 300 showed a web server 120, the system 400 has a web server 420. The web server 420 is similar to the web server 120 but includes an error handler 411. The error handler 411 modifies the behaviour of the web server 420, compared to the behaviour of the web server 120, when a requested web page cannot be retrieved from the web server 420. The error handler 411 modifies the behaviour of the web server 420 so that rather than returning an HTTP status code such as "404 Not Found", the web server 420 returns an HTTP response 431 which includes an HTTP re-direction status code (e.g. "302 Moved Temporarily", together with a ''Location:http://web_page_address_of_web_page_on_linked_serv er" field). The HTTP response 431 causes the web browser software 110 to send an HTTP request 132 to a helper server 440. The helper server 440 is in communication with an auxiliary server 460. The auxiliary server 460 includes analysis software 241, index database software 142 and web page creation software 143. Thus although the helper server 440 differs from the helper servers 140, 240 , 340, it is able to provide, in effect, similar functionality in conjunction with the auxiliary server 460. When the auxiliary server 460 requires access to a web page then the helper server 440 acts as a proxy server for the auxiliary server 460. The helper server 440 sends an HTTP request 220 to the linking web server 201 which responds with an HTTP response 221 to the helper server 440. The web page creation software 143 of the auxiliary server 460 then generates a web page and sends, via the helper server 440, an HTTP response 133 to the web browser software 110. If the user clicks on a link then an HTTP request 134 is sent to the linked server 150 which replies with an HTTP response 135, thereby causing a web page from the linked server 150 to be displayed on the display 104 of the user's 101. In alternative embodiments of the system 400, the error handler 411 is arranged to include a participant ID 212 which is included in the HTTP response 431 and thus conveyed to the helper server 440. In another embodiment of the system 400, the index database software 142 of the auxiliary server 460 is replaced with the index database software 342 which includes linked IDs 312. In yet further embodiments, the helper server 440 further includes tracker software 243 and re-direction software 244.
Fifth Embodiment In the systems 100-400, the plug-in 111, 211, proxy add-in 311 or error handler 411 detected that a signal (such as the HTTP status code "404 Not Found") that indicated that a web page requested by the user could not be displayed on the web browser 110/display 104 of the user's PC 101. In some situations, an error may occur without an HTTP status code being generated. In the fifth embodiment (not shown), the errors in such situations are detected by the plug-in 111, 211, proxy addin 311 or error handler 411, as appropriate, and used to activate the analysis software 141, the index database software 142 and the web page creation software 143. Those skilled in the art will readily appreciate the modifications required to the plug-in 111, 211, proxy add-in 311 or error handler 411. The following five examples are examples of situations where no HTTP status code will be generated by the web server 120: 1. Non-existent domain name In the event that the DNS lookup done by the web browser 110 for request 130 in the systems 100, 200 or that done by the proxy server 301 for HTTP request 330 in the system 300 fails to convert a textual Internet address (e.g. 'www.some non existant domain.com') to a numeric Internet Protocol address, the plug-in 111, 211 or proxy add-in 311 will receive an error code from the DNS server and behaves as if an HTTP 'Host not found' error has occurred. Suppose that there is a standard web proxy server (i.e. a proxy server that does not include the proxy add-in 311) between the user's PC 101 and the web server 120 in the systems 100, 200 or between the proxy server 301 and the web server 120 in the system 300, then that standard proxy server will convert its received DNS error message to an HTTP error message and send that back to the web browser 110 or proxy server 301. The plug-in 111, 211 or proxy add-in 311 will then be informed of the HTTP status code as usual. 2. No server at given IP address In the event that the IP address in the URL or the IP address resolved from the FQDN in the URL is not currently assigned to any machine on the Internet, the web browser 110 or proxy server will fail to establish a connection to the non-existent web server 120. 2.1. The web browser 110 or proxy server 301 (or standard proxy server) will timeout if a connection is not established within a certain period (typically a few seconds). The plug-in 111, 211 or add-in 311 will receive notification of this and can again proceed as if it had received an HTTP 'Host not found'. (The standard proxy will convert the timeout to an HTTP status code and send this to the web browser 110 or proxy server 301 and so the plug-in 111, 211 or proxy add-in 311 can behave as previously discussed.) 2.2. Alternatively, a router closer to the sub-network where the web server 120 should be may already have information that the web server 120 does not exist. It will send an ICMP (Internet Control Message Protocol) 'Host unreachable' message back. The plug-in or add-in will be informed as above and can proceed as for any other error.(Again, a standard proxy will typically convert the ICMP error to an HTTP status code that is received by the web browser 110.) 3. No route to server In the event that there is a problem preventing datagrams reaching web server 120 from the user's PC 101 or the proxy server 301 (or an intervening standard web proxy), the same will occur as in case 2, except that an intervening router may send ICMP 'Network unreachable' in case 2.2. 4. No route from server In the event that there is a problem preventing datagrams returning from web server 120, case 2.1 will always apply. 5. Server is not a web server In the event that the server 120 is connected but that it is not running web server software on the standard HTTP port number (TCP port 80) or on the port number specified in the URL, it may ignore requests completely which would result in case 2.1 or it may return ICMP 'Protocol unreachable' or ICMP 'Port unreachable' which can be handled as in 2.2. A reference for the five situations referred to above can be found at: http://www.ietf.org/rfc/rfc0792.txt IETF RFC 792: Internet Control Message Protocol It should be noted for the situation described at 2.1 above that although an HTTP status code is returned to the web browser 110, this HTTP status code is generated by a standard proxy server but is not generated by the web server 120. Further Embodiments As those skilled in the art will appreciate, other amendments may be made to the systems 100, 200, 300 or 400, or to the fifth embodiment. For example, instead of using software to implement the analysis software 141, 241, index database software 142 and web page creation software 143, dedicated hardware may be used to perform the same functions. The systems 100, 200, 300, 400 integrated the analysis software 141, 241, the index database software 142, 342 and the web page creation software 143 with the helper server 140, 240, 340. In alternative embodiments, the helper server does not include that functionality but instead has communication links to other servers which implement the required functionality. For example, in one alternative embodiment, the helper server, on receipt of an HTTP request 232 and a HTTP response 221 communicates the information to a "context" software which deduces the context and returns the context to the helper server. The helper server then communicates the context to a database server which provides details of the relevant links directly to a web page creation server.The web page creation server then generates the required web page and sends this to the helper server for transmission to the web browser software 110. The systems 100, 200, 300, 400 do not typically communicate the internet protocol (IP) address of the user's PC 101 to the helper server 140, 240, 340, 440. In alternative embodiments, the user's IP address is sent as a parameter to the helper server. This is used to improve the context information by taking account of the approximate geographic location of the user's PC 101. This allows the relevance of, for example, credit cards or other financial services to be improved, or allow appropriate retailing of heavy or bulky goods, or of language translation services. In alternative embodiments, the helper server is arranged to cache requests and indexing so as to improve the speed of response to the user. For example, if a web server 120 becomes temporarily unavailable, it is possible that different users will attempt to access pages on the web server 120 and thus similar "404 Not Found" errors will repeatedly occur. In an alternative embodiment, the plug-in 111, 211, or the proxy add-in 311, generates a persistent "globally unique identifier" that uniquely identifies a particular user. In this alternative embodiment, it is arranged that the globally unique identifier cannot be traced to an individual, thereby ensuring privacy. By including the globally unique identifier as a parameter to the helper server, the helper server can take account of the browsing habits of the user, thus improving the context and thus relevance of the links presented to the user. In similar embodiments, the globally unique identifier may be implemented as persistent cookies on the user's PC 101. Similarly, the participant ID may be stored as a persistent cookie on the user's PC 101.In other embodiments the participant ID is not used to record which organization distributed, say, the plug-in 211 to the user but is used as a persistent globally unique identifier or to categorise the user according to a stereotype, for example to indicate that the user tends to be interested in chemistry or choreography. In some circumstances, it is possible that a combination of the systems 100, 200, 300 and 400 are simultaneously present. For example, a user's PC 101 having a plug-in 211 may access the internet through a proxy 301 having a proxy add-in 311, to access a web server 420 incorporating an error handler 411. In this case, the error handler 411 would dominate the proxy add-in 311 and the plug-in 211 as no "404 Not Found" error response would be returned to the user's PC 101. As those skilled in the art will appreciate, the behaviour of the error handler 411 may be modified so that it provides information that can be checked by the proxy add-in 311 and the plug-in 211, so as to enable sharing of remuneration between the various organisation(s) that supply the error handler 411 proxy add-in 311 and plugin 211. In alternative embodiments, the plug-in 211 is arranged to include the more recent web page addresses (URLs) that the user visited (e.g. the previous five web servers) to provide additional context information. Similarly, the error handler 411 may be modified to provide a limited implementation of the same functionality by the use of session cookies on the user's PC 101 to store the more recent web page addresses visited by the user. In still further alternative embodiments, a plurality of helper servers may be provided. In one embodiment, each user is directed to a particular helper server so as to balance the load between the various helper servers, for example, to distribute the computational load or the internet traffic equally between the various helper servers. Alternatively, different users may be directed to different helper servers on the basis of a participant ID 212. The web page creation software 143 of the systems 100, 200, 300, 400, created a web page to be viewed by a user on a display 104. In some situations, the user may not be able to readily view a display, for example, if the user is driving. Thus, in an alternative embodiment, modified web browser software is used to produce an output that is communicated to the user, for example, by text-to-speech conversion software so that the user listens to the ranked links and selects a link by speaking to the web browser to select a link. The systems 100, 200, 300, 400 used either a plug-in 111, 211, a proxy add-in 311 or a error handler 411 in combination with a helper server 140, 240, 340, 440. In alternative embodiments, some or all of the functionality of the helper server is included in the plug-in 111, 211, proxy add-in 311 or the error handler 411. In other alternative embodiments, the user's PC implements a web server and the functionality of the plug-ins 111, 211, proxy add-in 311 or the error handler 411 is part of the user's PC 101. For example, as those skilled in the art will appreciate, the functionality of any/some/all of the plug-ins 111, 211, proxy add-in 311 or error handler 411, analysis software 141, index database software 142 and web page creation software 143 may be implemented as part of the operating system of the user's PC. In some embodiments, rather than presenting a user with a list of alternative links for the user to consider and select, a re-direction HTTP response is sent to the user's PC 101 which causes whichever link is deemed to be most relevant to be directly displayed on the display 104. Revenue can be obtained on the basis of cost per click (CPC), cost per lead (CPL), cost per action (CPA), cost per customer, cost per thousand (CPM, where "M" is the Roman numeral for 1000), cost per sale (CPS) or cost per order (CPO). Different categories of links may be allocated different values. For example, leads to mortgage suppliers may be allocated a high financial value due to the fact that mortgage contracts are typically of high value. Sometimes the owner of a website will pay an organisation to "host" the website on a web server owned by the organisation.In this situation, the remuneration would be received from the owner of the website rather than the owner of the web server. It was earlier mentioned that "404 Not Found" and "410 Gone" status codes were suitable examples where the user interface could be improved. As those skilled in the art will appreciate, other HTTP status codes to which this user interface may be applied include (but are not limited to): 400 Bad Syntax, 401 Unauthorized, 402 Not Used, 403 Forbidden, 500 Error in server, 501 Not Implemented, 502 Overloaded, and 503 Gateway Timeout. In the system 400, the helper server 440 was connected to an auxiliary server 460 which included analysis software 241 and index database software 242. In alternative embodiments of the systems 100-400, web servers (not shown) provided by third parties may be used to perform the context analysis. In such embodiments, the plug-in 111, 211, proxy add-in 311 or error handler 411 is arranged, on receipt of an HTTP status code, to send context information to the third party server. The third party server analyses the context information and sends a list of potential links to the helper server which then causes a web page to be generated and sent to the user. The systems 100-400 used index database software to determine links of potential relevance to the user. The links were then presented to the user. In some circumstances, it may be preferable to ensure that a user does not have to wait for too long before receiving some results. In an alternative embodiment, the analysis software and the index database software are arranged so that the first time that a URL specifying a particular nonexistent page is entered by a user, links are presented to the user based on a relatively brief analysis of the context information. This ensures that the user does not have to wait for too long.Meanwhile, the analysis software and the index database software are arranged to analyse the context information in more detail and determine a new list; it is likely that this new list will be more relevant to the context than the list of links originally presented to the user as the analysis software and the index database software will have had more time for analysis. If a different user subsequently enters the same URL, or if the original user enters the same URL a second time, then the new list is presented. An advantage of this embodiment is that the response time until links are returned to a user is kept reasonably short while allowing for relatively detailed context analysis. In a further development of this alternative embodiment, the web page creation software 143 is arranged to generate a "frameset" web page that contains two or more "frames".As those skilled in the art will appreciate, a frameset web page appears to the user as a single web page but each of the frames may originate from a different web server. For example, a frame may contain a reference instructing the web browser to retrieve the home web page of a particular web server. In this further development, the web page creation software is arranged so that a frame including links found after a relatively brief analysis is displayed first. If the user has sufficient patience to wait longer, a frame including links found after a more detailed context analysis is also displayed. In the systems 100-400, a modem 105 was used to connect the user's PC 101 to the internet. In other embodiments, PC 101 includes other devices using the HTTP, wireless access protocol (WAP) or a similar protocol to request and receive information from a web server.The invention is also applicable to networks that do not use the HTTP and HTML protocols. Similarly, the invention is applicable to "intranets" instead of the Internet. As those skilled in the art will appreciate, intranets are typically private networks that are either not connected to the Internet or are separated from the Internet by a firewall. In the systems 100-400, a helper web server 140, 240, 340, 440 was used to present the user with potentially relevant links when the user could not access requested information from a web server 120, 420. The helper web server and the web server were distinct web servers. In alternative embodiments, the web server and the helper web server may not only have the same IP address but may also be the same web server i.e. the helper web server helps itself. An advantage of such embodiments is that the response time in providing the user with relevant links can be minimised. For example, when compared to the HTTP requests 220 and HTTP responses 221 of systems 200-400, the need in such alternative embodiments for information to travel over physically large distances is avoided. The system 200 used participant monitoring software 242 and tracker software 243 to allow the helper server 240 to determine the allocation of remuneration. In alternative embodiments, the plug-in 211 (for example) is modified so that the modified plug-in is used to determine the allocation of remuneration. In this alternative embodiment, the HTTP request 234 and the HTTP response 235 are not needed as the HTTP response 233 is modified to include the actual links to linked servers 150 (rather than links to the helper server 240 which include the URL of the linked servers 150). When the user clicks on a link, the modified plug-in 211 records this and, if applicable, the participant ID so that the remuneration can be shared.

Claims (46)

CLAIMS:
1. A system comprising: a terminal for use by a user, wherein the terminal comprises a web browser operable to request web pages on behalf of the user; a web server; an error detector, wherein the error detector is operable to generate an error code in the event that a web page requested by the web browser is not sent to the web browser; an error code receiver, wherein the error code receiver is operable to receive an error code from the error detector and, in response, cause information to be sent to a context analyser regarding the context of the web page that was requested by the web browser from the web server; a context analyser, wherein the context analyser is operable to analyse the information from the error code receiver as context information and thereby establish a list of one or more web pages that may be of interest to the user, and wherein the context analyser is operable to communicate the list to a response generator; and a response generator, wherein the response generator is operable to generate a response based on the list and to communicate the response to the web browser.
2. A system according to claim 1, wherein the web server comprises the error detector.
3. A system according to claim 1, wherein the web browser comprises the error detector.
4. A system according to any one of claims 1 to 3, wherein the error detector comprises a timeout detector operable to cause the error detector to generate an error code in the event that a request for a web page has timed out.
5. A system according to any one of claims 1 to 4, wherein the terminal comprises one of a desktop PC, a mobile telephone and a personal digital assistant, and wherein the web browser comprises web browser software.
6. A system according to any one of claims 1 to 5, wherein the error code receiver is embodied as a plug-in that operates in conjunction with the web browser.
7. A system according to any one of claims 1 to 5, wherein the error code receiver is embodied as a proxy add-in that operates in conjunction with a proxy web server.
8. A system according to any one of claims 1 to 5, wherein the error code receiver is embodied as an error handler that operates in conjunction with a web server other than the web server of claims 1 to 5.
9. A system according to any preceding claim, wherein the context analyser and response generator are embodied as a helper web server.
10. A system according to any one of claims 1 to 8, wherein the error code receiver, the context analyser and the response generator are embodied as a plug-in that operates in conjunction with the web browser.
11. A system according to any one of claims 1 to 8, comprising a helper web server in communication with the context analyser and the response generator.
12. A system according to any preceding claim, wherein the context analyser comprises a database that indexes web pages with keywords.
13. A system according to any preceding claim, wherein, in the event that a web page requested by the terminal cannot be sent to the terminal, the context analyser is operable to: (i) determine a history of one or more web pages having links, which links led the user to the web page that could not be sent to the terminal, (ii) retrieve the one or more web pages, and (iii) analyse the one or more web pages to determine further context information.
14. A system according to claim 13, wherein the context analyser is operable to analyse the one or more web pages to determine keywords as further context information.
15. A system according to any preceding claim, wherein the error code receiver stores participant ID information, wherein the error code receiver is operable to send to the context analyser the participant ID information, and wherein the context analyser is operable to interpret the participant ID information as information regarding the context of the web page requested by the web browser.
16. A system according to any preceding claim, wherein the response generator is operable to send a response to the web browser to re-direct the web browser to one of the web pages of the list of one or more web pages that may be of interest to the user.
17. A system according to any one of claims 1 to 15, wherein the response generator is operable to generate a web page and send the web page to the terminal.
18. A system according to claim 17, wherein the response generator is operable to generate a web page containing one or more links to one or more respective web pages that may be of interest to the user.
19. A system according to any one of claims 11 to 18 when dependent on claim 9 or 10, wherein the error code receiver stores participant ID information, wherein the error code receiver is operable to cause the participant ID information to be conveyed to the response generator, wherein the response generator is operable to generate a web page containing one or more links that point to the helper server and to send the generated web page to the terminal, wherein each of the one or more links of the generated web page includes (i) information specifying a respective one of the one or more web pages that may be of interest to the user and (ii) the participant ID information, and wherein the helper server is operable to receive a web page request from the terminal that includes information specifying a web page and the participant ID information and, in response to the web page request, send a response to the web browser to re-direct the web browser to the web page specified in the web page request and increment a counter associated with the participant ID information.
20. A system according to claim 19, comprising a plurality of counters, each counter being associated with respective participant ID information.
21. A system according to claim 19 or 20, wherein the error code receiver is operable to convey the participant ID information to the context analyser, and wherein the context analyser is operable to convey the participant ID information to the response generator.
22. A system according to claim 18, wherein the context analyser stores linked ID information in association with the one or more links to one or more respective web pages, wherein the context analyser is operable to convey the linked ID information to the response generator, and wherein the response generator is operable to include respective linked ID information in the one or more links of the generated web page.
23. A system according to any preceding claim, further comprising one or more linked servers, wherein the one or more linked servers store the web pages that may be of interest to the user.
24. A system according to claim 17 or any one of claims 18 to 23 when dependent on claim 17, wherein the response generator is operable to generate a preliminary web page based on a preliminary list received from the context analyser, and wherein the response generator is operable to generate a supplementary web page based on a supplementary list received from the context analyser.
25. A system according to claim 24, wherein the response generator is operable to generate a web page comprising a frameset wherein one of the frames of the frameset specifies the preliminary web page and another of the frames of the frameset specifies the supplementary web page.
26. A plug-in for a web browser, the plug-in comprising: an error code receiver, wherein the error code receiver is operable to receive an error code from an error detector and, in response, cause information to be sent to a context analyser regarding the context of a web page that was requested by the web browser from a web server, and wherein the error code is indicative that the web page requested by the web browser was not sent to the web browser.
27. The combination of a plug-in according to claim 26 with a web browser.
28. The combination of a combination according to claim 27 with a terminal.
29. The combination of a plug-in according to claim 26 with a system according to claim 6 or any one of claims 9 to 25 when dependent on claim 6, wherein the plug-in of claim 26 forms the plug-in of the system.
30. A proxy add-in for a proxy server, the proxy add-in comprising: an error code receiver, wherein the error code receiver is operable to receive an error code from an error detector and, in response, cause information to be sent to a context analyser regarding the context of a web page that was requested by the web browser from a web server, and wherein the error code is indicative that the web page requested by the web browser was not sent to the web browser.
31. The combination of a proxy add-in according to claim 30 with a proxy server.
32. The combination of a proxy add-in according to claim 30 with a system according to claim 7 or any one of claims 9 and 12 to 25 when dependent on claim 7, wherein the proxy add-in of claim 30 forms the proxy add-in of the system.
33. An error handler for a web server, the error handler comprising: an error code receiver, wherein the error code receiver is operable to receive an error code from an error detector and, in response, cause information to be sent to a context analyser regarding the context of a web page that was requested by the web browser from the web server, and wherein the error code is indicative that the web page requested by the web browser was not sent to the web browser.
34. The combination of an error handler according to claim 33 with a web server.
35. The combination of an error handler according to claim 33 with a system according to claim 8 or any one of claims 9 and 11 to 25 when dependent on claim 8, wherein the error handler of claim 33 forms the error handler of the system.
36. A helper server comprising: a context analyser, wherein the context analyser is operable to analyse information received from an error code receiver as context information and thereby establish a list of one or more web pages that may be of interest to a user, and wherein the context analyser is operable to communicate the list to a response generator; and a response generator, wherein the response generator is operable to generate a response based on the list and to communicate the response to a web browser.
37. The combination of a helper server according to claim 36 with a system according to claim 9 or any one of claims 12 to 25 when dependent on claim 9, wherein the helper server of claim 36 forms the helper server of the system.
38. A helper server in communication with: a context analyser, wherein the context analyser is operable to analyse information received from an error code receiver as context information and thereby establish a list of one or more web pages that may be of interest to a user, and wherein the context analyser is operable to communicate the list to a response generator; and a response generator, wherein the response generator is operable to generate a response based on the list and to communicate the response to a web browser.
39. The combination of a helper server according to claim 38 with a system according to claim 11 or any one of claims 12 to 25 when dependent on claim 11, wherein the helper server of claim 38 forms the helper server of the system.
40. An error code receiver, wherein the error code receiver is operable to receive an error code from an error detector and, in response, cause information to be sent to a context analyser regarding the context of a web page that was requested by a web browser from a web server, and wherein the error code is indicative that the web page requested by the web browser was not sent to the web browser.
41. The combination of an error code receiver according to claim 40 with a system according to any one of claims 1 to 25, wherein the error code receiver of claim 40 forms the error code receiver of the system.
42. A computer program product defining processor interpretable instructions for causing a processor to implement a plug-in according to claim 26, a proxy add-in according to claim 30, an error handler according to claim 33, a helper server according to claim 36, a helper server according to claim 38 or an error code receiver according to claim 40.
43. A computer program product according to claim 42, wherein the computer program product comprises a data carrier.
44. A system as hereinbefore described and/or with reference to Figures 2 to 6.
44. A computer program product according to claim 42, wherein the computer program product comprises data downloadable from the internet.
45. A method of providing a user with an improved user interface, the method comprising the steps of: detecting that a web page requested by a web browser has not been sent to the web browser and, in response, generating an error code; receiving the error code and, in response, analysing the context of the web page and thereby establishing a list of one or more web pages that may be of interest to the user, and generating a response based on the list and communicating the response to the user.
46. A business method comprising the steps of: providing a helper server according to claim 36 or 38; distributing at least one of a plug-in according to claim 26, a proxy add-in according to claim 30, an error handler according to claim 33 or an error code receiver according to claim 40; agreeing with the owner of a linked web server, in return for remuneration, to direct web traffic resulting from situations where a web page requested by a user cannot be sent to the user, to the linked web server; and receiving remuneration from the owner of the linked web server.
47. A system as hereinbefore described and/or with reference to the accompanying Figures. Amendments to the claims have been filed as follows 1. A system comprising: a terminal for use by a user, wherein the terminal comprises a web browser operable to request web pages on behalf of the user; a web server; an error detector, wherein the error detector is operable to generate an error code in the event that, following the selection of a link on a first web page specifying a second web page, the second web page is not sent from the web server to the web browser; an error code receiver, wherein the error code receiver is operable to receive an error code from the error detector and, in response, cause information to be sent to a context analyser regarding the first web page; a context analyser operable to: receive the information from the error code receiver, analyse the content of the first web page to determine context information regarding the context of the link, establish a list of one or more web pages on the basis of the context information, and communicate the list to a response generator; and a response generator, wherein the response generator is operable to generate a response based on the list and to communicate the response to the web browser.
2. A system according to claim 1, wherein the web server comprises the error detector.
3. A system according to claim 1, wherein the web browser comprises the error detector.
4. A system according to any one of claims 1 to 3, wherein the error detector comprises a timeout detector operable to cause the error detector to generate an error code in the event that a request for a web page has timed out 5. A system according to any one of claims 1 to 4, wherein the terminal comprises one of a desktop PC, a mobile telephone and a personal digital assistant, and wherein the web browser comprises a web browser software.
6. A system according to any one of claims 1 to 5, wherein the error code receiver is embodied as a plug-in that operates in conjunction with the web browser.
7. A system according to any one of claims 1 to 5, wherein the error code receiver is embodied as a proxy add-in that operates in conjunction with a proxy web server.
8. A system according to any one of claims 1 to 5, wherein the error code receiver is embodied as an error handler that operates in conjunction with a web server other than the web server of claims 1 to 5.
9. A system according to any preceding claim, wherein the context analyser and response generator are embodied as a helper web server. 10. A system according to any one of claims 1 to 8, wherein the error code receiver, the context analyser and the response generator are embodied as a plug-in that operates in conjunction with the web browser.
11. A system according to any one of claims 1 to 8, comprising a helper web server in communication with the context analyser and the response generator.
12. A system according to any preceding claim, wherein the context analyser comprises a database that indexes web pages with keywords. 13. A system according to any preceding claim, wherein, in the event that the second web page is not sent to the terminal, the context analyser is operable to: (i) determine a history of one or more web pages having links, which links led the user to the first web page, (ii) retrieve the one or more web pages, and (iii) analyse the contents of the one or more web pages to determine further context information.
14. A system according to any preceding claim, wherein the context analyser is operable to analyse the first web page to determine keywords as further context information. 15. A system according to any preceding claim, wherein the error code receiver stores participant ID information, wherein the error code receiver is operable to send to the context analyser the participant ID information, and wherein the context analyser is operable to interpret the participant ID information as information regarding the context of the second web page.
16. A system according to any preceding claim, wherein the response generator is operable to send a response to the web browser to re-direct the web browser to one of the web pages of the list of one or more web pages that may be of interest to the user.
17. A system according to any one of claims 1 to 15, wherein the response generator is operable to generate a web page and send the web page to the terminal. 18. A system according to claim 17, wherein the response generator is operable to generate a web page containing one or more links to one or more respective web pages that may be of interest to the user.
19. A system according to any one of claims 11 to 18 when dependent on claim 9 or 10, wherein the error code receiver stores participant ID information, wherein the error code receiver is operable to cause the participant ID information to be conveyed to the response generator, wherein the response generator is operable to generate a web page containing one or more links that point to the helper server and to send the generated web page to the terminal, wherein each of the one or more links of the generated web page includes (i) information specifying a respective one of the one or more web pages that may be of interest to the user and (ii) the participant ID information, and wherein the helper server is operable to receive a web page request from the terminal that includes information specifying a web page and the participant ID information and, in response to the web page request, send a response to the web browser to re-direct the web browser to the web page specified in the web page request and increment a counter associated with the participant ID information.
20. A system according to claim 19, comprising a plurality of counters, each counter being associated with respective participant ID information.
21. A system according to claim 19 or 20, wherein the error code receiver is operable to convey the participant ID information to the context analyser, and wherein the context analyser is operable to convey the participant ID information to the response generator. 22. A system according to claim 18, wherein the context analyser stores linked ID information in association with the one or more links to one or more respective web pages, wherein the context analyser is operable to convey the linked ID information to the response generator, and wherein the response generator is operable to include respective linked ID information in the one or more links of the generated web page.
23. A system according to any preceding claim, further comprising one or more linked servers, wherein the one or more linked servers store the web pages that may be of interest to the user. 24. A system according to claim 17 or any one of claims 18 to 23 when dependent on claim 17, wherein the response generator is operable to generate a preliminary web page based on a preliminary list received from the context analyser, and wherein the response generator is operable to generate a supplementary web page based on a supplementary list received from the context analyser.
25. A system according to claim 24, wherein the response generator is operable to generate a web page comprising a frameset wherein one of the frames of the frameset specifies the preliminary web page and another of the frames of the frameset specifies the supplementary web page. 26. A plug-in for a web browser, the plug-in comprising: an error code receiver, wherein the error code receiver is operable to receive an error code from an error detector, wherein an error detector is operable to generate an error code in the event that, following the selection of a link on a first web page specifying a second web page, the second web page is not sent to the web browser, and wherein the error code receiver is operable, in response, to cause information to be sent to a context analyser regarding the first web page, and wherein the error code is indicative that the second web page was not sent to the web browser.
27. The combination of a plug-in according to claim 26 with a web browser.
28. The combination of a combination according to claim 27 with a terminal. 29. The combination of a plug-in according to claim 26 with a system according to claim 6 or any one of claims 9 to 25 when dependent on claim 6, wherein the plug-in of claim 26 forms the plug-in of the system.
30. A proxy add-in for a proxy server, the proxy add-in comprising: an error code receiver, wherein the error code receiver is operable to receive an error code from an error detector, wherein an error detector is operable to generate an error code in the event that, following the selection of a link on a first web page specifying a second web page, the second web page is not sent to a web browser, and wherein the error code receiver is operable, in response, to cause information to be sent to a context analyser regarding the first web page, and wherein the error code is indicative that the second web page was not sent to the web browser. 31. The combination of a proxy add-in according to claim 30 with a proxy server.
32. The combination of a proxy add-in according to claim 30 with a system according to claim 7 or any one of claims 9 and 12 to 25 when dependent on claim 10, wherein the proxy add-in of claim 30 forms the proxy add-in of the system. 33. An error handler for a web server, the error handler comprising: an error code receiver, wherein the error code receiver is operable to receive an error code from an error detector, wherein an error detector is operable to generate an error code in the event that, following the selection of a link on a first web page specifying a second web page, the second web page is not sent to a web browser, and wherein the error code receiver is operable, in response, to cause information to be sent to a context analyser regarding the first web page, and wherein the error code is indicative that the second web page requested by the web browser was not sent to the web browser.
34. The combination of an error handler according to claim 33 with a web server. 35. The combination of an error handler according to claim 33 with a system according to claim 8 or any one of claims 9 and 11 to 25 when dependent on claim 8, wherein the error handler of claim 33 forms the error handler of the system.
36. A helper server comprising: a context analyser operable to: receive information regarding a first web page from an error code receiver, wherein the first web page has a link specifying a second web page, and wherein an error code receiver is operable to receive an error code indicative that the second web page was not sent to a web browser, analyse the content of the first web page to determine context information regarding the context of the link, establish a list of one or more web pages on the basis of the context information, and communicate the list to a response generator; and a response generator, wherein the response generator is operable to generate a response based on the list and to communicate the response to a web browser.
37. The combination of a helper server according to claim 36 with a system according to claim 9 or any one of claims 12 to 25 when dependent on claim 9, wherein the helper server of claim 36 forms the helper server of the system.
38. A helper server according to claim 36, wherein the helper server comprises an auxiliary server in communication with the helper server, and wherein the context analyser and the response generator of the helper server are embodied in the auxiliary server.
39. The combination of a helper server according to claim 38 with a system according to claim 11 or any one of claims 12 to 25 when dependent on claim 11, wherein the helper server of claim 38 forms the helper server of the system. 40. A computer program product defining processor interpretable instructions for causing a processor to implement a plug-in according to claim 26, a proxy add-in according to claim 30, an error handler according to claim 33, or a helper server according to claim 36.
41. A computer program product according to claim 40, wherein the computer program product comprises a data carrier.
42. A computer program product according to claim 40, wherein the computer program product comprises data downloadable from the internet. 43. A method of providing a user with an improved user interface, the method comprising the steps of: detecting that, following the selection of a link on a first web page specifying a second web page, the second web page has not been sent to a web browser and, in response, generating an error code; receiving the error code and, in response, analysing the content of the first web page to determine context information regarding the context of the link, establishing a list of one or more web pages on the basis of the context information; and generating a response based on the list and communicating the response to the user.
GB0416405A 2004-07-22 2004-07-22 User interface for an internet web browser Withdrawn GB2421322A (en)

Priority Applications (13)

Application Number Priority Date Filing Date Title
GB0416405A GB2421322A (en) 2004-07-22 2004-07-22 User interface for an internet web browser
GBGB0501851.0A GB0501851D0 (en) 2004-07-22 2005-01-28 Improved user interface
CA002574521A CA2574521A1 (en) 2004-07-22 2005-07-19 Improved user interface
ES05762142T ES2297734T3 (en) 2004-07-22 2005-07-19 IMPROVED USER INTERFACE.
BRPI0513582-6A BRPI0513582A (en) 2004-07-22 2005-07-19 improved user interface
DE602005003449T DE602005003449T2 (en) 2004-07-22 2005-07-19 IMPROVED USER INTERFACE
PT05762142T PT1706832E (en) 2004-07-22 2005-07-19 Improved user interface
PCT/GB2005/002835 WO2006008516A1 (en) 2004-07-22 2005-07-19 Improved user interface
CNB2005800246119A CN100550015C (en) 2004-07-22 2005-07-19 Improved user interface
EP05762142A EP1706832B1 (en) 2004-07-22 2005-07-19 Improved user interface
JP2007522016A JP2008507057A (en) 2004-07-22 2005-07-19 Improved user interface
AU2005263962A AU2005263962B2 (en) 2004-07-22 2005-07-19 Improved user interface
US11/465,564 US8751601B2 (en) 2004-07-22 2006-08-18 User interface that provides relevant alternative links

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0416405A GB2421322A (en) 2004-07-22 2004-07-22 User interface for an internet web browser

Publications (2)

Publication Number Publication Date
GB0416405D0 GB0416405D0 (en) 2004-08-25
GB2421322A true GB2421322A (en) 2006-06-21

Family

ID=32922639

Family Applications (2)

Application Number Title Priority Date Filing Date
GB0416405A Withdrawn GB2421322A (en) 2004-07-22 2004-07-22 User interface for an internet web browser
GBGB0501851.0A Ceased GB0501851D0 (en) 2004-07-22 2005-01-28 Improved user interface

Family Applications After (1)

Application Number Title Priority Date Filing Date
GBGB0501851.0A Ceased GB0501851D0 (en) 2004-07-22 2005-01-28 Improved user interface

Country Status (3)

Country Link
CN (1) CN100550015C (en)
GB (2) GB2421322A (en)
PT (1) PT1706832E (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763293B (en) * 2009-12-30 2011-12-14 北京数码大方科技有限公司 Processing method and device of error message
CN102456063A (en) * 2011-03-02 2012-05-16 奇智软件(北京)有限公司 Webpage access error correction method and system
US10025760B2 (en) * 2013-01-25 2018-07-17 Ebay Inc. Mapping page states to URLs
CN104168316B (en) * 2014-08-11 2019-01-11 北京星网锐捷网络技术有限公司 A kind of Webpage access control method, gateway
CN104899308A (en) * 2015-06-12 2015-09-09 北京奇虎科技有限公司 Method and device for information recommendation under fault in browser page
CN107566420B (en) * 2017-10-27 2020-04-14 深信服科技股份有限公司 Method and equipment for positioning host infected by malicious code
US11176312B2 (en) 2019-03-21 2021-11-16 International Business Machines Corporation Managing content of an online information system
WO2024060106A1 (en) * 2022-09-22 2024-03-28 Citrix Systems, Inc. Providing web pages with generated content in response to uniform resource locator based penetration attacks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202087B1 (en) * 1999-03-22 2001-03-13 Ofer Gadish Replacement of error messages with non-error messages
US6594697B1 (en) * 1999-05-20 2003-07-15 Microsoft Corporation Client system having error page analysis and replacement capabilities
US20030135548A1 (en) * 2001-12-17 2003-07-17 Bushkin Arthur A. System and method for disseminating knowledge over a global computer network
WO2004040474A1 (en) * 2002-10-30 2004-05-13 Langley, Peter, James Method of handling web page requests from a browser
US6742030B1 (en) * 1997-11-24 2004-05-25 International Business Machines Corporation Method to keep a persistent trace of weblink use per user

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742030B1 (en) * 1997-11-24 2004-05-25 International Business Machines Corporation Method to keep a persistent trace of weblink use per user
US6202087B1 (en) * 1999-03-22 2001-03-13 Ofer Gadish Replacement of error messages with non-error messages
US6594697B1 (en) * 1999-05-20 2003-07-15 Microsoft Corporation Client system having error page analysis and replacement capabilities
US20030135548A1 (en) * 2001-12-17 2003-07-17 Bushkin Arthur A. System and method for disseminating knowledge over a global computer network
WO2004040474A1 (en) * 2002-10-30 2004-05-13 Langley, Peter, James Method of handling web page requests from a browser

Also Published As

Publication number Publication date
CN1997997A (en) 2007-07-11
CN100550015C (en) 2009-10-14
GB0501851D0 (en) 2005-03-09
PT1706832E (en) 2008-03-06
GB0416405D0 (en) 2004-08-25

Similar Documents

Publication Publication Date Title
EP1706832B1 (en) Improved user interface
US6973490B1 (en) Method and system for object-level web performance and analysis
USRE44899E1 (en) Method of delivery, targeting, and measuring advertising over networks
US7257546B2 (en) System and method for correlating user data from a content provider and user data from an advertising provider that is stored on autonomous systems
US6567411B2 (en) Method and apparatus for continuous narrowcast of individualized information over a data network
US7440953B2 (en) Apparatus, method and system for directory quality assurance
CA2457511C (en) Method, apparatus, and user interface for managing electronic mail and alert messages
US6983318B2 (en) Cache management method and system for storing dynamic contents
US8407482B2 (en) User session dependent URL masking
US20080134084A1 (en) Domain Bar
US8180376B1 (en) Mobile analytics tracking and reporting
US20030018707A1 (en) Server-side filter for corrupt web-browser cookies
US20060293957A1 (en) Method for providing advertising content to an internet user based on the user's demonstrated content preferences
US20070038729A1 (en) Systems and methods for direction of communication traffic
CN101321138A (en) Network devices for replacing an advertisement with another advertisement
US20120185588A1 (en) Distributed Data Collection and Aggregation
EP2053525A2 (en) Method, apparatus and computer medium for effecting registration of a persistent document identifier
KR20080107248A (en) Method and system for inserting targeted data in available spaces of a webpage
CN100550015C (en) Improved user interface
CN107508903A (en) The access method and terminal device of a kind of web page contents
US20030187976A1 (en) Tracking users at a web server network
US7533414B1 (en) Detecting system abuse
WO2008069718A1 (en) System and process for identifying addresses in a distributed data network

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)