`Montulli
`
`USOO577467OA
`[11] Patent Number:
`[45] Date of Patent:
`
`5,774,670
`Jun. 30, 1998
`
`[54] PERSISTENT CLIENT STATE IN A
`HYPERTEXT TRANSFER PROTOCOL
`BASED CLIENT-SERVER SYSTEM
`
`[75] Inventor: Lou Montulli, Palo Alto, Calif.
`
`[73] Assignee: Netscape Communications
`Corporation, Mountain View, Calif.
`
`Appl. No.: 540,342
`Filed:
`Oct. 6, 1995
`
`l
`[
`l
`[
`[51] Int. Cl.6 ........................... .. G06F 13/38; G06F 17/30
`[
`] US. Cl. .............................. .. 395/200.57; 395/200.33;
`395/200.47; 345/335
`[58] Field of Search ....................... .. 395/200.32, 200.33,
`395/300.48, 200.49, 200.57, 200.58, 200.6;
`345/335; 707/501, 10
`
`[56]
`
`References Cited
`
`PUBLICATIONS
`
`Van Name et al., “Putting thr lid on Pandora’s Cookie Jar”;
`PC Week Aug. 19, 1996 V13 N33 PN8t1).
`Foster, “Can mixing ‘cookies’ With online marketing be a
`recipe for heartburn?”; InfoWorld Jul. 22, 1996 v/8 p54(1).
`McCarthy, “The Netscape Biscuit Company”, Government
`Computer NeWs Sep. 23, 1996 v15 no 24 p55(2).
`Raynovich, “Microsoft readies browser update”; LAN
`Times; Aug. 5, 1996 v13 no 17 p7(1).
`Netscape; “Persistent Client State HTTP Cookies”; 1997;
`http://home. netscape.com. /neWsref/std/cookieispecihtn.
`Montulli et al.; “Proposed HTTP State Management Mecha
`nism”; Aug. 16, 1996 HTTP Working Group.
`
`“Cookie I—D Drafts”; Nov. 21, 1997; http://portal.research.
`bell—labs.com/ dmk/cookie—ver.html.
`CMP NetGuide Magazine; “The Trouble With Cookies”,
`May 1, 1996; Issue 305.
`
`Primary Examiner—Mark H. Rinehart
`Attorney, Agent, or Firm—Michael A. Glenn; Harvey J.
`Anderson
`
`[57]
`
`ABSTRACT
`
`A method and apparatus for transferring state information
`betWeen a server computer system and a client computer
`system. In one embodiment of the method, an http client
`requests a ?le, such as an HTML document, on an http
`server, and the http server transmits the ?le to the http client.
`In addition, the http server transmits a state object, Which
`describes certain state information, to the http client. The
`http client stores the state object, and Will typically send the
`state object back to the http server When making later
`requests for ?les on the http server. In a typical embodiment,
`the state object includes a domain attribute Which speci?es
`a domain or netWork address, and the state object is trans
`mitted from the http client to a server only When the http
`client makes an http request to the server and the server is
`Within the domain. In one embodiment, the apparatus
`includes a processor and memory and a computer readable
`medium Which stores program instructions. In the case of the
`client system, the instructions specify operations such as
`receiving and storing the state information; in the case of the
`server system, the instructions specify operations such as
`sending the state information to a client system.
`
`26 Claims, 8 Drawing Sheets
`
`0 a. D H.
`
`sends a URL
`
`server
`
`returns 0 HTML
`document and
`cookies
`
`774
`
`sends cookies
`
`Twitter-Google Exhibit 1049
`
`
`
`U.S. Patent
`US. Patent
`
`Jun. 30, 1998
`Jun. 30, 1998
`
`Sheet 1 0f 8
`Sheet 1 0f 8
`
`5,774,670
`5,774,670
`
`211
`'\
`
`a:
`
`mLm>me
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 2 of 8
`
`5,774,670
`
`724 \
`Processor
`
`A
`
`126 /
`
`M
`
`eff/cry
`
`125
`
`[120
`
`Moss
`Stomge
`127 _/
`
`l- 128
`
`I/o
`Controller
`
`Network
`
`Interterfoce
`
`V
`
`\_ 129
`
`C | i8 n t
`System
`
`100 —/
`
`134X
`Processor
`
`/\
`
`135\
`Memory
`
`I/O
`Controller
`\
`138
`137\
`Mass Storage
`
`/
`136
`
`Network
`Interterfoce
`V 739/
`
`FIG. 1B
`
`f 122
`
`Server
`System
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 3 of 8
`
`5,774,670
`
`Server A
`
`Server B
`
`Server C
`
`Image 2
`
`Network
`
`r
`
`\
`
`/
`
`130
`\
`
`One of the major features of the wor ld—wide—web
`is the ability to retrieve images from
`sites distributed around the world.
`
`These images can then be
`combined with a text document
`retrieved separately and presented
`as a single "virtual" document to
`an end-user
`
`Th is HTML document demonstrates
`this capability. This document was
`fetched from a server in northern (I D
`California. However, this image:
`was obtained from the University
`of Stockholm.
`
`FIG. 2
`
`
`
`US. Patent
`
`Jun. 30, 1998
`
`Sheet 4 0f 8
`
`5,774,670
`
`
`
`3mg:32:.28;9:2530$3.2:mewarmso:mmmoé33:833:30of2nosloflzlnto;ofUS$5385.2::9:heuse
`
`
`
`
`
`
`
`
`
`262383833:5822508:8o5;;8:2588c9:coo
`
`
`
`Am::\v22:39:8309::UBEEEAEEV
`
`
`
`Aivgasm9:83$2:BSeEQAEv
`
`
`
`
`
`.35mt:.EmzlvcocoB22.38___o=t_>__035m0mouoycmmma
`
`
`
`
`
`
`
`
`
`A.::m.__semi{8265330.2::.came.3;;\\”BHfuntm22:ans?_oosz
`
`
`
`Amvum_oc:_HeoL%cw:_c¥nowas
`
`
`
`“mmus_m_;#.Lo>o;oI
`
`
`
`
`
`osoobszmdmg:m\om.:m.;;;\\HBE=HSmmEEencmzoosz“ocomt:uc<
`
`Sm.GEN
`
`+0xy_mLo>_c:A;=:;.xovc_\cm.:m.;;;\\way¥;=nwmgc<vany20;?
`
`.A<\ve_o§§m
`
`
`
`
`
`.o_c_o%:oocLoSyLo:c_Lo>gmmoEo_%nocoymFmo;ycoezoovm_ch
`
`
`
`
`
`Aav.3:_noaoowt:mflozmcoemv”5:05:08
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 5 of 8
`
`5,774,670
`
`( Distributed Image Loading Example
`
`One of the major features of the war ld-wide web is the ability to
`retrieve images from sites distributed around the world. These
`images can then be combined with a text document retrieved
`separately and presented as a single "virtual" document to an end-user.
`Th is HTML document demonstrates this capability.
`
`This document was fetched from a server in Northern California.
`However, this image:
`
`was obtained from Illinois. And this one:
`
`A
`
`was obtained from the University of Stockholm.
`
`FIG. 3B
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 6 0f 8
`
`5,774,670
`
`0 I lent
`
`/
`172
`
`176
`
`\I:
`Y
`
`|
`|
`|
`|
`
`I
`178—\: 1
`
`sends a URL
`
`server
`
`returns 0 HTML
`document and
`cookies
`
`174
`
`sends cookies
`
`FIG. 4
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 7 of 8
`
`5,774,670
`
`Beg in
`
`Browser Sends a Request to Merchant Server. /212
`
`14
`‘
`Browser Receives and Displays HTML Document. /2
`
`214
`
`Yes Additional
`Browsing
`?
`
`216
`Browser Selects a Particular Product. /
`
`Merchant Server Sends Form. /218
`
`Browser Sends POST With Specific Information /222
`About Selected Product.
`
`Merchant Servers Generates and Sends Synthetic
`Page and Cookie Describing Selected Product.
`l
`Browser Stores Cookie That Describes Selected Product. / 226
`
`224
`/—
`
`228
`
`Browser Accesses a Check—0ut Page and Sends
`Cookie Describing Selected Products.
`
`230 /
`
`FIG. 5
`
`Server Processes the Transact ion. /240
`l
`End
`
`
`
`U.S. Patent
`US. Patent
`
`Jun. 30, 1998
`Jun. 30, 1998
`
`Sheet 8 0f 8
`Sheet 8 0f 8
`
`5,774,670
`5,774,670
`
`140
`
`140 /
`
`/
`
`142
`
`
`
`1
`PERSISTENT CLIENT STATE IN A
`HYPERTEXT TRANSFER PROTOCOL
`BASED CLIENT-SERVER SYSTEM
`
`FIELD OF THE INVENTION
`
`This invention relates to communication in a client-server
`computer systems. Speci?cally, the invention relates to
`client-server computer systems in Which a server can send
`state information to a client and the client stores the state
`information for later retransmissions back to the server.
`
`10
`
`BACKGROUND OF THE INVENTION
`
`An important use of computers is the transfer of infor
`mation over a netWork. Currently, the largest computer
`netWork in existence is the InterNet. The InterNet is a
`WorldWide interconnection of computer netWorks that com
`municate using a common protocol. Millions of computers,
`from loW end personal computers to high-end super com
`puters are coupled to the InterNet.
`The InterNet greW out of Work funded in the 1960s by the
`US. Defense Department’s Advanced Research Projects
`Agency. For a long time, InterNet Was used by researchers
`in universities and national laboratories to share informa
`tion. As the existence of the InterNet became more Widely
`knoWn, many users outside of the academic/research com
`munity (e.g., employees of large corporations) started to use
`InterNet to carry electronic mail.
`In 1989, a neW type of information system knoWn as the
`World-Wide-Web (“the Web”) Was introduced to the Inter
`Net. Early development of the Web took place at CERN, the
`European Particle Physics Laboratory. The Web is a Wide
`area hypermedia information retrieval system aimed to give
`Wide access to a large universe of documents. At that time,
`the Web Was knoWn to and used by the academic/research
`community only. There Was no easily available tool Which
`alloWs a technically untrained person to access the Web.
`In 1993, researchers at the National Center for Supercom
`puting Applications (NCSA) released a Web broWser called
`“Mosiac” that implemented a graphical user interface (GUI).
`Mosiac’s graphical user interface Was simple to learn yet
`poWerful. The Mosiac broWser alloWs a user to retrieve
`documents from the World-Wide-Web using simple point
`and-click commands. Because the user does not have to be
`technically trained and the broWser is pleasant to use, it has
`the potential of opening up the InterNet to the masses.
`The architecture of the Web folloWs a conventional client
`server model. The terms “client” and “server” are used to
`refer to a computer’s general role as a requester of data (the
`client) or provider of data (the server). Under the Web
`environment, Web broWsers reside in clients and Web docu
`ments reside in servers. Web clients and Web servers com
`municate using a protocol called “HyperText Transfer Pro
`tocol”
`AbroWser opens a connection to a server and
`initiates a request for a document. The server delivers the
`requested document, typically in the form of a text document
`coded in a standard Hypertext Markup Language (HTML)
`format, and When the connection is closed in the above
`interaction, the server serves a passive role, i.e., it accepts
`commands from the client and cannot request the client to
`perform any action.
`The communication model under the conventional Web
`environment provides a very limited level of interaction
`betWeen clients and servers. In many systems, increasing the
`level of interaction betWeen components in the systems
`often makes the systems more robust, but increasing the
`
`25
`
`35
`
`40
`
`45
`
`55
`
`65
`
`5,774,670
`
`2
`interaction increases the complexity of the interaction and
`typically sloWs the rate of the interaction. Thus, the con
`ventional Web environment provides less complex, faster
`interactions because of the Web’s level of interaction
`betWeen clients and servers.
`In the conventional Web environment, clients do not
`retain information of a session after the session is closed. In
`many systems, the ability to retain information after the
`systems become inactive is crucial to the functioning of the
`systems. Thus, it is desirable to alloW clients to have this
`ability.
`
`SUMMARY OF THE INVENTION
`
`The present invention involves a client-server system on
`a netWork in Which a server can send state information to a
`client and the client stores the state information. The stored
`state information can later be sent back to the server at
`appropriate times. In this manner, the state of a client can be
`maintained in the client-server system Where no state inher
`ently exists in such a system.
`One embodiment of the present invention is a netWork
`system for communicating documents containing informa
`tion such as text and one or more images. The system
`comprises a ?rst computer (i.e., a server) capable of sending
`such documents over a netWork such as the InterNet. The
`system also has a second computer (i.e., a client) Which can
`request these documents or ?les from the server. After the
`requested documents are received, the client can display the
`documents. In accordance With the present invention, the
`server can send state information to the client When a
`document is sent. The client then stores the state
`information, Which is typically in the form of a state object.
`In a subsequent request for documents to the server, the
`client can send the stored state information to the server.
`In an embodiment of the invention, the server uses a
`hypertext transfer protocol (“http”) to communicate over the
`netWork With clients; such clients also communicate With the
`server using the hypertext transfer protocol. This server and
`these clients are referred to as an http server and http clients
`respectively. The server typically Will include a server
`processor and a memory and a computer readable medium,
`such as a magnetic (“hard dis ”) or optical mass storage
`device, and the computer readable medium of the server
`contains computer program instructions for transmitting the
`?le from the server system to the client system and for
`transmitting the state object to the client system. The client
`typically Will include a client processor and a memory and
`a computer readable medium, such as a magnetic or optical
`mass storage device, and the computer readable medium of
`the client contains computer program instructions for receiv
`ing the state object, Which speci?es the state information,
`from the server and for storing the state object at the client.
`The state object, in a typical embodiment, Will include a
`name attribute, such as a domain attribute.
`One of the applications of the present invention is an
`on-line shopping system. A customer can broWse informa
`tion delivered by a merchant server using a broWser running
`on a client. The customer can also select products to be
`placed in a virtual shopping basket. The server then sends
`state information related to the selected products to the
`broWser on the client for storage. When the customer Wants
`to purchase the products in the virtual shopping basket, the
`broWser sends the corresponding state information to a
`speci?ed check-out Web page for processing.
`Another application of the present invention is an “on
`line” information service, such as a neWspaper’s Web server
`
`
`
`3
`Which includes articles or other information from the neWs
`paper’s subscription services. In one example, a newspaper
`or publishing company may have several different
`publications, each requiring a separate subscription fee
`Which may differ among the different publications. Auser of
`the information service may broWse the different publica
`tions by making http requests, from the client’s/user’s com
`puter system, to the publisher’s Web server Which responds
`With the requested publication and state information speci
`fying the user’s identi?cation, and other subscription infor
`mation (e.g., user registration and billing information) Which
`alloWs the user to vieW the contents of the publication; this
`information is typically provided by the user at least once in
`a conventional log-on process. Thereafter, this information
`is included in the state information Which is exchanged
`betWeen the client and the server in the process of the
`invention. Accordingly, When the user, during the broWsing
`process, desires to vieW another publication (e.g., from the
`same or different publisher) this state information Will be
`transmitted back to the Web server to provide the necessary
`subscription information (thereby entitling the user to vieW
`the publication) Without requiring the user to re-enter the
`necessary subscription information. In this manner, a user
`may broWse from publication to publication on the Web
`server or a different Web server in the domain Without
`having to re-enter, When seeking a neW publication, the
`necessary subscription information.
`These and other features of the present invention Will be
`disclosed in the folloWing description of the invention
`together With the accompanying draWings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The objects, features, and advantages of the present
`invention Will be apparent from the folloWing detailed
`description of the preferred embodiment of the invention
`With references to the folloWing draWings.
`FIG. 1A is a pictorial diagram of a computer netWork used
`in the present invention.
`FIG. 1B shoWs a computer netWork containing a client
`system and a server system.
`FIG. 2 illustrates the retrieval of remote text and images
`and their integration in a document.
`FIG. 3A shoWs an example of an HTML document Which
`can be processed by the broWser of the present invention.
`FIG. 3B shoWs the integrated document corresponding to
`the HTML document of FIG. 3A as it Would appear on a
`display screen of a client computer.
`FIG. 4 shoWs schematically the How of information
`betWeen a client and a server in accordance With the present
`invention.
`FIG. 5 is a How chart shoWing the operation of a merchant
`system of the present invention.
`FIG. 6 shoWs a computer system that could be used to run
`the broWser of the present invention.
`
`DETAILED DESCRIPTION
`Methods and apparatuses for maintaining state informa
`tion in a client-server based computer netWork system are
`disclosed. The folloWing description is presented to enable
`any person skilled in the art to make and use the invention.
`For purposes of explanation, speci?c nomenclature is set
`forth to provide a thorough understanding of the present
`invention. HoWever, it Will be apparent to one skilled in the
`art that these speci?c details are not required to practice the
`present invention. Descriptions of speci?c applications are
`
`10
`
`15
`
`25
`
`40
`
`45
`
`55
`
`65
`
`5,774,670
`
`4
`provided only as examples. Various modi?cations to the
`preferred embodiments Will be readily apparent to those
`skilled in the art, and the general principles de?ned herein
`may be applied to other embodiments and applications
`Without departing from the spirit and scope of the invention.
`Thus, the present invention is not intended to be limited to
`the embodiments shoWn, but is to be accorded the Widest
`scope consistent With the principles and features disclosed
`herein.
`Prior to describing the present invention, some introduc
`tory material is explained, including explanations concern
`ing client-server computing, InterNet addresses, URL’s and
`broWsing of the Web.
`
`CLIENT-SERVER COMPUTING
`
`FIG. 1A illustrates a conceptual diagram of a computer
`netWork 100, such as the InterNet. Computer netWork 100
`comprises small computers (such as computers 102, 104,
`106, 108, 110 and 112) and large computers, such as
`computers A and B, commonly used as servers. In general,
`small computers are “personal computers” or Workstations
`and are the sites at Which a human user operates the
`computer to make requests for data from other computers or
`servers on the netWork. Usually, the requested data resides
`in large computers. In this scenario, small computers are
`clients and the large computers are servers. In this
`speci?cation, the terms “client” and “server” are used to
`refer to a computer’s general role as a requester of data
`(client) or provider of data (server). In general, the siZe of a
`computer or the resources associated With it do not preclude
`the computer’s ability to act as a client or a server. Further,
`each computer may request data in one transaction and
`provide data in another transaction, thus changing the com
`puter’s role from client to server, or vice versa.
`A client, such as computer 102, may request a ?le from
`server A. Since computer 102 is directly connected to server
`A through a local area netWork, this request Would not
`normally result in a transfer of data over What is shoWn as
`the “netWork” of FIG. 1. The “netWor ” of FIG. 1 represents
`the InterNet Which is an interconnection of netWorks. A
`different request from computer 102 may be for a ?le that
`resides in server B. In this case, the data is transferred from
`server B through the netWork to server A and, ?nally, to
`computer 102. The distance betWeen servers A and B may be
`very long, e.g. across continents, or very short, e.g., Within
`the same city. Further, in traversing the netWork the data may
`be transferred through several intermediate servers and
`many routing devices, such as bridges and routers.
`The World-Wide-Web (“The Web”) uses the client-server
`model to communicate information betWeen clients and
`servers. Web Servers are coupled to the InterNet and respond
`to document requests from Web clients. Web clients (also
`knoWn as Web “broWsers”) are programs that alloW a user to
`simply access Web documents located on Web Servers.
`FIG. 1B shoWs, in more detail, an example of a client
`server system interconnected through the InterNet 100. In
`this example, a remote server system 122 is interconnected
`through the InterNet to client system 120. The client system
`120 includes conventional components such as a processor
`124, memory 125 (eg RAM), a bus 126 Which couples the
`processor 124 and memory 125, a mass storage device 127
`(eg a magnetic hard disk or an optical storage disk) coupled
`to the processor and memory through an I/O controller 128
`and a netWork interface 129, such as a conventional modem.
`The server system 122 also includes conventional compo
`nents such as a processor 134, memory 135 (eg RAM), a
`
`
`
`5,774,670
`
`5
`bus 136 Which couples the processor 134 and memory 135,
`a mass storage device 137 (eg a magnetic or optical disk)
`coupled to the processor 134 and memory 135 through an
`I/O controller 138 and a network interface 139, such as a
`conventional modem. It Will be appreciated from the
`description beloW that the present invention may be imple
`mented in softWare Which is stored as executable instruc
`tions on a computer readable medium on the client and
`server systems, such as mass storage devices 127 and 137
`respectively, or in memories 125 and 135 respectively.
`InterNet Addresses
`As discussed in the background, the InterNet consists of
`a WorldWide computer netWork that communicates using
`Well de?ned protocol knoWn as the InterNet Protocol (IP).
`Computer systems that are directly connected to the InterNet
`each have an unique InterNet address. An InterNet address
`consists of four numbers Where each number is less than
`256. The four numbers of an InterNet address are commonly
`Written out separated by periods such as 192.101.03
`To simplify InterNet addressing, the “Domain Name
`System” Was created. The domain name system alloWs users
`to access InterNet resources With a simpler alphanumeric
`naming system. An InterNet Domain name consists of a
`series of alphanumeric names separated by periods. For
`example, the name “driZZle.stanford.edu” is the name for a
`computer in the physics department at Stanford University.
`Read from left to right, each name de?nes a subset of the
`name immediately to the right. In this example, “driZZle” is
`the name of a Workstation in the “stanford” domain.
`Furthermore, “stanford” is a subset of the “edu” domain.
`When a domain name is used, the computer accesses a
`“Domain Name Server” to obtain the explicit four number
`InterNet address.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`6
`Web broWser then sends an http request to the server that has
`the Web document using the URL. The Web server responds
`to the http request by sending the requested HTTP object to
`the client. In most cases, the HTTP object is an plain text
`(ASCII) document containing text (in ASCII) that is Written
`in HyperText Markup Language (HTML). The HTML docu
`ment usually contains hyperlinks to other Web documents.
`The Web broWser displays the HTML document on the
`screen for the user and the hyperlinks to other Web docu
`ments are emphasiZed in some fashion such that the user can
`selected the hyperlink.
`FIG. 2 illustrates the retrieval of remote text and images
`and their integration in a Web page by a client computer 130.
`In FIG. 2, server A contains a text document coded in a
`standard HTML format. Server B contains an image ?le
`called Image 1 and server C contains another image ?le
`called Image 2. Each of these servers is remotely located
`from the other servers and the client 130. The transfer of data
`is via the Internet. It should be appreciated that the text and
`image ?les could be located in the same server Which is
`remote from client 130.
`FIG. 3A shoWs an example of an HTML document. FIG.
`3B shoWs the corresponding integrated document (Web
`page) as it Would appear on a display screen of a client
`computer. The ?rst line of the document in FIG. 3A reads
`“<title>Distributed Image Loading Example</title>.” In this
`case, the tags <title> and </title> are HTML delimiters
`corresponding to the beginning and ending, respectively, of
`text that is designated as the title of the HTML document.
`The title could be used for various purposes, such as listing
`of the document in an automatically generated index.
`The second line of the HTML document of FIG. 3A reads
`“<hi> Distributed Image Loading Example </hl>” The
`<h/1> and </hl> are HTML delimiters for a header that is to
`be displayed in a largest font. The broWser softWare running
`on the client computer 130 interprets the header tags and
`thus displays the text betWeen the header tags in a largest
`font siZe on the client’s display screen.
`After the title and header, the HTML document of FIG.
`3A contains the text “One of the major features .
`.
`.
`capability”. At the end of the text paragraph is another
`HTML tag shoWn as <p>. This is a tag indicating the end of
`a paragraph.
`To continue With the second paragraph of the HTML
`document, the text reads “This document .
`.
`. this image:
`<IMG align=middle src=”http ://WWW.su.se/
`SUlogo.gif“>Was obtained .
`.
`. ”. The text in angle brackets
`de?nes an image to be placed in the text. Speci?cally, the
`“IMG” tag indicates that an image is being de?ned. The
`“align=middle” tag indicates that the image should be
`aligned in the middle of the current line of text. Finally,
`“src=” tag indicates that the source image ?le can be located
`using the URL “http: / /WWW.su.se/ SUlogo.gif”.
`The line continues With the phrase “from the <A href=
`“http://WWW.su.se/index.html”>University of Stockholm</
`A> This phrase de?nes “University of Stockholm” as a link
`to another Web document. Speci?cally, the “A” tag de?nes
`the beginning of a link. The “href=” tag de?nes that the link
`is to a Web page that can be located using the URL
`“http://WWW.su.se/index.html” Next, the text “University of
`Stockholm” is the text that Will be the link. Finally, the “/A”
`tag de?nes the end of the link de?nition. As illustrated in
`FIG. 3B, the text “University of Stockholm” is displayed
`With underlining that indicates it is a link to another docu
`ment. If the user selects the underlined text “University of
`Stockholm”, then the broWser Will send out a http request for
`the Web page at the URL address “http: / /WWW.su.se/
`index.html”.
`
`Uniform Resource Locators
`To further de?ne the addresses of resources on the
`InterNet, the Uniform Resource Locator system Was created.
`A Uniform Resource Locator (URL) is a descriptor that
`speci?cally de?nes a type of InterNet resource and its
`location. URLs have the folloWing format:
`resourceitype: / / domain.address/ pathiname Where
`“resourceitype” de?nes the type of internet resource.
`Web documents are identi?ed by the resource type
`“http” Which indicates that the hypertext transfer pro
`tocol should be used to access the document. Other
`resource types include “ftp” (?le transmission protocol)
`and “telnet”. The “domain.address” de?nes the domain
`name address of the computer that the resource is
`located on. Finally, the “pathiname” de?nes a direc
`tory path Within the ?le system of the server that
`identi?es the resource. The right most name on the path
`name portion is usually the name of an actual ?le. Web
`pages are identi?ed by the resource type “http”. By
`convention, most Web pages end With the suf?x “.html”
`that suggests the ?le is a HyperText Markup Language
`document. An example of a URL for a Web document
`is:
`http: // info.cern.ch/hypertext/Datasources /WWW/
`Geographical.html
`This URL indicates that by using the HTTP (Web) protocol
`to reach a server called “info.cern.ch”, there is a directory
`“hypertext/Datasources/VVWW” that contains a hypertext
`document named “Geographical.html.” Resources on the
`Internet are uniquely addressable by their URL.
`BroWsing the World-Wide-Web
`To access an initial Web document, the user enters the
`URL for a Web document into a Web broWser program. The
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`
`
`5,774,670
`
`7
`It can be seen from the above example that the HTML
`document contains all information a browser needs for
`displaying a Web page. Thus, the only responsibility of a
`Web server is to provide the requested document, and there
`is no need for the server to request a client to do anything
`else. HoWever, this role of a server also limits the utility of
`the Web environment.
`
`ADDING STATE INFORMATION TO THE
`HYPERTEXT TRANSFER PROTOCOL
`
`10
`
`8
`Set-Cookie: NAME=VALUE; expires=DATE; path=
`PATH;
`domain=DOMA1NiNAME; secure
`The capitaliZed terms can be set by the server system. The
`?rst attribute is “NAME=VALUE”. This attribute serves to
`identify a cookie. The “NAME” attribute is a name for the
`cookie. The “NAME” attribute is the only required attribute
`on the “Set-Cookie” header in one embodiment. The
`“VALUE” is a value assigned to the previously de?ned
`name. The “VALUE” is a string of characters excluding, in
`one embodiment, semicolon, comma, and White spaces. If
`there is a need to place these characters in the VALUE,
`standard encoding methods, such as URL’s type %XX
`encoding, can be used.
`The “expires” attribute speci?es a data string that de?nes
`the valid life time of the corresponding cookie. Once the
`expiration date has been reached, the cookie Will no longer
`be stored in the client system. Thus, the client system Will no
`longer respond to Web servers With the cookie. Many coding
`schemes for designating time can be used. In a preferred
`embodiment, the “expires” attribute is formatted as: Wdy,
`DD-Mon-YY HHzMMzSS GMT In the this format, “Wdy”
`designates the day of a Week, “DD-Mon-YY” designates the
`day, month and year, and “HHzMMzSS GMT” designates the
`hour, minute and second, in GMT time Zone. Note that the
`“expires” attribute lets a client knoW When it is safe to purge
`a cookie, hoWever, the client is not required to delete the
`cookie. If an expires attribute is not provided by the server,
`then the cookies expires When the user’s session ends. This
`can be implemented by storing the cookie only in volatile
`memory.
`The “domain=DOMAINiNAME” attribute de?nes a
`domain for Which the cookie is valid. The domain attribute
`is usually set using the domain name of the sending Web
`server. Client systems examine the domain attribute When
`making later http requests. If the server that the client system
`is accessing falls Within the de?ned DOMAINiNAME,
`then the cookie may be sent to the server When making the
`http request. (The “path” must also be examined as Will be
`explained later.) When a server system falls Within the
`de?ned DOMAINiNAME, this is referred to as a “tail
`match.” Note that a domain name that de?nes a subset of a
`domain is deemed to match a larger enclosing domain. For
`example, the host names “anvil.acme.com” and “shipping
`.crate.acme.com” fall Within the “acme.com” domain.
`Only hosts Within the speci?ed domain can set a cookie
`for a domain. The value of the “domain” attribute must have
`at least tWo periods in them to prevent accepting values of
`the form “.com” and “.edu”. If no domain name is speci?ed,
`then the default value of the “domain” attribute is the
`domain name of the server that generated the cookie header.
`The “path” attribute is used to specify a subset of ?le
`system directories in a domain for Which the cookie is valid.
`If a cookie has already passed “domain” matching, then the
`path name of the URL for a requested document is compared
`With the “path” attribute. If there is a match, the cookie is
`considered valid and is sent along With the http request. All
`the characters of the de?ned path must match, hoWever there
`may be additional characters on the path name. Thus, further
`de?ned subdirectories Will match a path to the parent
`director. For example, the path “/foo” Would match “/foo/
`bar”, “/foo/bar.html”, and even “/foobar”, but “/foo” Will not
`match the path “/”. Note that the path “/” is the most general
`path since it Will match any path. If no path is speci?ed When
`a cookie is created, then the default path Will be the same
`path as the document that Was sent With the header Which
`contains the cookie.
`
`The present invention provides an extension to the prior
`art HTTP protocol. Using the teachings of the present
`invention, When a server responds to an http request by
`returning an HTTP object to a client, the server may also
`send a piece of state information that the client system Will
`store. In an embodiment of the present invention, the state
`information is referred to as a “cookie”. Included i