`GOOG 1011
`CBM of U.S. Patent No. 6,286,045
`
`Page 1 of 9
`
`
`
`U.S. Patent
`
`May 12, 1993
`
`Sheet 1 of 2
`
`5,751,956
`
`Fig.
`
`1
`
`‘°/\
`
`Console K13
`
`5‘
`5D
`
`'5'’
`
`
`
`ata Files
`
`Operating
`System
`
`32
`
`Zfi
`
`
`
`Fig. 2
`
`Page 2 of9
`
`Page 2 of 9
`
`
`
`U.S. Patent
`
`May 12, 1993
`
`Sheet 2 of 2
`
`5,751,956
`
`
` Client
`Requem
`Received
`
`Fig. 3
`
`40
`
`Valid
`Redirection
`
`Request?
`
`Pro Bess
`
`Accounting
`Data
`
`
`
`
`
`
`
`
`
`alid Access to
`lssue Alccess
`FY9085?
`
`Redirection
`Web Page?
`named
`
`Message
`13313
`
`
`
`
`53
`
`Issue
`Redirection
`Serve Web
`Page
`50
`
`Message
`
`
`
`Recewe URL
`
`Parse for
`Reduect
`
` Issue
`Redirection
`
`Message
`
`
`
`
`Issue
`
`Response
`Message
`
`
`
`68
`
`Fig. 4
`
`Page3of9
`
`Page 3 of 9
`
`
`
`1
`METHOD AND APPARATUS FOR
`REDIRECTION OF SERVER EXTERNAL
`HYPER-LINK REFERENCES
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`The present application is related to the following
`Application. assigne_d to the Assignee of the present Appli-
`cation:
`
`ll]
`
`1) IMPROVED WEB SCAN PROCESS. invented by
`Kirsch.
`[Attorney Docket Number: INFSl003DElJ
`GBR]. application Ser. No. D8l604.584. filed on Feb.
`21. 1996 concurrently herewith and;
`2) SECURE. CONVENIENT AND EFFICIENT SYS-
`TEM AND METHOD OF PERFORMING TRANS-
`INTERNET PURCHASE TRANSACTIONS invented
`by Kirsch, [Attorney Docket Number: INFS IOOSDEIJ
`GBR]. application Ser. No. {)8J'604.506_. filed CCII1Ctl1‘-
`rently herewith.
`
`20
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention is generally relntedto the control of
`network information server systems supporting World Wide
`Web based data pages and. in particular. to a server system
`and process for efficiently redirecting external server hyper-
`link references for purposes of controlling. moderating. and
`accounting for such reftaences.
`2. Description of the Related Art
`The recent substantial growth and use of the internation-
`ally connected network generally known as the Internet has
`largely been due to widespread support of the hypertext
`transfer protocol (HTTP). This protocol permits client sys-
`tems connected through Internet Service Providers (ISPs) to
`access independent and geographically scattered server sys-
`tems also connected to the Internet. Client side browsers,
`such as Netscape Mozilla and Navigator (Netscape Com-
`munications Corp.) and NCSA Mosaic. provide efficient
`graphical user intuface based client applications that imple-
`ment the client side portion of the l-l'I'I‘P protocol
`Server side application programs. generically referred to
`as I~l'I'I'Pd servers, implement the server side portion of the
`I-lT'l"P protocol. HTTP server applications are available both
`commercially. from companies such as Netscape. and as
`copyrighted freeware available in source code form. from
`NCSA.
`
`The distributed system of cornrntlnication and informa-
`tion transfer made possible by the HTTP protocol is com-
`monly known as the World Wide Web (W’WW or W3) or as
`simply “the Web.” From a client side user interface
`perspective. a system of uniform resource locators (URLs)
`is used to direct the opcaation of a web browser in estab-
`lishing atomic transactional comrnunication sessions with
`designated web server computer systems. In general. each
`URI. is of the basic form:
`
`hflp:!l<aeaver_uanre>.<sub<ioInain.tc[J_level4iounain:>r<?patii>
`
`35
`
`45
`
`55
`
`5,751,956
`
`2
`
`explicitly named data file constructed in accordance with the
`hypertext mark up language (HTML). This data file or web
`page is returned in one or more response phase HITP
`messages by the server. generally for display by the client
`browser. Additional embedded image references may be
`identified in the returned web page resulting in the client
`browser initiating subsequent HTML nansactions to retrieve
`typically embedded graphics files. Afully reconstructed web
`page image is then presented by the browser through the
`browser's graphical um interface.
`Due to the completely distributed clientlserver architec-
`ture of the Web. as made possible by the URL system further
`supported by the existing Internet name resolution services
`and routing conventions. I-l'I'l‘P servers can be indepen-
`dently established with little diflictdty. Consequently. the
`Web has no centrally or even regionally enforced organiza-
`tion other than loosely by name of the top level domain.
`Searching for information or other resources provided by
`individual I-l'1'TP servers is therefore problematic almost by
`definition. Because of the time. cost and complexity of
`assembling comprehensive. yet elficiently searchable data-
`bases of web information and resources. commercial Inter-
`net Business Strvices {IBS) have been established to pro-
`vide typically fee based or advertising revenue supported
`search engine services that operate against compilations of
`the information and resources available via the Web corre-
`lated to source URLs. Access to such search engines is
`usually provided through server local web pages served by
`the Internet Business Services. The results of a search are
`served in the form of local web pages with appropriate
`embedded remote or hyper-linked URLs dynamically con-
`structed by the server of the Internet Business Service.
`Because of the opportunity presented by the likely
`repeated client access and retrieval of search engine and
`search result web pages. providers of other Internet based
`services have begun to actively place advertisements on
`these web pages. As is typical in advertising mediums. the
`frequency of display of an advertisement generally defines
`the compensation paid to the advertisement publisher. Thus,
`the number of times that an advertisement is simply trans-
`ferred to a client browser provides an indication of how
`elfectively the advatisement is being published. A more
`direct measure of the effectiveness of a particular advertise-
`ment on a particular web page is the numba of times a client
`web browser chooses to actively pursue the URI. repre-
`sented by the advertisement. Thus. there is a need to be able
`to track information obtainable from a client browser when
`a hyper—linlred advertiser’s URL is selected.
`The difliculty in obtaining direct reference information
`arises from the fact that a web page with an embedded
`advertisement and corresponding remote URL is served in
`its entirety to the client browser upon first reference to the
`web page. The selection of a particular advertiser’s URL is
`then by definition performed through an independent trans-
`action directed to the I-l'I'I‘Pd server associated with the
`advertiser. Since the advertiser publishing lI'I'I‘Pd server is
`not part of this subsequent transaction. the publishing server
`is conventionally incapable of tracking client browser hyper-
`links actually executed to an advertiser’s URL or any other
`URLs embedded in a web page previously served to the
`client browser.
`
`'I11e serve;r_narne is typically ‘\vww” and the sub_
`domain.top—level_domain is a standard Internet domain
`reference. The path is an optional additional URL qualifier.
`Specification by user selection of a URL on the client side
`results in a transaction being established in which the client
`sends the serve: an ll'l'TP message referencing a default ctr
`
`Simple web page access counters are relatively well
`known and used throughout the Web. 'I11ese access counters
`are based on a common gateway interface (CGI) facility
`supported by modern l-l’1'TPd server systems The CGI
`facility permits generally small programs. at least typically
`in terms of function. to be executed by a server in response
`
`Page 4 of9
`
`Page 4 of 9
`
`
`
`5,751,956
`
`3
`to a client URL request. That is. the HTML web page
`definition provides for the embedding of a specific HTML
`reference that will specify execution of a server side CGI
`program as part of the process of the web browser recon-
`structing an image of a served web page. Such a HTML
`reference is typically of the form:
`dmg s1c=“htlp:f!www.ta:'getcomlcgi-bi.n.fcou.nr.cgi”‘>
`
`Thus. a counter value incremented with each discrete execu-
`tion of the CGI program (countcgi) dynarrrirxrlly provides
`part of the displayable image of the reconstructed wda page.
`The time. remote client requester. client domain. client
`browser type and other information that may be lcrrown
`through the operation of the HTTP protocol may be logged
`as part of the CGI program's function. Consequently, a
`reasonable manner of accounting and auditing for certain
`web page accesses exists.
`Access counters. however. fundamentally log only server
`local web page accesses. The client browser to the CGI
`program is evaluated by the client in connection with the
`initial serving of the web page to the client browser. The
`initial serving of the web page to the client browser can be
`connected. but any subsequent selection of a URL that
`provides a hyper-link reference to an external server is not
`observed and therefore is not counted by a CGI program
`based access oountrn. Other limitations of access counters
`arise from the fact that the implementing CGI program is an
`independently loadable executable. The CGI program must
`be discretely loaded and executed by the server computer
`system in response to each URL reference to the CGI
`program The repeated program loading and execution
`overhead. though potentially small for each individual invo-
`cation of the CGI program. can represent a significant if no:
`substantial load to the sever computer system. The frequent
`execution of CGI programs is commonly associated with a
`degradation of the eifective average access time of the
`H'I'I'Pd server in responding to client URL requests. Since
`an Internet Business Service providing access to a search
`engine logs millions of requests each day, even small
`reductions in the efliciency of serving web pages can seri-
`ously degrade the cost efliciency of the Internet Business
`Service. As of December. 1995. 1nfoSeelr Corporation. in
`particular. handles an avuage of five million retrievals a day.
`The execution overhead associated with CGI programs is
`often rather significant Many CGI programs are imple-
`mented at least in part through the use of an interpreted
`language such as Perl or TCL. Consequently, a substantial
`processing ovahead is involved in multiple mass storage
`transfers to load both the interpreter and CGI program
`scripts. to process the scripts through the execution of the
`interpreter, and then actually log whatever useful data is
`generated. typically to persistent mass storage. Finally. the
`interpreter andlor CGI program may have to be unloaded
`In addition. external CGI programs present a significant
`problem. in terms of maintenance. including
`and
`ongoing server configuration and control. and security in the
`context of a busy server system. Individual CGI programs
`will likely be needed for each independent web page in order
`to separately identify web page service counts. Alternatively.
`a CGI program can be made sufficiently by complex to be
`able to distinguish the precise manner in which the program
`is called so as to identify a particular web page and log an
`appropriately distinctive access count. Maintenance of such
`CGI programs on a server system where large numbers of
`page accesses are being separately counted is non trivial.
`Further. the existence of external programs, particularly
`of scripts that are interpreted dynamically, represents a
`
`4
`
`ll]
`
`potential security problem. In particular. the access and
`execute permissions of interpreted scripts must be carefully
`managed and monitored to prevent any unauthorized script
`from being executed that could. in turn. compromise the
`integrity of the data being collected if not the fundamental
`integrity of the server computer system itself. Consequently.
`known access counters provide no solution directly in full or
`in part to the need to account or audit URL references to
`external servers based on hyper—1inlrs from previously
`served web pages.
`The HTTP protocol itself provides for a basic server based
`system of URL redirection for servers and clients supporting
`the 1.5 or later versions of the HTTP protocol. A configu-
`ration file associated with an I-l'I'l‘P server (typically
`srrn.conf) can specify a redirect directive that effectively
`maps a server local directory URL refaence to an external
`URL reference through the use of a configuration directive
`of the form:
`
`Redirect fdirl http:f!uewsenrer,widgetnonr!dirl
`
`When a Version 1.5 or later H"lTP server receives a URL
`reference to a local directory (ldirl) that is specified as above
`for redirection, a redirect message is returned to the client
`browser including a new location in the form of an URL
`(http:b‘newserver.widget.coInldir1). This redirect URL is
`then used by the client browser as the basis for a conven-
`tional client URL request.
`.
`This existing server based redirection function is insufi-
`cient to support external server access traclcing since. in its
`usual form. the redirection is of the entire directory hierar-
`chy that shares a common redirected base directory. Even in
`the most restricted form. the redirection is performed on a
`per directory reference basis. Thus. every access to the
`directory. independent of the particular web page or graphics
`image or CGI program that is the specific object of an access
`request is nonetheless discretely redirected without distinc-
`tion. Any potential use of the existing server redirect func-
`tion is therefore exceedingly constrained if not practically
`prohibited by the HITP protocol defined operation of the
`redirect directive.
`Ftuthermore. the redirect directive capability of the I-l'I'I'P
`protocol server does not provide for the execution of a CGI
`program or other executable coincident with the perfor-
`mance of the redirection thereby essentially precluding any
`action to capture information related to the redirect URL
`request. In addition. the complexity of the resource configu-
`ration file necessary to specify redirection down to a pa
`directory configuration again raises significant
`configuration. maintenance and. to a lesser degree. security
`issues. Thus. saver redirection does not possess even the
`basic capabilities necessary to support external URL hyper-
`link reference auditing or accounting.
`Finally. a form of redirection might be accomplished
`though the utilization of a relatively complex CGI program.
`Such a redirection CGI program would likely need to
`perform some form of alternate resource identification as
`necessary to identify a redirection target URL. Assuming
`that a unique target URL can be identified. a redirection
`message can then be retlnned to a client from the CGI
`prog:rarn through the I-l'I'I'Pserver as necessary to provide a
`redirection URL to the client browser.
`Unfortunately. any such CGI program would embody all
`of the disadvantages associated with even the simplest
`access counter programs Not only would problems of execu-
`tion load and latency, as well as configuration. maintenance
`and security remain. but such an approach to providing
`redirection is inherently vulnerable to access spoofing.
`
`45
`
`55
`
`Page 5 of9
`
`Page 5 of 9
`
`
`
`5
`
`6
`
`5,751,956
`
`Access spoofing is a problem particular to CGI programs
`arising from the fact that the H'I'ML reference to the CGI
`program may be issued without relation to any particular
`web page. Consequently. any CGI program implementing an
`access counter or other auditing or accounting data collect-
`ing program can produce an artificially inflated access count
`from repeated reference to the CGI program HTML state-
`ment outside and independent of a proper web page. Access
`spoofing inherently undermines the apparent if not actual
`integrity of any data gathered by a CGI program Since. at
`minimum. the ability to insure the accuracy of even a simple
`access count would be of fundamental importance to an
`Internet service advertiser.
`the use of CGI programs to
`provide even basic accounting or auditing functions is of
`limited practical use. Finally. HTML does not provide a
`tamper-proof way for two URLs to be accessed in sequence
`with just one URL reference buton. such as. for example. a
`server CGI counter URL reference followed by external
`server URL reference.
`
`SUMMARY OF THE INVENTION
`
`Thus. a general purpose of the present invention is to
`movide a system and method of reliably tracking and
`redirecting hype"-linlr references to external server systems.
`This is achieved by the present invention through the
`provision of a Web server computer system that provides for
`server based controlled management over a client reference
`to a resource locator that is independently selected by a
`client computer system and that references an external Web
`Server. The Web server system provides a client system with
`a predetermined URL reference to the Web server system.
`encoded with predetermined redirection and accounting data
`including a reference to a second server system. On receipt
`by the first Web server system of the predetermined URL
`reference from the client system, the predetermined redirec-
`tion and accounting data is decoded from the predetermined
`URL and processed by the Web server system to provide the
`client system with a redirection message including the
`reference to the second server syste-.m. The accounting data
`is processed by the Web server system and resulting data is
`selectively stored by the Web server system.
`Thus. an advantage of the present invention is that URL
`reference data is captured in an expedient manner that
`interposes a minimum latency in returning the ultimately
`referenced web page while imposing minimum visibility of
`the redirection protocol on client users
`Another advantage of the present invention is that inde-
`pendent invocations of server external supportprograrns and
`multiple external data references are not required as a
`consequence of the present invention. thereby rninirnizing
`the CPU and disk intensive load on the web servr: computer
`system and the resulting latency.
`A further advantage of the present invention is that the
`reference identifier and redirection directive can both be
`maintained wholly within the URL specification discretely
`provided by a client HTM1. request Thus.
`the present
`invention is superior in both eliiciency and maintenance
`requirements to a CGI counter. or any method that incor-
`porates a CGI counter.
`Sti.ll another advantage of the present invention is that
`program modifications necessary to support the protocol of
`the present invention are implemented entirely at the server
`end of a protocol transaction. Client side participation in the
`transaction is within the existing client side defined HTML
`protocol.
`A still further advantage of the present invention is that
`the implementation of the invention introduces minimum
`
`exposure to additional security breaches due to the closed
`form of the protocol while providing substantial security
`against inappropriate URL and protocol references. This is
`accomplished preferably by the inclusion of validation codes
`inside the URL speci.ficat.ion.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`These and other advantages and features of the present
`invention will become better understood upon consideration
`of the following detailed description of the invention when
`considered in connection with the accompanying drawings.
`in which like reference numerals designate like parts
`throughout the figures thereof. and wherein:
`FIG. 1 provides a schematic representation of client and
`server computer systems internetworked through the Inter-
`net;
`
`20
`
`FIG. 2 provides a block diagram of a server computer
`system implementing an HTTP daemon (H'I'I‘Pd) server in
`accordance with a preferred embodiment of the present
`invention;
`
`FIG. 3 provides a flow diagram illustrating the process
`performed by a preferred embodiment of the present inven-
`tion in receiving and processing client URL requests; and
`FIG. 4 provides a flow diagram illustrating the server side
`processing of special redirect URLs in accordance with
`another preferred embodiment of the present invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`35
`
`45
`
`SD
`
`55
`
`65
`
`A typical environment 10 utilizing the Internet for net-
`work services is shown in FIG. 1. Client computer system 12
`is coupled directly or through an Internet service provider
`(ISP) to the Internet 14. By logical reference via a uniform
`resotnce locator. a corresponding Internet server system 16.
`18 may be accessed. A generally closed hypertext transfer
`protocol transaction is conducted between a client browser
`application executing on the client system 12 and an I-II'I‘Pd
`server application executing on the server system 16. In a
`preferred embodiment of the present invention. the server
`system 16 represents an Internet Business Service that
`supports or serves web pages that embed hyper-link refer-
`ences to other I-lTI‘Pd server systems coupled to the Internet
`14 and that are at least logically external to the server system
`16.
`
`A web page served by the server system 16 to the client
`12 embeds at URL reference to a web page served by the
`logimlly external server system. Selection of this embedded
`URL l.hrou§1 the client browser of the client computer
`system 12 results in an HTTP transaction with the server
`system 16 rather than the external server. The information
`stored in the embedded URL first served with the web page
`to client system 12 is thus provided back to the server system
`16 upon selection of the URL even though the apparent
`target of the U'RLis the external server system. Aredirection
`response is men provided by the server system 16 to the
`client system 12 providing the corresponding redirection
`URL.
`
`As shown in FIG. 2. the server system 16 receives the
`redirection request infcnnation via a network connection 20
`to a network interface 22 within the server system 16. The
`network interface 2.2 is coupled through an internal bus 24
`to a central processing unit (CPU) 26. The CPU 26 executes
`a network operating system 28 in support of the network
`interface 22 and other functional aspects of the server
`system 16. The network operating system 28 supports the
`
`Page 6 of9
`
`Page 6 of 9
`
`
`
`5,751,956
`
`7
`execution by the CPU 26 of an H'I'I'Pd server application 30
`that defines the responsive operation of the server system 16
`to H'l"1"P requests received via the network 20. Finally. the
`network operating system 28 provides for temporary and
`persistent storage of data in a mass storage device 32
`preferably including a persistent storage media such as
`provided by a conventional hard disk drive.
`In accordance with the preferred embodiment of the
`present
`invention.
`the embedded redirection information
`provided as part of a URL HTTP request is processed by the
`H"l'1"'Pd server 30. Preferably. the processing by the H"lTPd
`server 30 is performed through the execution of the server 30
`itself as opposed to the execution of any external CGI
`programs or the like. The redirection information is pro-
`cessed by the execution of the server 30 to identify and
`validate the particular URL reference that provided the
`redirection information and to generate a redirection target
`URL.
`
`In a preferred embodiment of the present invention. an
`embedded URL containing redirection information is for-
`matted as follows:
`
`http:J!<direcL_server>sFIedi:er:t?¢data>?hrtp:!t<rcdirecLserver:
`
`The diroct_serve:r portion of the embedded URL specifies
`the H'l"l"P server target of a transaction that is to be initially
`established by the client system 12. The remaining infor-
`mation is provided to the targeted direct server. While the
`direct server may be any H'I'l'P server accessible by the
`client system 12 that has been designated to service redi-
`rection requests in accordance with the present invention.
`the direct server is preferably the I-l'I'I‘Pd server 3|} that
`initially served the web page with the embedded redirection
`URL to the client system 12.
`The term “redirect” in the embedded redirection URL is
`a key word that is pre-identified to the HTI'Pd server 30 to
`specify that the URL corresponds to a redirection request in
`accordance with the present invention. Although the term
`“redirect” is the preferred term. any term or code may be
`selected provided that the term can be uniquely identified by
`the H'I'I'Pd server 30 to designate a redirection URL.
`The “
`” term of the redirection URL provides refer-
`ence identifier data to the I-l'I"l'Pd server 30 that can be used
`to further identify and potentially validate a redirection URL
`to the H'ITPd server 30. This data thus permits an account-
`ing of the redirection URL to be made by the l{I"I’Pd server
`30. In the context of an advertisement. the data may encode
`a particular advertising client for whom access data may be
`kept. a particular instance of the graphic image provided to
`a client system 12 in association with the redirection URL.
`and potentially a validation code that may serve to ensure
`that inappropriate client uses of a redirection URL can be
`distinguished and discarded by the H'I'I'Pd server 30.
`An exemplary redirection URL. constructed using HTML
`in accordance with a preferred embodiment of the present
`invention. is as follows.
`
`25
`
`30
`
`35
`
`45
`
`55
`
`«in lnef'=“|:|ttp :l!www.i11foaeek.oon1r'IShed.imt?l*iwPg-(XJ3-
`AA?ls2|:p:!fwww.newspage.com">
`
`Within the redirection data. the data component “NwPg“
`serves as a client or account identifier. The data component
`“D03” is a series identifier indicating a particular graphic
`image that was associated with the redirection URL as
`embedded in the web page served to the client system 12
`Finally. the data component “
`” may be utilized to provide
`a basic validation identifier that serves to permit the l-l'I'I'Pd
`server 30 to identify inappropriate repeated submissions of
`
`I55
`
`8
`the redirection URLto the server system 16 or those that are
`determined to be obsolete by convention.
`In an alternate embodiment of the present invention. the
`validation data encodes a data representation that can be
`used in conjunction with the HTTP protocol to provide
`information regarding the client system 12 that submitted
`the redirection URL and. optionally.
`the graphics series
`identifier data. to limit repeated use of the redirection URL
`by the same client system 12. within a defined short period
`of time. Thus. an inappropriate attempt by a third party client
`to, in elfect. tamper with the data collected by the server
`system 16 with respect to any particular redirection URL can
`be identified with relative if not complete catainty and
`blocked. In addition. date codes older than a certain time
`interval can be declared by computation to be invalid.
`Consequently. a copy of the embedded redirection URL
`cannot be stored on a client system 12 and remain viable for
`use for longer than a period of time defined exclusively by
`the server computer system 16.
`Each of the data terms within a redirection URL may be
`statically or dynamically created by the H'I'I‘Pd server 30 as
`part of the process of originally serving a web page with the
`embedded redirection URL to a client computer system 12.
`With dynamic generation. different graphic images corre-
`sponding to a single advertiser or one of any number of
`advertisers may be effectively served with an otherwise
`statically defined web page. The data terms of the embedded
`redirection URL may be dynamically selected based on the
`identity of the advertiser and graphim image in addition to
`separately establishing a hypertext link to the graphics
`image as part of an instance of serving a particular web page
`by the HTI'Pd server 30. Indeed. the selection of advertiser
`and graphics image could be made at least in part on the
`identity of the client computer system 12 as established
`through information provided by the conventional operation
`of the lfI'I'P protocol. and on the client profile if known.
`The validation code may also be dynamically generated.
`In an alternate embodiment of the present invention. the
`validation code encodes a representation of the day of the
`year with the account and image identifier data tends to
`generate an identifier. preferably encoded as two digits. that
`provides a suflicient degree of uniqueness to allow an
`embedded redirection URL to be aged on a per day basis.
`Ftn'thermore. the validation code remains constant on a per
`day basis and thereby still permits the number of references
`on a per day per specific client system 12 basis to be tracked
`by the HTI‘Pd server 30 so as to limit the frequency that a
`specific instantiation of the web page is repeatedly presented
`to a specific client 12. Additionally, the H'ITPd server 30
`may operate to block operation on a received redirection
`URL where the corresponding web page has not recently
`been served to the requesting client 12.
`Various bit shift. check sum. and modulo arithmetic
`algorithms can be utilized to generate the validation code in
`a consistent manner known to the I-l'ITPd server 30. but that
`cannot be readily discerned upon examination of the result-
`ing redirection URL by a specific client computer system 12.
`Altcrnately.
`the validation code may be an arbitrarily
`selected value that is implicitly recognized as valid by the
`H'I'I'Pd server 30 for a programmable period of time from
`one day to several weeks or longer. In the extreme. and
`consistent with the initially preferred embodiment of the
`present
`invention. the validation code is a static value
`provided as part of the embedded redirection URL.
`Independent of the particular manner the validation code
`is generated or the assigned length of time that the code is
`recognized by the H'ITPd server 30 as valid, evaluation of
`
`Page 7 of9
`
`Page 7 of 9
`
`
`
`5,751,956
`
`9
`
`the data terms of a redirection URL is preferably performed
`completely internally to the I-l"I"I'Pd server 30. The data
`terms are preferably sufiiciently complete as to be unam-
`biguous in identifying a particular instantiation of an embed-
`ded redirection URLwithout significant. if any. resort to the
`loading and execution of an external program or even
`significantly to interrogate look-up files stored by the per-
`sistent storage device 32. Consequently.
`the burden of
`evaluating aredirection URL in accordance with the present
`invention is almost completely computational in nature. As
`is conventionally appreciated. the perfonnanoe of a server
`computer system 16 is not typically computationally bound.
`but rather bound by the rate of il3pllUOLIIpt.tl. (HO) access to
`the persistent storage device 32 and to the network 20. By
`substantially if not completely limiting the evaluation of the
`redirection URL to a computational operation, with only a
`limited U0 operation to save auditing or accounting data
`obtained in connection with aredirection URL. an optimally
`minimal burden on the server computer system 16 is realized
`by the operation of the present invention. Indeed. the saving
`of accounting or auditing data may be cached by the network
`cperating system 28 to defer the write IIO operation to the
`persistent storage device 32 until otherwise excess [10
`bandwidth is availablein the ongoing operation of the server
`compI.Ita' system 16.
`The final portion of the preferred structure of a redirection
`URL is a second URL. This second URL preferably iden-
`tifies directly the target server syst for the redirection.
`Preferably, any path portion provided as part of the direct
`server specification of the redirection URL is repeated as a
`path component of the redirect server portion of the redi-
`rection URL. However. path portion identity is not required.
`In general. all that is required in accordance with the present
`invention is a one to one correspondence between the direct
`server and redirect server terms of the redirection URL A
`less strict relationship may be used if the impact upon the
`auditing or accounting data collected by the operation of the
`present invention is consistent with the desired characteristic
`of that data. For example. difierent direct server specifica-
`tions may correlate to the use of a common redirect server
`as a means of further identifying a particular instantiation of
`an embedded redirection URL. Alternately. otherwise iden-
`tical instantiations of an embedded redirection URL may
`reference any of a number of redirect servers. This may be
`done to distribute load on the cooperatively operating redi-
`rect servers or to provide a means for verifying the auditing
`or accounting data collected by the ongoing opaation of the
`present invention. Indeed. the second URL of a redirection
`URL can itself be a redirection UR]... though care needs to
`be taken not to create an infinite redirection loop.
`A preferred method 40 of processing redirection URLs
`provided to a server computer system 16 by a client com-
`puter system 12 is illustrated in FIG. 3. As each client
`request is received 42 the data provided as part of the request
`is cttamined to determine whether the request embeds the
`red