`MOntulli
`
`USOO577467OA
`Patent Number:
`11
`(45) Date of Patent:
`
`5,774,670
`Jun. 30, 1998
`
`54 PERSISTENT CLIENT STATE INA
`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
`21
`22
`Filed:
`Oct. 6, 1995
`Int. Cl. ............................. G06F 13/38; G06F 17/30
`51
`52) U.S. 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, 2006;
`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/cookie Specihtn.
`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/ dimk/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
`ABSTRACT
`57
`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 file, Such as an HTML document, on an http
`server, and the http server transmits the file 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 files on the http Server. In a typical embodiment,
`the State object includes a domain attribute which specifies
`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
`
`client
`
`
`
`
`
`
`
`sends O URL
`
`Se Ver
`
`returns a HTML
`document and
`cookies
`
`174
`
`PROVI-1014 - Page 1
`
`
`
`U.S. Patent
`
`
`
`Jun. 30, 1998
`
`Sheet 1 of 8
`
`5,774,670
`
`E 19A] ©S
`
`
`
`
`
`PROVI-1014 - Page 2
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 2 of 8
`
`5,774,670
`
`-120
`
`128
`
`I/O
`Controller
`
`MOSS
`Storage
`
`Network
`Interter foce
`
`12
`
`
`
`134
`
`I/O
`Controller
`
`137
`
`138
`
`Mass Storage
`
`136-/
`
`Network
`Interter foce
`
`139
`
`FIC. 1B
`
`PROVI-1014 - Page 3
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 3 of 8
`
`5,774,670
`
`Server A
`
`Server B
`
`Server C
`
`
`
`One of the major features of the world-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
`on end-user
`
`This HTML document demonstrotes
`this capability. This document was
`fetched from a server in northern
`California. However, this image:
`was obtained from the University
`of Stockholm.
`
`FIG. 2
`
`PROVI-1014 - Page 4
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 4 of 8
`
`5,774,670
`
`V8 º f) I „H
`
`PROVI-1014 - Page 5
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 5 of 8
`
`5,774,670
`
`
`
`Distributed Image Loading Example
`One of the major features of the world-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.
`This HTML document demonstrates this capability.
`
`This document WOS fetched from a server in Northern Coifornia.
`However, this image:
`
`was obtained from Illinois. And this one:
`
`was obtained from the University of Stockholm.
`
`FIC. 3B
`
`PROVI-1014 - Page 6
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 6 of 8
`
`5,774,670
`
`client
`
`
`
`sends a URL
`
`Se Ver
`
`176-N
`
`178
`
`N
`
`returns a HTML
`document Ond
`cookies
`
`174
`
`sends cookies
`
`FIG. 4
`
`PROVI-1014 - Page 7
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 7 of 8
`
`5,774,670
`
`
`
`
`
`
`
`
`
`
`
`Browser Sends a Request to Merchant Server.
`
`212
`
`Browser Receives and Displays HTML Document.
`
`O
`
`214
`
`214
`
`Additional
`Browsing
`p
`
`No
`Browser Selects a Porticulor Product.
`
`216
`
`Merchant Server Sends Form.
`
`218
`
`Browser Sends POST With Specific Information
`About Selected Product.
`
`Merchant Servers Generates and Sends Synthetic
`Page and Cookie Describing Selected Product.
`
`222
`
`224
`
`Browser Stores Cookie That Describes Selected Product.
`
`226
`
`228
`
`More
`Product
`Browsing
`
`
`
`No
`Browser Accesses a Check-Out Page and Sends
`Cookie Describing Selected Products.
`
`230
`
`FIG. 5
`
`Server Processes the Transaction.
`End
`End
`
`240
`
`PROVI-1014 - Page 8
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 8 of 8
`
`5,774,670
`
`
`
`140 /
`
`PROVI-1014 - Page 9
`
`
`
`5,774,670
`
`1
`PERSISTENT CLIENT STATE INA
`HYPERTEXT TRANSFER PROTOCOL
`BASED CLIENT SERVER SYSTEM
`
`FIELD OF THE INVENTION
`
`This invention relates to communication in a client-server
`computer Systems. Specifically, 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.
`
`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 first 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 files 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 disk') or optical mass storage
`device, and the computer readable medium of the Server
`contains computer program instructions for transmitting the
`file 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 Specifies 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
`Specified 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
`
`15
`
`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
`U.S. Defense Department's Advanced Research Projects
`Agency. For a long time, InterNet was used by researchers
`in universities and national laboratories to share informa
`25
`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” (HTTP). 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
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`PROVI-1014 - Page 10
`
`
`
`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. A user of
`the information service may browse the different publica
`tions by making http requests, from the clients/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 identification, 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.
`
`15
`
`25
`
`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 flow of information
`between a client and a Server in accordance with the present
`invention.
`FIG. 5 is a flow 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, Specific 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 specific details are not required to practice the
`present invention. Descriptions of Specific applications are
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,774,670
`
`4
`provided only as examples. Various modifications to the
`preferred embodiments will be readily apparent to those
`skilled in the art, and the general principles defined 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, URLs 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
`specification, 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 file 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 “network” of FIG. 1 represents
`the InterNet which is an interconnection of networks. A
`different request from computer 102 may be for a file that
`resides in Server B. In this case, the data is transferred from
`server B through the network to server A and, finally, 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 (e.g. RAM), a bus 126 which couples the
`processor 124 and memory 125, a mass storage device 127
`(e.g. 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 (e.g. RAM), a
`
`PROVI-1014 - Page 11
`
`
`
`5,774,670
`
`15
`
`25
`
`35
`
`40
`
`S
`bus 136 which couples the processor 134 and memory 135,
`a mass Storage device 137 (e.g. 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 defined 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.0.3
`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 defines 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.
`Uniform Resource Locators
`To further define the addresses of resources on the
`InterNet, the Uniform Resource Locator system was created.
`A Uniform Resource Locator (URL) is a descriptor that
`Specifically defines a type of InterNet resource and its
`location. URLs have the following format:
`resource type: / / domain.address/ path name Where
`“resource type' defines the type of internet resource.
`Web documents are identified 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 (file transmission protocol)
`and “telnet'. The “domain.address' defines the domain
`name address of the computer that the resource is
`located on. Finally, the “path name' defines a direc
`tory path within the file system of the server that
`identifies the resource. The right most name on the path
`name portion is usually the name of an actual file. Web
`pages are identified by the resource type "http'. By
`convention, most Web pages end with the suffix *.html
`that Suggests the file is a HyperTextMarkup Language
`document. An example of a URL for a Web document
`S.
`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/WWW 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
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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 HyperTextMarkup 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 file
`called Image 1 and Server C contains another image file
`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 files 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 first 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 </hld 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
`defines an image to be placed in the text. Specifically, the
`“IMG’ tag indicates that an image is being defined. 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 file 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 defines “University of Stockholm' as a link
`to another Web document. Specifically, the “A” tag defines
`the beginning of a link. The “href=” tag defines 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 defines the end of the link definition. 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.
`
`PROVI-1014 - Page 12
`
`
`
`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.
`
`8
`Set-Cookie: NAME=VALUE; expires=DATE; path=
`PATH;
`domain=DOMA1N NAME; secure
`The capitalized terms can be set by the server system. The
`first 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 defined
`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 96XX
`encoding, can be used.
`The “expires' attribute specifies a data String that defines
`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: Way,
`DD-Mon-YY HH:MM:SS GMT. In the this format, “Way”
`designates the day of a week, “DD-Mon-YY” designates the
`day, month and year, and “HH:MM:SS 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=DOMAIN NAME attribute defines 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 defined DOMAIN NAME,
`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
`defined DOMAIN NAME, this is referred to as a “tail
`match.” Note that a domain name that defines 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 Specified 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 specified,
`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 file
`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 defined path must match, however there
`may be additional characters on the path name. Thus, further
`defined 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 “f” is the most general
`path Since it will match any path. If no path is specified 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.
`
`ADDING STATE INFORMATION TO THE
`HYPERTEXT TRANSFER PROTOCOL
`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 in the state
`information (the cookie) is a description of a range of URLS
`for which that state information should be repeated back to.
`Thus, when the client system sends future HTTP requests to
`servers that fall within the range of defined URLs, the
`requests will include a transmittal of the current value of the
`State object. By adding the ability to transfer State informa
`tion back and forth, Web servers can then play an active role
`in transactions between clients and Servers. The term State
`object is also used herein to refer to the State information.
`FIG. 4 is a drawing showing schematically the flow of
`informatio