throbber
US007076500B2
`
`(12) United States Patent
`Gallant et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,076,500 B2
`Jul. 11, 2006
`
`(54) SELECTIVE FILE CACHING METHOD
`
`(76) Inventors: David Gallant, 4726 E. 107th Ave.,
`Thornton, CO (US) 80233; Rex
`Vedder, 2830 Heidelberg Dr. Boulder,
`CO (US) 80305
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 521 days.
`(21) Appl. No.: 10/610,142
`(22) Filed:
`Jun. 30, 2003
`(65)
`Prior Publication Data
`
`2003/0009563 A1* 1/2003 Douglis et al. ............. 709,227
`2003/0078964 A1* 4, 2003 Parrella et al. ...
`... 709,203
`2004/0181598 A1* 9/2004 Paya et al................... 709,227
`OTHER PUBLICATIONS
`NetCloak Version 3.1 User's Guide: Serving Cloaked Files,
`1996-2999, 3 page exerpt.*
`“How to Prevent the Storing of File in the Hard Disk
`Cache':
`http://www.web-caching.com/forums/Forum1/
`HTML/000233.html; Jun. 25, 2003.
`“How Disk Caching Works in Java Plug-in': http://java.sun.
`com/products/plugin/1.3/docs/cache.html; Jun. 25, 2003.
`* cited by examiner
`Primary Examiner Wayne Amsbury
`
`US 2004/O2677O2 A1
`
`Dec. 30, 2004
`
`(57)
`
`ABSTRACT
`
`(51) Int. Cl.
`(2006.01)
`G06F 7/00
`(52) U.S. Cl. ....................... 707/102; 709/246; 711/202
`(58) Field of Classification Search ................ 707/102;
`709/246; 711/202
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`6,029, 175 A * 2/2000 Chow et al. ............. TO7 104.1
`6, 192,398 B1
`2/2001 Hunt .......................... TO9,213
`6,457,103 B1* 9/2002 Challenger et al. ......... T11 133
`6,557,054 B1
`4/2003 Reisman ...................... T10/33
`3.
`R : 4.3.
`plant al. ........... 2.} | |
`6,976,090 B1* 12/2005 Ben-shauletal. A
`6,988,135 B1* 1/2006 Martin et al. ............... TO9,224
`2002/0049834 A1* 4/2002 Molnar ....................... TO9,219
`
`A method for improving performance through selective file
`caching is disclosed. The caching policy of a clients
`browser cache is set to cache all files. Web page files that
`reference a dynamic file include JavaScript code that
`mangles the dynamic filename. Such that a reference by the
`web page file to the dynamic file is unique each time a
`browser, processes the web page file. In one embodiment,
`the filename is mangled by appending to it a known string
`followed by a 12-digit timestamp. Consequently, the
`mangled filename misses in the cache, forcing the browser
`to fetch the dynamic file from the web server. The web
`server recognizes the filename is in the mangled format,
`regenerates the original filename, and returns the file to the
`client. Static filenames are not mangled; hence, they are
`satisfied from the browser cache. The method also works to
`selectively defeat network caching.
`53 Claims, 11 Drawing Sheets
`
`Web BrOWSer Operation
`
`user inputs URL of desired web page, e.g., by clicking on link
`or selecting bookmark
`
`302
`
`hit in browser cache?
`
`Yes
`
`issue http request for URL to web server
`
`receive file specified by URL and put in cache
`
`process file
`
`
`
`
`
`
`
`
`
`
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 1
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 1 of 11
`
`US 7,076,500 B2
`
`Fig. 1
`
`Computer Network
`
`? 100
`
`
`
`Web server 102
`
`Web server code
`
`104
`
`web page files
`
`106
`
`web browser
`
`124
`
`client 122
`
`browser cache
`
`126
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 2
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 2 of 11
`
`US 7,076,500 B2
`
`Fig. 2
`
`Web Server Operation
`
`web server receives http request
`
`
`
`http request in
`mangled format?
`
`web server regenerates natural filename
`from mangled form in http request
`
`208
`
`
`
`
`
`
`
`web server returns requested web pace file
`C
`pag
`
`web server returns web page file
`specified by natural filename
`
`212
`
`Fig. 3
`
`Web BrOWSer Operation
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`user inputs URL of desired web page, e.g., by clicking on link
`or selecting bookmark
`
`302
`
`hit in browser cache?
`
`issue http request for URL to web server
`
`receive file specified by URL and put in cache
`
`process file
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 3
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 3 of 11
`
`US 7,076,500 B2
`
`Fig. 4
`
`Web BrOWSer Operation
`
`? 312
`
`from 308
`
`fetch any included JavaScript
`files from Web server
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`JavaScript found?
`
`execute JavaScript, which may
`include creating html code with link
`or reference to mangled filenames
`
`406
`
`file reference found?
`
`hit in browser cache?
`
`Yes
`
`
`
`end of file?
`
`
`
`execute html Command
`
`issue http request for referenced
`file to Web server
`
`receive referenced file and put in
`cache
`
`display referenced file
`
`48
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 4
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 4 of 11
`
`US 7,076,500 B2
`
`Fig. 5
`
`
`
`
`
`
`
`
`
`
`
`Web Page JavaScript HTML Code Creation
`
`mangle natural filename of dynamic file and put in JavaScript variable
`
`insert mangled filename into html code format in JavaScript variable
`
`do document.Write() of JavaScript variable to create html code for browser to display, e.g.
`link with mangled filename for user to click on, or reference to mangled filename of imagel
`appletiaudiovideo file to be displayedlexecutedlplayed
`
`502
`
`504
`
`506
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 5
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet S of 11
`
`US 7,076,500 B2
`
`Fig.6A
`
`Selective File Caching Operation Example
`
`user sets browser caching policy to cache all possible files
`
`user points browser to web server
`
`browser issues http request to web server for index.html (or I)
`
`web server returns file with login screen
`
`O
`
`web server returns first page (page1.html)
`
`page1.html code mangles picDyn.jpg, creates.html code with reference to mangled pictyn.jpg, and
`commands browser to display mangled picDyn.jpg
`
`browser checks cache for mangled picDyn.jpg and gets a miss
`
`browser issues http request with mangled picdyn.jpg
`
`web server receives http request, recognizes mangled format, regenerates picDyn.jpg, and returns
`picyn.jpg
`
`602
`
`604
`
`606
`
`608
`
`612
`
`64
`
`616
`
`618
`
`622
`
`524
`
`
`
`browser receives picDyn.jpg, places it in browser cache referenced as mangled picdyn.jpg, and displays
`picyn.jpg
`
`626
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 6
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 6 of 11
`
`US 7,076,500 B2
`
`Fig. 6B
`
`Selective File Cachind Operation Example (cont.
`
`(A)
`
`
`
`browser receives picStatjpg, places it in browser cache, and displays picStat.jpg
`
`browser to display link for user to click on
`
`pagedyn.html
`
`(B)
`
`638
`
`642
`
`644
`
`646
`
`648
`
`654
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 7
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 7 of 11
`
`US 7,076,500 B2
`
`Fig. 6C
`
`Selective File Caching Operation Example (COnt.)
`
`(B)
`
`pagedyn.html Code mangles picDyn.jpg, creates html code with reference to mangled picDyn.jpg, and
`commands browser to display mangled picyn.jpg
`
`browser checks cache for mangled pictyn.jpg and gets a miss
`
`browser issues http request with mangled picDyn.jpg
`
`web server receives http request, recognizes mangled format, regenerates picDyn.jpg, and returns
`picDyn.jpg
`
`
`
`
`
`browser receives picbyn.jpg, places it in browser cache referenced as mangled pictyn.jpg, and displays
`picDyn.jpg
`
`page.Dyn.html code commands browser to display picStat.jpg
`
`browser checks cache for picStat.jpg and get a hit
`
`browser displays picStati
`plays p
`Pg
`
`658
`
`662
`
`664
`
`666
`
`668
`
`672
`
`674
`
`676
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 8
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 8 of 11
`
`US 7,076,500 B2
`
`Fig. 7
`
`Web Page Code Example
`
`ace1.html:
`1 II include JavaScript source code file with mangling functions
`2 <script language="JavaScript" src="mangle.js"><scripts
`
`11 II Mangle picDyn.jpg, create html code with reference to mangled filename,
`12 II
`and command browser to display created html
`13 war timeDateStr = top.getTimeString();
`14 varimageName = top.makePageName("picbyn.jpg", timeDateStr, "jpg");
`15 html+=''<img src="+ imageName + "width="200" height="200" align="left">';
`16 document write(html);
`
`21 ll command browser to display picStat.jpg
`22 <imgsrc="picStat.jpg" width="200" height="200" align="right">
`
`31 lMangle pagedyn.html, create html code with link to mangled name,
`32 II
`and command browser to display created html
`33 war timeDateStr = top.getTimeString();
`34 war linkName = top.makePageName("pagedyn.html", timeDateStr, ".html");
`35 html+="To initialize the array, Cahref="linkName"> click hereglas';
`36 document.Write(html);
`
`page Dyn.html:
`1 II include JavaScript source code file with mangling functions
`2 <script language="JavaScript" src="mangle.js"><script)
`
`11 Il Mangle picdyn.jpg, create html code with reference to mangled filename,
`12 II
`and command browser to display created html
`13 war timeDateStr = top.getTimeString();
`14 war imageName = top.makePageName("picyn.jpg", timeDateStr, "jpg");
`15 html+= 'Kimgsrc="+ imageName + "width="200" height="200" align="left">';
`16 document write(html);
`
`21 II command browser to display picStat.jpg
`22 kimg src="picStat.jpg" width="200" height="200" align="right">
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 9
`
`

`

