`Sanders
`
`USOO6938077B2
`(10) Patent No.:
`US 6,938,077 B2
`(45) Date of Patent:
`Aug. 30, 2005
`
`(54) CLIENT VERSION ADVERTISEMENT
`SERVICE FOR OVERRIDING DEFAULT
`CLIENT VERSION PROPERTIES
`
`(75) Inventor: Scott D. Sanders, Fremont, CA (US)
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 777 days.
`
`(*) Notice:
`
`(21) Appl. No.: 10/045,769
`(22) Filed:
`Nov. 7, 2001
`(65)
`Prior Publication Data
`US 2003/0088716 A1 May 8, 2003
`(51) Int. Cl. ................................................ G06F 13/00
`(52) U.S. Cl. ........................ 709/219; 709/228; 719/328
`(58) Field of Search ................................. 709/219, 228,
`709/217, 225, 227, 229; 719/328-329
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`6,037.935 A * 3/2000 Bates et al. ................. 71.5/760
`6,477.550 B1 * 11/2002 Balasubramaniam
`et al. .......................... 71.5/513
`6,636.219 B2 * 10/2003 Merricket al. ............. 345/473
`6,691,281 B1 * 2/2004 Sorge et al. ................ 715/503
`
`4/2002 Baker ......................... 345/700
`2002/004785.6 A1
`2002/0184634 A1 * 12/2002 Cooper ........................ 725/51
`OTHER PUBLICATIONS
`Stewart, Bruce; Browser Sniffing; TechWeb The IT Network;
`http://www.webtools.com/story/printable Article'?doc
`id=TLS19990823S0001 Aug. 25, 1999.
`* cited by examiner
`Primary Examiner Viet D. Vu
`(74) Attorney, Agent, or Firm Workman Nydegger
`(57)
`ABSTRACT
`Override client version properties are used to Selectively
`replace default client version properties of a web browser to
`obtain versions of web resources that are operational on the
`web browser. A client operating the web browser issues a
`request for content through a proxy Server. Using an index,
`the proxy server determines whether the content is to be
`requested using an override client version property Set. If So,
`the override client version property Set is used to request the
`content form the web server and causes the web server to
`respond with content that has been designed or optimized for
`a web server other than the one operating on the client.
`Accordingly, the client can obtain fully functional and
`operational versions of the web resources using client Ver
`Sion properties that are Selected based on the capabilities of
`the web browser and the functionality available in different
`versions of individual web resources.
`
`16 Claims, 4 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DISPLAY
`DEVICE
`
`
`
`O
`
`WEB
`BROWSER
`
`42
`
`
`
`WEBSITE VERSIONS
`ERSION
`S
`B
`
`---
`-24b
`
`s-
`
`s
`
`24C
`
`20
`?
`--yEBSERVER
`Y-ser--- OD
`99
`
`WEB
`SERVER
`
`20a
`
`WEBSITE
`24
`
`WEB
`SERVER
`
`20c
`
`
`
`
`
`WEB
`SERVER
`
`20d
`
`SAP Exhibit 1007
`SAP v. Express Mobile, Inc.
`IPR2021-01146
`Page 00001
`
`
`
`US 6,938,077 B2
`2B770,
`
`6SU
`
`00.%,F2...
`
`ES:
`
`U.S. Patent
`
`US. Patent
`
`was;
`
`gm
`
`3me
`
`Aa
`
`M
`
`M
`
`0,g“a;
`m.52%
`
`w5%”%03$2
`
`4m
`
`g“a;
`
`xm>¢mm
`
`e
`
`{38.33,mg3;;
`
`
`
`>533
`
`8:2
`
`E
`
`8-52mm:8":—a
`
`3;
`
`xmwsogm
`
`2
`
`2
`
`IPR2021-01146 Page 00002
`
`IPR2021-01146 Page 00002
`
`
`
`
`U.S. Patent
`
`Aug. 30, 2005
`
`Sheet 2 of 4
`
`US 6,938,077 B2
`
`WEB RESOURCE DENFER
`
`OWERROE CENT VERSION
`PROPERTY SET
`
`NOEX 30
`
`
`
`GENERATE
`REQUEST
`
`SEARCH INDEX
`FOR DENTIFIER OF
`REQUESTED RESOURCE
`
`202
`
`
`
`
`
`
`
`204
`
`FG, 3
`
`YES
`
`DOES
`INDEX INCLUDE
`OENIFE
`NO
`USE DEFAULT VERSION
`PROPERTY SET
`
`
`
`
`
`
`
`USE OVERRIDE YERSION
`PROPERTY SET
`
`
`
`206
`
`REQUEST WEB
`RESOURCE
`
`20
`
`
`
`IPR2021-01146 Page 00003
`
`
`
`U.S. Patent
`
`Aug. 30, 2005
`
`Sheet 3 of 4
`
`US 6,938,077 B2
`
`(STAR, )
`
`
`
`
`
`CONNECT TO -300
`WEB SERVER
`
`
`
`
`
`
`
`PROVIDE DEFAULT
`CLIENT VERSION
`PROPERTY SET
`
`302
`
`
`
`
`
`304
`
`DOWNLOAD
`CONTENT
`
`
`
`
`
`
`
`312
`
`SELECT NEXT CLIENT
`VERSION PROPERTY SET
`
`
`
`
`
`IS
`CONTENT
`COMPATIBLE WITH
`Roys;
`
`
`
`OTHER
`CLENT VERSION
`OPERY SETS
`
`WSE OVERRIDE
`VERSION PROPERTY SET
`
`308
`
`OENTIFY BEST
`CANDDATE
`
`
`
`34
`
`FG, 4
`
`IPR2021-01146 Page 00004
`
`
`
`U.S. Patent
`US. Patent
`
`Aug. 30, 2005
`Aug. 30, 2005
`
`Sheet 4 of 4
`Sheet 4 0f 4
`
`US 6,938,077 B2
`US 6,938,077 132
`
`a55$22:$2
`
`|------ – – –
`
`:2_fl_3.2_IIII20$:th_Ea:Ewe__5:85:82:Es_so;22:
`2oz—3:2
`l__:22:52%as$25;3:.a:_3fl_IIIm:_a_oimam25%:
` IILJIIIIIIHIIIIJ_x\__m’_as:_2.ass;was«I!__E____EE7mm__335::32%;.35:...
`
`
`allllllllllll
`2.538:an_3;:E5_Flllllll
`ll'llllllllllllllllll
`
`mm
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`:25g
`
`
`aIaa:aa$5282:335:22;ES::338:2.5.8:
`
`
`
`
`
`m.o:
`
`IPR2021-01146 Page 00005
`
`IPR2021-01146 Page 00005
`
`
`
`
`
`US 6,938,077 B2
`
`1
`CLIENT VERSION ADVERTISEMENT
`SERVICE FOR OVERRIDING DEFAULT
`CLIENT VERSION PROPERTIES
`
`15
`
`2
`AS new features of the languages and data format used in
`Internet documents are developed, many web browsers are
`updated to Support Such features. Likewise, as new web
`browser versions with new functionality are developed and
`released, Internet content providers can then use the corre
`sponding enhancements of the languages and data formats,
`with the expectation that the enhancements will be compat
`ible with many web browsers. Thus, developments in the
`functionality available on the Internet generally has required
`the cooperation of web browser developers and the devel
`operS of the Internet languages and data formats.
`Of course, when new Internet functionality becomes
`available, many of those who access the Internet continue to
`use legacy web browsers that do not Support the new
`functionality. When a web browser encounters code or data
`that it cannot process, the code or data is typically ignored.
`Understandably, this presents a challenge to Internet content
`providers that desire to make their information, with a
`maximum amount of functionality, available to as many
`clients as possible. Due to the large market share of Internet
`Explorer and Netscape Navigator, the functionality Sup
`ported by these web browser lines has typically been a
`controlling factor as to the acceptance of new Internet
`functionality by Internet content providers.
`One Solution for ensuring information compatibility
`involves communication from the client to the server of
`version information regarding the web browser when the
`client requests information over the Internet. This is typi
`cally done by including a User-Agent Hypertext Transfer
`Protocol (HTTP) header in a request sent to the server. The
`User-Agent header is a data Structure that enables the Server
`to select content that is appropriate for specified browser
`versions and capabilities. This allows the server to provide
`the client with information that is compatible with the web
`browser running on the client. One problem with this
`solution is that with the multiple lines of web browsers, and
`the multiple versions within those lines, Servers need to have
`a large number of different versions of information corre
`sponding to the processing capabilities of the different
`versions of web browsers. Most servers that offer different
`versions of content only offer fully functional content for at
`most a few versions of the Microsoft Internet Explorer and
`Netscape Navigator browsers.
`In order to operate in this environment, less common web
`browsers can receive web content by informing Servers that
`they can process content that has been designed for Specific
`versions of the most common web browsers. For example,
`a certain version of a leSS common web browser could
`inform Servers that it has the capabilities of a Specified
`version of Microsoft Internet Explorer and/or Netscape
`Navigator. In this situation, the Server responds to the
`request for content as if the browser were actually the
`specified version of Microsoft Internet Explorer or Netscape
`Navigator.
`This approach is suitable when the version of the less
`common web browser has all the processing capabilities of
`the latest versions of Internet Explorer and Netscape Navi
`gator. However, the capabilities of a version of a leSS
`common web browser operating on a given client often do
`not completely coincide with those of Internet Explorer and
`Netscape Navigator. In this situation, the leSS common web
`browser is faced with one of two options for requesting
`content. First, the browser could inform servers that it is
`compatible with an older version of one of the most common
`browsers. In this situation, however, Some Servers may
`refuse to provide content to the client or may provide content
`with reduced functionality, even if the web browser were, in
`
`25
`
`BACKGROUND OF THE INVENTION
`1. The Field of the Invention
`The present invention relates to the field of web browsers.
`More particularly, the present invention relates to a web
`browser's ability to specify client version properties or other
`information relating to the capabilities of the browser Such
`that appropriate content is provided to the web browser and
`can be rendered as appropriately as possible.
`2. Background and Related Art
`Modern computer technology can provide a computer
`user with information at very high Speeds. Many computers
`intended for interaction with a human operator also have
`built-in communications functionality. The communications
`functionality allows the computer to communicate and
`retrieve information from other computers. Computer net
`WorkS provide a forum for multiple computers to commu
`nicate with each other. This allows the computer user to not
`only have access to high-Speed information, but also vast
`amounts of information. The Internet is a very large network
`with connections to billions of computers. Computers on a
`network that access information are often referred to as
`clients, whereas computers that provide information to Such
`clients are often referred to as Servers. A client that accesses
`information from a Server over the Internet can obtain
`information including content that is displayed or otherwise
`presented to the user, executable code that is executed on the
`client, or both.
`Once information on a Server has been accessed, the client
`must have a Suitable Software program configured to inter
`pret the information. Often, the interpreted information is
`then displayed or otherwise provided to the user. Servers
`must also provide the information in a certain format So that
`the interpreter program on the client can appropriately
`interpret the information. These requirements have resulted
`in Several Semi-standardized computer languages or data
`formats intended for use with large networkS Such as the
`Internet, including HTML, XML, and Java. These languages
`are Somewhat dynamic as demands for alternate ways to
`deliver and display network information proliferate. The
`growth of the languages is limited, however, by the inter
`pretive programs.
`The interpretive programs are generally known as web
`browsers. There are currently two major web browser lines
`that make up most of the web browser market, namely,
`Microsoft Internet Explorer developed by Microsoft Corpo
`50
`ration and Netscape Navigator developed by Netscape Com
`munications Corporation. In addition, there are Several other
`web browsers available. Within each web browser line are
`different browser versions that have different functionality.
`The functionality of web browsers relates to the types of
`content and code of Internet documents that can be pro
`cessed and executed by the web browsers.
`Typically, a newer browser version incorporates the func
`tionality of older versions, as well as adds new functionality
`So, for instance, Internet Explorer version 5.0 incorporates
`the functionality of Internet Explorer 4.0 as well as some
`additional features. In addition, different lines of web brows
`ers may have different functionality. One notable example of
`such different functionality is the difference in the way
`Microsoft Internet Explorer and Netscape Navigator per
`form the function that determines the resolutions at which
`graphics are displayed.
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`IPR2021-01146 Page 00006
`
`
`
`US 6,938,077 B2
`
`3
`fact, compatible with the most advanced functionality of the
`requested content. In the alternative, the browser could
`inform servers that it is compatible with the most recent
`versions of the most common browsers. In this situation,
`however, there is a risk that the content that is received
`cannot be processed by the client. In view of the foregoing,
`there is no Suitable conventional technique for clients having
`leSS common browsers to request the appropriate content
`from servers.
`
`4
`Thus, when the client A requests content from the Second
`Server, the client version properties used in the request are
`the override client version properties that cause the Second
`Server to transmit the leSS feature-rich content to the client.
`In each of the foregoing examples, the client uses client
`version properties that have been determined to be appro
`priate for the particular content that is being requested. This
`is in contrast with conventional approaches, which use a
`Static User-Agent header and Static version properties to
`request content from Servers. In this way, legacy versions of
`browsers, particularly of browsers that are not the most
`common, can be used to access appropriate versions of
`content from Servers. The index of web resource addresses
`and corresponding override client version properties can be
`implemented at individual clients or can be implemented in
`Systems having proxy Servers through which clients gain
`access to Web Servers.
`Other aspects of the invention relate to generating and
`maintaining the index of web resource addresses and cor
`responding override client version properties. The indeX can
`be generated by using client version properties from com
`monly used web browsers to systematically determine which
`client version properties, when used as overrides, allow a
`client computer running a particular web browser to down
`load the most feature-rich content while minimizing content
`code/web browser incompatibilities. Accordingly, each Set
`of client version properties corresponding to commonly used
`web browserS is Supplied in Separate requests by a computer
`to a web server containing a Specific web page. That
`computer can then analyze the responses, monitor them for
`incompatibilities with the target web browser, and then
`Select the most appropriate set of version properties for
`inclusion in an override version property index. The content
`is then monitored for incompatibilities with the particular
`web browser running on the computer. After all of the
`version properties from the list have been utilized to down
`load the web page, the version properties that provide the
`most feature rich content are associated with the particular
`web page. That association is then made a part of an override
`version property index.
`Additional features and advantages of the invention will
`be set forth in the description which follows, and in part will
`be obvious from the description, or may be learned by the
`practice of the invention. The features and advantages of the
`invention may be realized and obtained by means of the
`instruments and combinations particularly pointed out in the
`appended claims. These and other features of the present
`invention will become more fully apparent from the follow
`ing description and appended claims, or may be learned by
`the practice of the invention as Set forth hereinafter.
`BRIEF DESCRIPTION OF THE DRAWINGS
`In order to describe the manner in which the above-recited
`and other advantages and features of the invention can be
`obtained, a more particular description of the invention
`briefly described above will be rendered by reference to
`specific embodiments thereof which are illustrated in the
`appended drawings. Understanding that these drawings
`depict only typical embodiments of the invention and are not
`therefore to be considered to be limiting of its Scope, the
`invention will be described and explained with additional
`Specificity and detail through the use of the accompanying
`drawings in which:
`FIG. 1 illustrates an exemplary System that provides a
`Suitable network environment for the present invention.
`FIG. 2 illustrates a data structure that represents an indeX
`of override client version properties.
`
`BRIEF SUMMARY OF THE INVENTION
`The present invention relates to dynamically Selecting and
`generating version information that describes the client
`which is used to request content having the appropriate
`functionality from Web Servers. This technique is particu
`larly Suited for leSS common browsers, and enables Such
`browsers to access appropriate content that has been
`designed to operate on Specific versions of the most common
`browsers. In this manner, the leSS common browser is not
`limited to a Static User-Agent header that is used for all
`servers, World Wide Web (“web”) sites, and web content.
`Instead, the User-Agent header and other information
`related to the capabilities of the client capabilities are
`Selected So as to enable the client to access the most
`feature-rich content that is compatible with the web browser
`of the client. Moreover, the dynamic information specifying
`the capabilities of the client avoids the situations described
`above, in which a Static User-Agent header often results in
`Servers either refusing to provide access to content, provid
`ing content having reduced functionality, or providing con
`tent that has functionality that is not Supported by the client.
`In one implementation of the invention, an index of web
`resource addresses is used to enable a web browser to
`download the most feature rich content available for that
`particular web browser. Each web resource address has a Set
`of corresponding override client version properties that have
`been determined to be appropriate for the content at the web
`resource address. The override client version properties are
`a combination of a User-Agent header and/or other infor
`mation about the capabilities of the client. The User-Agent
`header enables the Server associated with the web resource
`to provide an appropriate version of the web resource. The
`User-Agent header along with other override client version
`properties are exposed by the client to client-side Script to
`allow these override client version properties to additionally
`influence any client-side processing. For instance, if it has
`been determined that the web browser operating on the
`client is capable of processing content on a first Server that
`has been designed for the most recent versions of the most
`common web browsers (i.e., the most feature-rich content),
`the override client version properties associated with the first
`Server would be the client version properties that corre
`sponds to those of the most recent versions of the most
`common web browsers. Thus, when the client requests
`content from the first Server, the client version properties
`used in the request are the Override client version properties
`that cause the first Server to transmit the most feature-rich
`content to the client.
`Likewise, if it has been determined that the web browser
`operating on the client is not capable of processing the most
`feature-rich content of a Second Server, but is instead only
`capable of processing content that has been designed for a
`specific older version of the most common web browsers
`(i.e., less feature-rich content), the override client version
`properties associated with the Second Server would be the
`client version properties that correspond to those of the
`specific older version of the most common web browsers.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`IPR2021-01146 Page 00007
`
`
`
`S
`FIG. 3 is a flow diagram illustrating a typical process by
`which override version properties are used in downloading
`web content.
`FIG. 4 is a flow diagram illustrating a typical process by
`which an override version property indeX can be created.
`FIG. 5 illustrates one example of a client device that can
`be used to practice the invention.
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`The present invention extends to both Systems and meth
`ods for overriding default version properties of a web
`browser operating on a client. The User-Agent headers
`and/or other information that Specify the version and capa
`bilities of a browser provided to Servers as part of requests
`for content can be tailored to the Specific Servers and the
`content that has been requested. In this manner, various
`versions of less common browserS can reliably access appro
`priate content that has been designed to operate with certain
`versions of the most common browserS.
`AS used herein, the term “most common browsers' refers
`to one or more lines of web browsers and the various
`versions of Such lines of browsers for which content of a
`Server is designed or optimized. Currently, the most com
`25
`mon browsers are typically Microsoft Internet Explorer and
`Netscape Navigator, although the identity of the most com
`mon browsers can change over time and can vary among
`Web Servers. AS used herein, the term “less common
`browser' refers to a browser that, for a particular server, is
`not a “most common browser' or, in other words, is not one
`of the browsers for which the content of the particular server
`has been designed or optimized. The embodiments of the
`present invention may comprise a special purpose or general
`purpose computer including various computer hardware, as
`discussed in greater detail below. Set top boxes that enhance
`the capabilities of conventional televisions represent an
`example of a special purpose computer. The embodiments
`may further comprise multiple computers linked in a net
`worked environment.
`AS used herein, the term "client version properties'
`extends to any information included in a request for infor
`mation from a Server or is used to execute a client-side Script
`that Specifies the capabilities of the browser as they relate to
`a version of the information that is to be processed on the
`web browser in response to the request.
`Embodiments within the scope of the present invention
`also include computer-readable media for carrying or having
`computer-executable instructions or data Structures Stored
`thereon. Such computer-readable media can be any available
`media that can be accessed by a general purpose or Special
`purpose computer. By way of example, and not limitation,
`Such computer-readable media can comprise physical Stor
`age media such as RAM, ROM, EEPROM, CD-ROM or
`other optical disk Storage, magnetic disk Storage or other
`magnetic Storage devices, or any other medium that can be
`used to carry or Store desired program code means in the
`form of computer-executable instructions or data Structures
`and that can be accessed by a general purpose or Special
`purpose computer. When information is transferred or pro
`Vided over a network or another communications connection
`(either hardwired, wireless, or a combination of hardwired
`or wireless) to a computer, the computer properly views the
`connection as a computer-readable medium. Thus, Such a
`connection is also properly termed a computer-readable
`medium. Combinations of the above should also be included
`within the Scope of computer-readable media. Computer
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,938,077 B2
`
`5
`
`15
`
`6
`executable instructions comprise, for example, instructions
`and data which cause a general purpose computer, Special
`purpose computer, or Special purpose processing device to
`perform a certain function or group of functions.
`The invention will be described in the general context of
`computer-executable instructions, Such as program modules,
`being executed by Set-top boxes or other computers.
`Generally, program modules include routines, programs,
`objects, components, data structures, etc. that perform par
`ticular tasks or implement particular abstract data types.
`Computer-executable instructions, associated data
`Structures, and program modules represent examples of the
`program code means for executing Steps of the methods
`disclosed herein. The particular Sequence of Such executable
`instructions or associated data structures represents
`examples of corresponding acts for implementing the func
`tions described in Such steps.
`I. Overriding Default Client Version Properties
`FIG. 1 illustrates one example of a network environment
`in which the present invention can be practiced. In FIG. 1,
`a client device 10, which may be a personal computer, an
`Internet appliance, a television Set-top box having Internet
`browsing capabilities, or any other Suitable processing
`device, operates a web browser 12 that enables a user to
`acceSS web content on display device 14. In this example, it
`is assumed that client device 10 operates a leSS common
`browser for which content of web servers 20a-n has not been
`Specifically optimized or designed.
`The network illustrated by FIG. 1 further includes a proxy
`server 16 and a plurality of web servers 20. Proxy server 16
`operates as an intermediary between the client device 10 and
`the web servers 20. Proxy server 16 allows other computer
`devices like the client device 10 to connect to the Internet 18
`via the proxy Server's 16 Internet connection. In one
`embodiment, the client device 10 requests a web page from
`the proxy server 16. The proxy server 16, using its Internet
`connection, retrieves the requested web page and delivers it
`to the client device 10. Typically, the proxy server 16 is
`located in relatively close proximity to the client device 10
`in terms of the number of “hops' between the client device
`and the proxy server. In one embodiment, the proxy Server
`16 is one proxy server of a network of proxy Servers,
`wherein each of the proxy Servers is in relatively close
`proximity to its clients. In addition to accessing web content
`using proxy server 16, client device 10 can bypass the proxy
`Server as shown at reference number 22 and access the
`Internet 18 directly as will be discussed in greater detail
`below. While FIG. 1 illustrates a proxy server 16, the
`invention can be practiced in networks in which no proxy
`Server is present and the client device accesses Servers 20
`directly.
`Generally, the web servers 20 are configured to deliver
`information readable by web browserS operating on client
`devices 10. The content on the web server 20 is generally
`formatted as one or more web sites 24. A web site 24
`typically comprises a hypertext document with links to other
`documents on the web site 24 or to other web sites. The other
`documents may also have links to documents on the web site
`24 or to other web sites. Web sites 24 represent examples of
`“web resources”, which is to be interpreted broadly in the
`context of this description and the claims, and includes any
`document or other data that can be accessed using the
`Internet and processed using a web browser.
`As shown in FIG. 1, a particular web site on a web server
`20 can have multiple versions 24-a-d, each being designed
`and optimized for display on a particular web browser
`version. Each web site version 24a-d may differ in
`
`IPR2021-01146 Page 00008
`
`
`
`7
`formatting, functionality, and content, depending on the
`corresponding capabilities of the web browsers by which the
`Web Site version is intended to be processed and displayed.
`The primary method that web servers 20 use to determine
`what version of content to deliver to a device, Such as a
`client device 10, involves receiving a “User-Agent' header
`that identifies the client version of the web browser 12
`running on the client device 10.
`Alternatively, rather than Storing multiple versions of the
`web site, the Web Server can Store a single version containing
`embedded, executable client-side Script that is used by
`clients to modify the web page or resource for display on the
`browser. In this case, the web resource and the client-side
`Script are transmitted to the client device 10 in response to
`the request for the web resource. The client device 10 then
`executes the Script based on client version properties adver
`tised by the device in exposed Scripting properties. In either
`of the foregoing cases, a version of a web resource is
`Selected and obtained using override client version proper
`ties associated with the client device 10.
`The most common way that client-side Script embedded
`in the web page returned by a Server can be customized to
`provide appropriate content is by using the exposed client
`version properties. The most common of these properties is
`navigator user Agent (which returns the same value as pro
`vided to the web server 20 in the User-Agent header),
`navigator. app Version, and navigator. app Name.
`Conventionally, these properties have been Static and are a
`direct function of the web browser 12 version. According to
`the invention, however, the client version property Set pro
`vided to a server 20 is selected dynamically in order to
`request content that has been determined to be compatible
`with web browser 12.
`An example of a navigator. user Agent property is:
`Mozilla/4.0 (compatible; MSIE 4.0; Windows NT). This
`example of navigator.userAgent property is also an example
`of the information included in a User-Agent header. This
`navigator. userAgent property tells a web server 20 that the
`particular web browser is version 4.0 (note that Mozilla is a
`code word originally used by Netscape for their web
`browser that nearly all web browser providers now use and
`therefore, it no longer communicates any functional
`information), that the particular web browser is compatible
`with Microsoft Internet Explorer, and that the particular web
`browser is running on Windows NT. An example of a
`navigator.appVersion property is 4.0 (compatible; MSIE 4.0;
`Windows NT), which specifies a version of a web browser.
`An example of a navigator.appName is MicroSoft Internet
`Explorer, which Specifies a name of a web browser.
`Web servers 20 that provide alternate versions of web site
`content usually have content that is optimized for only a few
`of the most common web browser versions. If the client
`device trying to access the Web Server 20 uses the conven
`tional technique of providing a Static User-Agent header
`and, therefore, does not indicate that it is capable of pro
`cessing one of the Supported version properties, the client
`device may either be returned content with leSS functionality
`that could actually be supported by the web browser, or may
`be denied access to the content regardless of whether the
`web browser on the client device Supports the functionality
`of the content disposed on the web server 20.
`Although the reasons for using proxy servers vary from
`network to network, Some advantages of proxy servers are
`described below. It is noted that the invention is capable of
`implementation in networks having other proxy Servers or
`no proxy servers at all. One advantage to using the proxy
`Server 16 according to one embodiment is illustrated when
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,938,077 B2
`
`8
`the proxy server 16 acts as an intermediary for multiple
`client devices 10. The proxy server 16 has the ability to
`retrieve content from the web servers 20. In the case where
`certain content is requested by many client devices that
`operate with proxy Server 16, the proxy Server may cache the
`content locally. In a typical embodiment, the proxy server 16
`is in close proximity on the network to client device 10 as
`well as being connected to the client device 10 with rela
`tively few network links. In this way, each client device 10
`that wishes to access the content is not required to retrieve
`the data through a complex Series of network connections
`that, although not illustrated here, exist in modem WAN and
`Internet networks. By the proxy server 16 periodically
`retrieving the popular content and Storing it locally, down
`load time can be reduced for client devices 10 when they
`connect to the proxy server 16.
`In one embodiment, to implement the web page caching
`feature, the web browserS running on all the client devices
`connected to a particular proxy server 16 must be similar. In
`this embodiment, the proxy Server 16 only caches a Single
`version of a particular web page and is therefore only able
`to deliver optimized content for a single web browser
`version property Set.
`In a Second embodiment, multiple proxy servers 16 may
`Service a particular set of client devices 10 that are running
`different web browse