`EX1029
`
`
`
`(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2007/0185978A1
`(43) Pub. Date:
`Aug. 9, 2007
`MONTULL
`
`US 20070185978A1
`
`(54) PERSISTANT CLIENT STATE IN A
`HYPERTEXT TRANSFER PROTOCOL
`BASED CLIENT SERVER SYSTEM
`
`(76) Inventor: Lou MONTULLI, Palo Alto, CA (US)
`Correspondence Address:
`GLENN PATENT GROUP
`3475 EDISON WAY, SUITE L
`MENLO PARK, CA 94025 (US)
`Appl. No.:
`11/737,042
`(21)
`(22) Filed:
`Apr. 18, 2007
`Related U.S. Application Data
`(62) Division of application No. 10/272.896, filed on Oct.
`17, 2002, which is a ERROR - reissue-of application
`No. 08/918,977, filed on Aug. 27, 1997, now Pat. No.
`6,134,592, which is a division of application No.
`08/540,342, filed on Oct. 6, 1995, now Pat. No.
`5,774,670.
`
`Publication Classification
`
`(51)
`
`Int. C.
`G06F 5/16
`
`(2006.01)
`
`(52) U.S. Cl. .............................................................. 709/219
`
`(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.
`
`Server A
`
`
`
`One of the maior features of the world-wide-web
`is the ability to retrieve images from
`sites distributed around-the world.
`These images can be 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 was
`fetched from a server in northern
`California. However, this image:
`was obtained from the University
`of Stockhoir.
`
`Launch Labs EX1029 Page 1
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 1 of 8
`
`US 2007/0185978A1
`
`
`
`
`
`Launch Labs EX1029 Page 2
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 2 of 8
`
`US 2007/0185978A1
`
`124
`
`-120
`
`I/O
`Controller
`
`Network
`Interface
`
`
`
`122
`
`I/O
`Controller
`
`FIG. 1B
`
`Launch Labs EX1029 Page 3
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 3 of 8
`
`US 2007/0185978A1
`
`Server A
`
`Server B
`
`Server C
`
`Image 1
`
`Image 2
`
`HTML
`Text
`
`
`
`
`
`One of the major features of the world-wide-web
`is the ability to retrieve images from
`sites distributed arounds the World.
`These images can be 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 was
`fetched from a server in northern
`California. However, this image:
`Was obtained from the University
`of Stockholm.
`
`FIG. 2
`
`Launch Labs EX1029 Page 4
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 4 of 8
`
`
`
`
`
`
`
`
`
`<,,415"||DUS-|b/qamowap/nps*anin’pseuMAM//d13U,=04Se|pplw=UBI]D.S\T>
`
`<q>“SIOUI}[[WO}peulDjqoSDM
`
`
`
`
`
`
`
`
`
`
`
`
`
`<a/}11/>e]duwoxgzBuipoo7efpwypeyngqisisiq<e|i!{>
`
`
`
`
`
`
`
`
`
`
`
`du/se|duox36u|poo7eBow]pazng!43isiq<y>
`
`
`
`
`
`Sefpw!9A91}840}AZI]JqD94}S|GeM-apIM-pj4OMalyJoS8in}pe}4olpw984}Joaud
`
`
`
`
`
`Peu|quosequal}UNSseBpulese]“pj4OM84}PUNOIDpajnqis}sipseLIswWodJ
`
`
`
`
`
`
`
`
`
`
`
`<d>A}1]!Godo9si}S8}Di}SUOWepjUEWND0PJWIHSIU]"4asn-puaUD0}j}UEUNDOp
`
`
`
`
`
`
`
`
`
`
`
`
`
`u{DN{41A,,a|BulsDbsDpazusseidpupA}jDupdaspaaalsjeu}UBUNDOP1X9}DUM
`
`
`
`
`
`
`
`‘JBABMOH*DIUIOJ1/D9:Wiey}40uUl4aAd9s0Wo4Jpeyo}e}SDMjUeUINDOpS14)
`
`:oBow!Siu}
`
`
`
`
`
`
`
`
`
`US 2007/0185978 A1
`
`
`
`
`
`
`aUIDD<,,416°o6o|ns/es"ns*wa//:314,=04S9]pp!w=uB1)QWI>:8uoSiu)Puy
`JoAyis4aatuy<,,]wiUrxepul/as'ns*win//'d}34,=}e4yV>94}wou}
`
`
`
`
`
`
`
`
`
`
`"<V/>u]ou90}5
`
`VE“OLA
`
`Launch Labs EX1029 Page 5
`
`Launch Labs EX1029 Page 5
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 5 of 8
`
`US 2007/0185978A1
`
`
`
`Launch Labs EX1029 Page 6
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 6 of 8
`
`US 2007/0185978 A1
`
`client
`
`
`
`172
`
`
`
`176-N
`
`Y
`
`sends a URL
`
`SerWer
`
`
`
`returns d HTML
`document and
`cookies
`
`174
`
`sends cookies
`
`FIG. 4
`
`Launch Labs EX1029 Page 7
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 7 of 8
`
`US 2007/0185978A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`212
`Browser Sends a Request to Merchant Server.
`
`Browser Receives and Displays HTML Document.
`
`-
`
`214
`
`215
`
`Additional
`Browsing?
`216
`No
`Browser selects a Particular Product.
`
`Merchant Server Sends Form.
`
`218
`222
`
`Browser Sends POST With Specific
`Information About Selected Product.
`
`224
`Merchant Server Generates and Sends Synthetic
`Page and Cookie Describing Selected Product.
`
`Browser Stores Cookie That Describes Selected Product
`226
`
`228
`
`More
`Product
`YesN Browsing?
`
`
`
`230
`No
`Browser Accesses a Check-Out Page and
`Sends Cookie Describing Selected Products.
`
`Server Processes the Transaction
`
`240
`
`Launch Labs EX1029 Page 8
`
`
`
`Patent Application Publication Aug. 9, 2007 Sheet 8 of 8
`
`US 2007/0185978A1
`
`144
`
`140
`1.
`
`
`
`DDDDDDDDDDDD. DDD|
`
`Illili
`lili II
`DDDDIDDID DDD
`148
`
`
`
`
`
`
`
`FIG. 6
`
`Launch Labs EX1029 Page 9
`
`
`
`US 2007/0185978 A1
`
`Aug. 9, 2007
`
`PERSISTANT CLIENT STATE IN A HYPERTEXT
`TRANSFER PROTOCOL BASED CLIENT SERVER
`SYSTEM
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`0001. This application is a divisional of U.S. patent
`application Ser. No. 10/272,896 filed Oct. 17, 2002, which
`is a reissue of U.S. Pat. No. 6,134,592 granted Oct. 17, 2000
`(U.S. patent application Ser. No. 08/918,977 filed Aug. 27,
`1997) which is a divisional of U.S. Pat. No. 5,774,670
`granted Jun. 30, 1998 (U.S. patent application Ser. No.
`08/540.342 filed Oct. 6, 1995), each of which is incorporated
`herein in its entirety by this reference thereto.
`
`FIELD OF INVENTION
`0002 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
`0003. An important use of computers is the transfer of
`information 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.
`0004) 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
`information. As the existence of the InterNet became more
`widely known, many users outside of the academic/research
`community (e.g., employees of large corporations) started to
`use InterNet to carry electronic mail.
`0005. In 1989, a new type of information system known
`as the World-Wide-Web (“the Web’) was introduced to the
`InterNet. 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.
`0006. In 1993, researchers at the National Center for
`Supercomputing 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
`a SSCS.
`0007. 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
`documents reside in servers. Web clients and Web servers
`communicate using a protocol called “HyperText Transfer
`Protocol (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.
`0008. The communication model under the conventional
`Web environment provides a very limited level of interac
`tion between clients and servers. In many systems, increas
`ing the level of interaction between components in the
`systems often makes the systems more robust, but increasing
`the interaction increases the complexity of the interaction
`and typically slows the rate of the interaction. Thus, the
`conventional Web environment provides less complex,
`faster interactions because of the Web’s level of interaction
`between clients and servers.
`0009. 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
`0010. The present invention involves a client-server sys
`tem on a network in which a server can send state informa
`tion 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
`inherently exists in Such a system.
`0011. One embodiment of the present invention is a
`network system for communicating documents containing
`information 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 Inter
`Net. 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.
`0012. 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 transmit
`ting the file from the server system to the client system and
`
`Launch Labs EX1029 Page 10
`
`
`
`US 2007/0185978 A1
`
`Aug. 9, 2007
`
`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 instruc
`tions for receiving 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.
`0013. One of the applications of the present invention is
`an on-line shopping system. A customer can browse infor
`mation 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.
`0014) Another application of the present invention is an
`“on-line' information service, such as a newspaper's Web
`server which includes articles or other information from the
`newspaper's Subscription services. In one example, a news
`paper 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.
`0.015 These and other features of the present invention
`will be disclosed in the following description of the inven
`tion together with the accompanying drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0016. 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.
`0017 FIG. 1A is a pictorial diagram of a computer
`network used in the present invention.
`0018 FIG. 1B shows a computer network containing a
`client system and a server system.
`
`FIG. 2 illustrates the retrieval of remote text and
`0.019
`images and their integration in a document.
`0020 FIG. 3A shows an example of an HTML document
`which can be processed by the browser of the present
`invention.
`0021
`FIG. 3B shows the integrated document corre
`sponding to the HTML document of FIG. 3A as it would
`appear on a display Screen of a client computer.
`0022 FIG. 4 shows schematically the flow of information
`between a client and a server in accordance with the present
`invention.
`0023 FIG. 5 is a flow chart showing the operation of a
`merchant system of the present invention.
`0024 FIG. 6 shows a computer system that could be used
`to run the browser of the present invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`0025 Methods and apparatuses for maintaining state
`information in a client-server based computer network sys
`tem 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 nomencla
`ture 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 appli
`cations are provided only as examples. Various modifica
`tions 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 applica
`tions 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.
`0026.
`Prior to describing the present invention...some
`introductory material is explained, including explanations
`concerning client-server computing, InterNet addresses,
`URLs and browsing of the Web.
`0027 Client-Server Computing
`0028 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 work
`stations 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 specifi
`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 computers
`role from client to server, or vice versa.
`
`Launch Labs EX1029 Page 11
`
`
`
`US 2007/0185978 A1
`
`Aug. 9, 2007
`
`0029. 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.
`0030) 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
`0031
`client-server system interconnected through the InterNet
`100. In this example, a remote server system 122 is inter
`connected 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 components such as a processor 134, memory
`135 (e.g. RAM), a 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
`implemented in software which is stored as executable
`instructions 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.
`0032)
`InterNet Addresses
`0033. As discussed in the background, the InterNet con
`sists 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.O.3
`0034) 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.
`0035 Uniform Resource Locators
`0036) 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. Sub.--type://domain.address/path. Sub.--
`0037)
`aC
`0038. Where “resource.sub-type' defines the type of
`internet resource. Web documents are identified by the
`resource type “http' which indicates that the hypertext
`transfer protocol should be used to access the document.
`Other resource types include “ftp (file transmission proto
`col) and “telnet. The “domain.address' defines the domain
`name address of the computer that the fresource is located
`on. Finally, the “path..sub.--name' defines a directory 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
`HyperText Markup Language document.
`0039. An example of a URL for a Web document is:
`0040) http://info.cern.ch/hypertext/Datasources/WWW/
`Geographical.html
`0041) 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.
`0.042 Browsing the World-Wide-Web
`0043. To access an initial Web document, the user enters
`the URL for a Web 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 document 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
`documents are emphasized in some fashion Such that the
`user can selected the hyperlink.
`0044 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.
`
`Launch Labs EX1029 Page 12
`
`
`
`US 2007/0185978 A1
`
`Aug. 9, 2007
`
`004.5 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.
`0046) The second line of the HTML document of FIG.3A
`reads “-h1 > Distributed Image Loading Example </h1>
`The <hild and </h1> 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.
`0047. 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.
`0.048. 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/SU1
`ogo.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.
`0049. The line continues with the phrase “from the <A
`href="http://www.su.se/index.html> University of Stock
`holm-/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/in
`dex.html.
`0050. 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.
`0051. Adding State Information to the HyperText Trans
`fer Protocol
`0.052 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.
`0053 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 docu
`ments, 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 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.
`0054) 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 envi
`ronment. 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.
`0.055
`Server Behavior
`0056. 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:
`NAME=VALUE: expires=DATE:
`0057 Set-Cookie:
`path=PATH:
`0.058 domain=DOMAIN. sub.--NAME: secure
`0059) 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
`
`Launch Labs EX1029 Page 13
`
`
`
`US 2007/0185978 A1
`
`Aug. 9, 2007
`
`embodiment. The “VALUE' is a value assigned to the
`pr