`U.S. Patent
`Fig. 8
`
`Jul. 11, 2006
`
`Sheet 9 of 11
`
`US 7,076,500 B2
`
`Mangle.js JavaScript Source Code
`
`function getTimeString()
`{
`-
`war currentdate F new Date();
`war curate = currentdate valueOf();
`war curateStr = new String(curdate.toString());
`war strlength = curdateStr.length;
`if (strength < 12)
`Il Pad on left with Os
`curdateStr="000000000000"+ curbateStr;
`strlength = curDateStr.length;
`
`war returnOateStr = curDatestr substring(strlength - 12);
`return returnOateStr;
`
`function makePageName(naturalName, timestr, suffix)
`varinStr = new String(naturalName);
`war ZPos = instrindexOf("Z");
`if (ZPos ==-1)
`Il No time on name - add one
`var dotPos = instr.indexOf(suffix);
`war outStr = instr.substring(0, dotPos) + "Z" + timeStri suffix;
`}
`else
`il is already a time - put a new time
`war outStr = instr.substring(0, ZPos) + "Z"+ timeStrt suffix;
`
`return outStr;
`
`Example
`index.html
`Natural filename input:
`Mangled filename output: index Z123456789.012.html
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 10
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 10 of 11
`
`US 7,076,500 B2
`
`Fig. 9
`
`Web Server Natural Filename Regeneration Code
`
`void RegenerateHtmlFileName(sbyte" mangled Name)
`{
`int thisNamelength;
`Il Change the name if it meets the criteria: "I" ZXXXXXXXXXXXX.html"
`Il Look at the last 19 digits ZXXXXXXXXXXXX.html
`thisNamelength = strlen(mangled Name);
`if (thisNamelength > 20)
`if ((mangledName(thisNamelength - 19 =='') 88 (mangled Name(thisNamelength. 18) == "Z"))
`II Remove the ZXXXXXXXXXXXX
`mangled Name(thisNamelength - 19 ="...";
`mangled.Name(thisNamelength. 18) = "h";
`mangled Name thisNameLength - 17 = 't';
`mangled Name(thisNamelength - 16 = 'm',
`mangled Name(thisNamelength. 15) = "I';
`mangled Name(thisNamelength. 14) = 0; Il Terminate
`
`Exam
`index_Z987654321098.html
`Mangled filename input:
`Regenerated Natural filename output: index.html
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 11
`
`

`

`U.S. Patent
`
`Jul. 11, 2006
`
`Sheet 11 of 11
`
`US 7,076,500 B2
`
`Fig. 10
`
`Computer NetWOrk
`
`? 1000
`
`web server 102
`
`web server code
`
`04
`
`web page files
`
`106
`
`Web caching
`proxy server 1032
`
`proxy server code
`
`1034
`
`network cache
`
`1036
`
`
`
`web browser
`
`124
`
`browser cache
`
`126
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 12
`
`

`

`US 7,076,500 B2
`
`1.
`SELECTIVE FILE CACHING METHOD
`
`FIELD OF THE INVENTION
`
`This invention relates in general to the field of web
`applications and particularly to caching of files transferred
`by a web server to a web client.
`
`BACKGROUND OF THE INVENTION
`
`2
`from the web server and displayed on the client, computer.
`One cause of the delay is the slow transfer speed of data
`across the network relative to the data transfer rates from the
`client computer disk drive, for example. The client computer
`may be connected to the network by a 56K modem, for
`example, which has relatively slow data transfer speed. Even
`if the client computer is connected to the network via a faster
`medium, Such as cable modem or a T1 connection, Some of
`the web page files which must be transferred over the
`network from the web server to the client are so large, such
`as Some image files, that they require a relatively long time
`to transfer even at high transfer rates.
`To reduce the delay, web browsers typically employ a
`cache, referred to as a browser cache, on a mass storage
`device of the client computer, such as a disk drive. When a
`browser retrieves a file from a web server, the browser saves
`a copy of the file in the browser cache. The next time the file
`is requested, the browser checks the browser cache to see if
`the requested file is present in the cache. A query to the
`browser cache revealing the file is hot present is referred to
`as a cache miss. A query to the browser cache revealing the
`file is present is referred to as a cache hit. If the file hits in
`the cache, then the browser can satisfy the request for the file
`from its cache instead of issuing an http request on the
`network to the web server. In the example above,
`index.html, picture A.jpg, and picture B.jpg will all be
`cached in the browser cache after being returned by the web
`server. Future accesses to these files may be satisfied from
`the browser cache, thereby alleviating the need to incur
`again the potentially long delays associated with transferring
`the files from the web server across the network.
`However, the information in web page files transferred
`from a web server to a client may be classified into two
`categories with respect to file caching. A static file is a file
`whose content does not change. A common example of a
`static file is an image file. A dynamic file is a file whose
`content may change. An example of a dynamic file is an html
`file that contains changing content, such as player statistics
`of a basketball game in progress, or stock market sales price
`information. Caching of static files is beneficial. However,
`caching of dynamic files may result in undesirable operation
`since the user may receive Stale or out-of-date information.
`Current browser caching technology does not handle the
`distinction between static files and dynamic files well. For
`example, Internet Explorer enables a user to choose from
`four caching policy settings. A first setting specifies that
`when the user returns to a previously viewed web page, the
`browser checks with the web server for changes to the page
`since the page was last accessed. That is, the browser ignores
`its cache and issues a new http request for all the files
`making up the web page. A second setting specifies that
`when the user returns to a previously viewed web page, the
`browser never checks with the web server for changes to the
`page. That is, the web browser always look to its cache for
`all requested files, and never makes a new request for a file
`that hits in the browser cache, even though it may be
`possible that a newer version of the file exists on the web
`server, i.e., even though the file's contents may have
`changed. With this setting, the user must click on the Refresh
`button to force the web server to be re-accessed. A third
`setting specifies that when the user returns to a previously
`viewed web page, the browser does not check with the web
`server unless the previous visit was in an earlier session of
`the browser or on a previous day. The fourth setting is
`similar to the third setting, except that if the browser
`determines that the files on the page are changing infre
`quently, the browser checks with the web server even less
`
`10
`
`15
`
`30
`
`35
`
`A web browser is a computer program used for accessing
`sites or information on a network, such as the World Wide
`Web (WWW). Some of the more commonly used web
`browsers are Microsoft Internet Explorer R, Netscape Navi
`gator R, Opera R, Mozilla(R), and Apple Safari(R). A client
`computer is a computer that executes a web browser. A web
`page is one or more files containing information that may be
`displayed on a client computer by a web browser. A web
`server is a computer in the network to which the client
`computer is connected that stores web page files.
`A web browser user accesses a web page by providing
`input, Such as keyboard or mouse input, which specifies the
`desired web page. The input is a universal resource locator
`(URL), commonly referred to as a web page address. An
`example of a web page URL is http://www.google.com.
`25
`Another example of a URL is simply an Internet Protocol
`(IP) address of the web server, such as http://216.239.36.10.
`Yet another example of a URL is the address of a specific file
`on a web server, such as http://yourfavoriteserver.com/in
`dex.html. A hypertext link, or link, is text or an image
`displayed by a web browser that has a URL associated with
`it. When a user clicks on a link, the user is requesting the
`web browser to access the file or web page referred to by the
`URL associated with the link. A hypertext transfer protocol
`(http) request is a request issued by a web browser onto the
`network to retrieve from a web server a file specified by the
`URL.
`A web page may be comprised of many individual files
`that must be transferred over the network from the web
`server to the client computer. A common type of web page
`file is a hypertext markup language (HTML or html) file.
`HTML is a programming language used to create web pages.
`In addition to html code, an html file may also include code
`in other programming languages, such as JavaScript(R) or
`VBScript(R). Another common type of web page file is an
`image or graphics file. Such as a .gif, jpg, or pdf file. Other
`types of web page files are audio, video, and applet files.
`When a web browser parses an html file, it may encounter
`a reference to another file on the web server, such as a
`graphics file or a JavaScript file.
`Consider the following web page named index.html,
`which contains html Source code and references to two
`external graphics files referred to as picture A.jpg and
`picture B.jpg. A user points his browser at http://www.y-
`ourfavoritewebserver.com/index.html. The web browser
`issues to the web server an http request on the network for
`index.html. The web server returns index.html to the client
`computer. The browser parses through the code contained in
`index.html and determines the index.html code references
`picture A.jpg and picture B.jpg on the web server. In
`response, the browser issues an http request for pic
`ture A.jpg, the web server returns picture A.jpg, and the
`browser displays picture A.jpg; the browser issues an http
`request for picture B.jpg, the web server returns picture B
`jpg, and the browser displays picture B.jpg.
`65
`Web browser users are familiar with the relatively long
`delay experienced when waiting for a web page to be loaded
`
`40
`
`45
`
`50
`
`55
`
`60
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 13
`
`

`

`3
`frequently. Other browsers include a setting that allows the
`user to specify an age; if the cached version of the file is
`older than the specified age, the browser accesses the server
`rather than satisfying the request out of the cache.
`As may be seen from the discussion above, current
`browsers employ a limited ability to determine whether an
`entire web page and its associated files should or should not
`be cached. However, the present inventors are not aware of
`a web browser that has the ability to determine which
`individual files that make up a web page must be re-fetched
`from the web server in order to display the current content
`of the web page. That is, the browser does not have the
`ability to determine which files of a web page are static and
`which are dynamic. The inability to distinguish between
`static and dynamic web page files may be detrimental to
`dynamic web application performance since the user must
`set the browser caching policy to disable caching in order to
`avoid receiving stale data, which forces all the web page
`files to be re-fetched from the web server. However, in some
`applications a large percentage of the web page content may
`be contained in static files that could be satisfied from the
`cache, and the web page files that are dynamic may consti
`tute only a small percentage of the data that must be
`transferred from the server to the client.
`Using the example above, assume index.html is a 4 KB
`25
`dynamic file, and that picture A.jpg and picture B.jpg are
`each static 2 MB files. If a distinction could be made
`between static and dynamic files, the browser could satisfy
`Subsequent requests for picture A.jpg and picture B.jpg
`from its cache, and re-fetch only index.html from the server,
`thereby potentially improving performance Substantially.
`Therefore what is needed is a method for selectively
`defeating browser caching on a file-by-file basis so that
`dynamic files are obtained from the web server, while static
`files are quickly obtained from the browser cache, thereby
`improving overall performance.
`Another limitation of current web browser caching tech
`nology with respect to a web page that includes both static
`and dynamic files is that it does not provide an ability to
`control file caching that may be performed by other com
`40
`puters in the network between the client computer and the
`web server.
`Therefore what is also needed is a method for selectively
`defeating network file caching on a file-by-file basis so that
`dynamic files are obtained from the web server while static
`files are quickly obtained from the browser cache, thereby
`improving overall performance.
`
`30
`
`35
`
`45
`
`US 7,076,500 B2
`
`5
`
`10
`
`15
`
`4
`determining for each http request whether the filename is an
`altered form of an original filename specifying a file on the
`web server, the original filename having been altered to
`avoid the second filename hitting in the browser cache. The
`method also includes regenerating the original filename
`from the filename included in the http request, if the file
`name is an altered form of the original filename.
`In another aspect, the present invention provides a method
`for effecting selective file caching in a web browser cache.
`The method includes a client computer setting a cache
`policy of the browser cache to cache all files whenever
`possible, and mangling a natural filename to create a
`mangled filename. The natural filename refers to a file on a
`web server. The method also includes the client computer
`issuing to the web server an http request for the mangled
`filename. The method also includes the web server receiving
`the http request, regenerating the natural filename from the
`mangled filename, and returning to the client computer the
`file referred to by the natural filename.
`In another aspect, the present invention provides a com
`puter network. The computer network includes a web server
`that stores a first file having static content and a first
`filename, and second file having dynamic content and a
`second filename. The computer network also includes a
`client computer, coupled to the web server, having a browser
`cache. The client computer is configured to satisfy a request
`for the first file from the browser cache. The client computer
`is also configured to issue to the web server an http request
`for the second file using a mangled version of the second
`filename, which is mangled to miss in the browser cache.
`The web server is configured to regenerate the second
`filename from the mangled filename and return the second
`file to the client computer, in response to the http request.
`An advantage of the present invention is that it improves
`the performance of web applications running on client web
`browsers by virtue of its selective caching method. Advan
`tageously, the present invention achieves the performance
`increase by working with off-the-shelf browsers without
`requiring modification to the browser, other than setting the
`caching policy of the browser. Another advantage of the
`present invention is that it also defeats network level file
`caching for files with dynamic content, in addition to defeat
`ing web browser caching.
`Other features and advantages of the present invention
`will become apparent upon study of the remaining portions
`of the specification and drawings.
`
`SUMMARY
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention provides a method and network for
`altering dynamic filenames Such that they miss in a browser
`cache and network cache, and then having the web server
`regenerate the altered filename into the original filename on
`the web server. In one aspect, the present invention provides
`a method for improving web application performance
`through selective file caching in a browser cache. The
`method includes altering a first filename to create a second
`filename. The first filename specifies a file on a web server.
`The second filename has a high probability of missing in the
`browser cache. The method also includes issuing a request
`to the web server for the second filename.
`In another aspect, the present invention provides a method
`for achieving selective file caching in a browser cache of a
`client computer. The method includes a web server receiving
`http requests from the client computer. Each of the http
`requests includes a filename. The method also includes
`
`50
`
`55
`
`60
`
`65
`
`FIG. 1 is a block diagram of a computer network accord
`ing to the present invention.
`FIG. 2 is a flowchart illustrating operation of the web
`server of FIG. 1 according to the present invention.
`FIG. 3 is a flowchart illustrating operation of the web
`browser of FIG. 1 according to the present invention.
`FIG. 4 is a flowchart illustrating block 312 of FIG. 3 in
`detail according to the present invention.
`FIG. 5 is a flowchart of illustrating script code, such as
`JavaScript code, in a web page file. Such as the web page
`files of FIG. 1, creating HTML code including a mangled
`filename according to the present invention.
`FIG. 6 is a flowchart illustrating an example of selective
`file caching operation according to the present invention.
`FIG. 7 is a partial source code listing of two HTML files
`used in the example of FIG. 6 according to the present
`invention.
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1013, p. 14
`
`

`

`US 7,076,500 B2
`
`5
`FIG. 8 is a partial JavaScript source code listing of
`functions used to create a mangled filename according to the
`present invention.
`FIG. 9 is a partial C language source code listing of a
`function used to regenerate a mangled filename to its cor
`responding natural filename according to the present inven
`tion.
`FIG. 10 is a block diagram of a computer network
`according to an alternate embodiment of the present inven
`tion.
`
`DETAILED DESCRIPTION
`
`10
`
`15
`
`6
`web server 102 runs a network operating system, Such as
`Windows NTR), Novell NetWare(R), or Linux(R).
`In another embodiment, web server 102 comprises a
`management controller in a mass storage controller, such as
`a redundant array of inexpensive disks (RAID) controller.
`The management controller comprises an embedded micro
`processor running an embedded real time operating system,
`such as VxWorks(R) by Wind River International R. Web
`server 102 enables a user to manage and monitor the RAID
`controller. For example, web server 102 enables a user to
`configure one or more physical disk drives into one or more
`logical drives by selecting the number of physical disk
`drives to be included in a logic drive, to configure the RAID
`level of the logical drive, and to replace failed physical disk
`drives and repair a logical drive after replacement of a failed
`drive. Web server 102 also enables the user to monitor status
`of the controller and drives, such as drive temperature or
`failure, logical drive initialization status, etc. Consequently,
`many of the web page files 106 on web server 102 are
`dynamic files since they contain content that is changing.
`Web server code 104 receives http requests issued by web
`browser 124 for web page files 106 via network 112 and
`returns the requested files 106 to client computer 122 via
`network 112. In particular, web server code 104 is config
`ured to recognize http requests for web page files 106
`wherein the filename of the requested web page file 106 has
`been mangled in order to defeat file caching by browser
`cache 126, and to regenerate the original filename, referred
`to herein as the natural filename, of the requested web page
`files 106, as described in detail below. In one embodiment,
`web server code 104 receives an individual http request from
`client computer 122 for a single one of web page files 106,
`and returns the requested web page file 106 to client com
`puter 122.
`Referring now to FIG. 2, a flowchart illustrating operation
`of web server 102 of FIG. 1 according to the present
`invention is shown. Flow begins at block 202.
`At block 202, web server 102 receives an http request
`from network 112, such as from client computer 122 of FIG.
`1. Flow proceeds to decision block 204.
`At decision block 204, web server code 104 determines
`whether the filename portion of the http request is in a
`mangled format. If so, flow proceeds to block 208; otherwise
`flow proceeds to block 206.
`The mangled format is determined from the manner in
`which the natural filenames of web page files 106 are
`mangled. In the present disclosure, mangling a filename is
`altering the filename into a mangled filename Such that the
`mangled filename has a very high likelihood of missing in a
`cache (such as browser cache 126 of FIG. 1 or in network
`cache 1036 of FIG. 10), and such that the natural filename
`may be regenerated from the mangled filename.
`In one embodiment, a natural filename is mangled by
`appending 14 characters to the root portion of the natural
`filename. The root portion comprises the portion of the
`filename up to but not including the “..” and the suffix. For
`example, the root of the filename “index.html is “index”. In
`one embodiment, the 14 appended characters are
`Z”
`followed by a unique 12-digit timestamp. In one embodi
`ment, the timestamp is obtained from the operating system
`running on client computer 122. Another embodiment is
`contemplated as described below, in which the timestamp is
`obtained from the operating system running on web server
`102. In one embodiment, the timestamp specifies the number
`of seconds elapsed from Jan. 1, 1970 until the current date
`and time.
`
`Referring now to FIG. 1, a block diagram of a computer
`network 100 according to the present invention is shown.
`The computer network 100 includes a client computer 122
`and web server 102 coupled a network 112. Client computer
`122 includes a web browser 124 and a browser cache 126,
`described in more detail below. Web server 102 includes
`web server code 104 and web page files 106, described in
`more detail below. In one embodiment, the network 112
`comprises the world-wide-web (WWW). However, network
`112 may be any network for enabling two or more computers
`to communicate with one another. In one embodiment, the
`client 122 and the web server 102 communicate by trans
`mitting and receiving internet protocol (IP) packets. Web
`server 102 and client computer 122 may be coupled to
`network 112 by any of various means, including twisted pair
`telephone wires, cable, Ethernet, Fibre Channel, Infiniband
`(IB), Token Ring, Arcnet, FDDI, LocalTalk, or ATM.
`Client computer 122 comprises any of various computer
`systems configurable to execute web browser 124 and to
`store web page files in browser cache 126. Examples of
`computer systems configurable to execute web browser 124
`include personal computers, notebook computers, worksta
`tion computers, mainframe computers, handheld computers,
`pocket PCs, personal digital assistants, and the like.
`Web browser 124 maintains browser cache 126 of web
`page files 106 previously fetched from web server 102, as
`well as of files received from other web servers coupled to
`network 112. Web browser 124 enables a user to set a
`caching policy for browser cache 126 similar to the caching
`policies described above.

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket