`
`[19]
`
`[11] Patent Number:
`
`5,774,670
`
`Montulli
`
`[45] Date of Patent:
`
`Jun. 30, 1998
`
`US005774-670A
`
`[54] PERSISTENT CLIENT S'D¢kTE INA
`HYPERTEXT TRANSFER PROTOCOL
`BASED CLIENT-SERVER SYSTEM
`
`[75]
`
`Inventor: Lou Montulli, Palo Alto, Calif.
`
`[73] Assignee: Netscape Communications
`Corporation, Mountain View, Calif.
`
`[21] Appl. No.: 540,342
`
`[22]
`
`Filed:
`
`Oct. 6, 1995
`
`Int. Cl.“
`[51]
`[52] U.S. Cl.
`
`G06F 13,338; G06F 17730
`395,t"2J00.57; 395t2J00.33;
`395,t200.47; 345,835
`395900.32, 200.33,
`[58] Field of Search
`395800.48, 200.49, 2100.57, 200.58, 200.6;
`345F335; 7077501, 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 vt'8 p54(1).
`McCarthy, “The Netscape Biscuit Company”, Government
`Computer News Sep. 23, 1996 v15 no 24 1355(2).
`Raynovich, “Microsoft
`readies browser update”; LAN
`Times; Aug. 5, 1996 v13 no 17 p7(1).
`Netscape; “Persistent Client State HTTP Cookies”; 1997;
`http:t’t’home. netscape.com. fnewsreft'stdfcoolcie_specihtn.
`Montulli et al.; “Proposed HTTP State Management Mecha-
`nism”; Aug. 16, 1996 HTTP Working Group.
`
`“Cookie 1-D Drafts”; Nov. 21, 1997; http:ff]Jortal.research.
`bell—labs.comt’ dmkt’cookie—ver.html.
`
`CMP NetGuide Magazine; “The Trouble With Cookies”,
`May 1, 1996; Issue 305.
`
`Primary Exnminer—Mark H. Rinehart
`Attorney, Agent, or Ft'rm—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 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
`
`cfient
`
`
`
`sends a URL
`
`
`returns a HTML
`
`document and
`
`cookies
`
`server
`
`7'74
`
`NTFX-1011 t'Page1 of 17
`
`172
`
`:2‘ca
`
`[-
`
`sends cookies
`
`178
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 1 of 8
`
`5,774,670
`
`S.u~_..~
`
`NTFX-1011 {Page 2 of 17
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 2 of 8
`
`5,774,670
`
`/rflm
`
`HM
`
`
`
`127
`
`fifi
`
`I/0
`ControHer
`
`Muss
`
`Igigkgyglllll
`
`
`
`Network
`Interterface
`
`L29
`
`
`
`EM
`
`
`
`
`fiB-/
`
`I/0
`Controlmr
`
`flfl
`
`£6
`
`Network
`
`Interterface
`
`aw
`
`
`
`
`
`FIG. 1B
`
`NTFX-1011 {Page 3 of 17
`
`
`
`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 abifity 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 copabifity. This document was
`
`fetched from a server in northern
`
`this image:
`California. However,
`was obtained from the University
`of Stockholm.
`
`FIG. 2
`
`NTFX-1011 I Page 4 of 17
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 4 of 8
`
`5,774,670
`
`
`
`
`
`$m2___$2;.23:of2:56_u3:n__:.m_uwormso:$n§___m>_9:.E33__Eu2.:2no;IuE:|_u_._oaof.3mu.::.o£8.35of._o«co
`
`
`
`
`
`
`
`$::\v23.59:53$2:B_.3_.:5%_..:v
`
`
`
`
`
`%\v...:__._.E9___§:28.:_.2.3_:aA2v
`
`
`
`
`
`use»_39__a$uo>m_.;.Et._u__5ooutax.a_._:auocfieouan:2:coo
`
`
`
`
`
`
`
`
`
`.__2.:._mt;.._um_.Tu:oco3Euszuou___o3L_>__o_m:_mamu_u3.:mmu.a
`
`
`
`
`
`
`
`An_v.b___ncn_uo£5m3o.:.m_._o_=m_ut._o___=uou
`
`
`
`
`
`.a_Eo:_ouEo_._.Lo:E._m>._omcactu2._8.o__ma;Eoesooum_.._._.
`
`
`
`
`
`
`
`
`
`A.::m.__c_=m.._u\n_o:o___o_u\=uu.u_.__:.omu_._.::;\\”&.._.___uo._m..._%____u_a__..os_Hv
`
`
`
`Amv.m_oc:_Hso:uo..__3nomu;
`
`
`
`;3____mt:.._u>2.6_._
`
`
`
`o_=uoA_::m.omo_:m\om.=m._s:a\\::E__u9_mu_uEen:m:aos_HvEcomt:u_._<
`
`
`
`
`
`
`
`Em.65.1»
`
`.83_m._o>__.5A____5_._.xou:_\mm.=m....:..i\\"3L..___u.$.:._<vofso:
`
`.Q\v=__o§u_3m
`
`NTFX-1011 {Page 5 OH?
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 5 of 8
`
`5,774,670
`
`
`
`Distributed Image Loading Example
`
`the major features of the world—wide web is the ability to
`One of
`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
`This HTML document demonstrates this capability.
`
`to an end——user.
`
`
`
`
`This document was fetched from a server in Northern California.
`
`However,
`
`this image:
`
`
`
` was obtained from Illinois. And this one:
`
` was obtained from the University of Stockholm.
`
`FIG. 3B
`
`NTFX-1011 I Page 6 OH?
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 6 of 8
`
`5,774,670
`
`cHent
`
` server
`
`sends a URL
`
`174
`
`NTFX-1011 {Page 7 of 17
`
`
`
`returns a HTML
`
`
`
`document and
`cookies
`
`W?
`
`'--L‘J0'3
`
`IZB[,
`
`sends cookies
`
`FIG. 4
`
`
`
`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.
`
`214
`
`
`
`
`
`228
`
`214
`
`Additional
`Browsing
`?
`
`No
`
`Browser Selects a Particular Product.
`
`Merchant Server Sends Farm.
`
`216
`
`218
`
`Browser Sends POST With Specific Information
`About Selected Product.
`
`Merchant Servers Generates and Sends Synthetic
`Page and Cookie Describing Selected Product.
`
`Browser Stores Cookie That Describes Selected Product.
`
`222
`
`224
`
`226
`
`No
`
`Browser Accesses a Check—0ut Page and Sends
`Cookie Describing Selected Products.
`
`230
`
`Server Processes the Transaction.
`
`240
`
`FIG. 5
`
`:
`
`End
`
`NTFX-1011 {Page 3 of 17
`
`
`
`U.S. Patent
`
`Jun. 30, 1998
`
`Sheet 8 of 8
`
`5,774,670
`
`NTFX-1011 I Page 9 OH?
`
`
`
`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. 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.
`
`BACKGROUND OF THE INVENTION
`
`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
`
`10
`
`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
`
`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
`
`15
`
`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 19605 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-
`
`tion. As the existence of the InterNet became more widely
`known, many users outside of the academiclresearch 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 academicfresearch
`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
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`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
`
`NTFX-1t)11IPage1O of 17
`
`
`
`5,774,670
`
`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 ditfer among the diiferent publications. Auser of 5
`the information service may browse the ditferent publica-
`tions by making http requests, from the client’si‘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 dilferent 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 diiferent 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.
`
`10
`
`15
`
`30
`
`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. 1Ais 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 slcilled in the
`art that these specific details are not required to practice the
`present invention. Descriptions of specific applications are
`
`35
`
`50
`
`55
`
`60
`
`65
`
`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, URL’s and
`browsing of the Web.
`
`CLIENTSERVER 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
`serverA. 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
`
`diiferent 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 asWeb “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 U0 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
`
`NTFX-1011 IPage 11 of 17
`
`
`
`5
`
`6
`
`5,774,670
`
`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
`U0 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
`is a descriptor that
`specifically defines a type of InterNet resource and its
`location. URLs have the following format:
`resource_type: I I domain.address;‘ path_name Where
`“resource_type” defines the type of intemet 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 sufiix “.html”
`that suggests the file is a Hype1’I‘ext Markup Language
`document. An example of a URL for a Web document
`1S!
`
`info.cern.chlhypertext.r‘Datasources IWWWI
`ll
`http:
`Geographical.html
`This URL indicates that by using the HTTP (Web) protocol
`to reach a server called “info.cem.ch”, there is a directory
`“hypertext,r‘Datasourcesa'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 aWeb document into a Web browser program. The
`
`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 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 i.ntegrated 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<i’title>.” In this
`case, the tags <title> and <ftitle> 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 <,:"l:1l>” The
`<hJ'1> and <J'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:Hwww.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: I ;\vww.su.se;' SUlogo.gif".
`The line continues with the phrase “from the <A href=
`“http:i’fwww.su.se;‘index.html”>University of Stockholm-cf
`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:i’fwww.su.se,findex.html” Next, the text “University of
`Stockholm” is the text that will be the link. Finally, the “EA”
`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: I ,r'\Nww.su.se,«’
`index.html”.
`
`10
`
`15
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`NTFX-1011IPage12 of 17
`
`
`
`7
`
`8
`
`5,774,670
`
`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
`
`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
`
`10
`
`15
`
`object is also used herein to refer to the state information.
`FIG. 4 is a drawing showing schematically the flow of
`information between a client system and a server system. At
`a time indicated by numeral 172, the client system sends an
`http request to the Web server. In response to the http
`request, the server returns an HTML document together with
`a header, which is typically separate from the HTML
`documents, at a time indicated by numeral 174. The header
`may contain one or more cookies. Upon receiving the
`HTML document and the header, the client system displays
`an HTML document on the screen and stores the cookies in
`
`30
`
`35
`
`a memory such as a storage medium. The client may switch
`and work on other tasks, or may be shut down completely.
`This is indicated by a dash line 176. At a time indicated by
`numeral 178, the client system may access a Web server that
`is specified in the received cookie such that the client system
`transmits the cookies to the server, thus providing state
`information about the client system to the server system.
`This extension to the http protocol provides a powerful
`new tool which enables a large number of new types of
`applications to be written for a Web-based environment.
`Examples of new applications include on-line shopping that
`stores information about
`items currently selected by
`consumers, for-fee on-line services that can send back
`registration information and thus free users from retyping a
`user-id on next connection, and Web sites that can store
`per-user preferences on the client system and have the client
`supply those preferences every time the site is later accessed.
`Server Behavior
`A particular embodiment of the state information is
`described below in order to provide an example according to
`the present invention. It will be appreciated that alternative
`formats may be used in accordance with the principles of the
`present invention. As stated above, the extension to the
`HTTP protocol adds a new piece of state information to the
`HTTP header as part of an HTTP response from a Web
`server. Typically, the state information is generated by a
`common gateway interface (“CGI”) script. The state infor-
`mation is stored by the receiving client system in the form
`of a “cookie list" for later use. The syntax of the new data,
`in one embodiment, is:
`
`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 %XX
`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: Wdy,
`DD-Mon-YY HH:MM:SS GMT In the this format, “Wdy”
`designates the day of a week, “DD-Mon-YY” designates the
`day, month and year, and “HT-I:MM:SS GMT” designates the
`hour, minute and second, in GMT time zone. Note that the
`“expires” attribute