WO2014014746A1 - Delay the persistent memory storage of website data to control the data that is stored in the browser - Google Patents
Delay the persistent memory storage of website data to control the data that is stored in the browser Download PDFInfo
- Publication number
- WO2014014746A1 WO2014014746A1 PCT/US2013/050176 US2013050176W WO2014014746A1 WO 2014014746 A1 WO2014014746 A1 WO 2014014746A1 US 2013050176 W US2013050176 W US 2013050176W WO 2014014746 A1 WO2014014746 A1 WO 2014014746A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- memory storage
- cookie
- temporary memory
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Definitions
- cookie and website data are stored in a persistent storage of a computing device that is associated with a browser.
- a conventional browser allows a user to configure a set of rules.
- those rules may disrupt the user experience by preventing webpages and other data content from being downloaded to the computing device.
- the user may not know whether to allow or block the cookie or website data from being persistently stored on the computing device.
- what is needed is a way to store cookie and website data temporarily on the computing device until a user makes a decision to persistently store the received cookie or website data, or alternatively, a user configures the computing device to remove the cookie or website data from the temporary storage location.
- Embodiments of the invention include a system, computer-implemented method, and a computer-readable medium for delaying the storage of data.
- Data from a web server is provided to a client device in response to a request for a webpage.
- Data is initially stored in a temporary memory storage.
- the temporary memory storage is associated with a browser and stores data before data is moved to a persistent memory storage.
- a notification is generated that indicates that data was received and is intended to be stored persistently.
- the system determines how data in temporary memory storage will be processed and whether data can be stored in the persistent memory storage.
- FIG. 1 is a block diagram showing a client-server system in which embodiments of the invention can be implemented.
- FIG. 2 is a block diagram of an exemplary system for delaying storage of cookie and website data in a persistent memory storage on a client.
- FIG. 3 is a screenshot of an exemplary embodiment of a displayed cookie or website data information.
- FIG. 4 is a flowchart of a method for delaying storage of a cookie or website data in a persistent memory storage, according to an embodiment.
- FIG. 5 is a block diagram of a computer system in which embodiments of the invention can be implemented.
- FIG. 1 is a block diagram of a client-server environment 100.
- Client-server environment 100 includes one or more networks 102, web servers 104, and clients 106.
- Network 102 may be any network or combination of networks that can carry data communication.
- a network 102 may include, but is not limited to, a local area network, metropolitan area network, and/or wide area network together forming the Internet.
- Network 102 can support technologies, including, but not limited to, the World Wide Web (or simply the "Web"), that provide access to services and applications using protocols, such as a HyperText Transfer Protocol ("HTTP").
- HTTP HyperText Transfer Protocol
- Intermediate web servers, gateways, or other servers may be provided between components of the system shown in FIG. 1, depending upon a particular application or environment.
- Web server 104 is a computing device or an application executing on a computing device that hosts multiple websites 108.
- a website 108 is a set of related webpages containing content such as text, video, music, audio, and images, to name only a few.
- Website 108 is accessible via network 102 through a website address, such as a Uniform Resource Locator ("URL").
- URL Uniform Resource Locator
- Webpage 109 is a document that is written in plain text and which is interspersed with formatting instructions. Those formatting instructions may be in a HyperText Markup Language (“HTML”), extensible HyperText Markup Language (“XHTML”), Multipurpose Internet Mail Extensions (“MIME”) HTML (also referred to as "MHTML”), Scalable Vector Graphics (“SVG”), or flash objects to name a few examples. Webpage 109 may also incorporate content from multiple websites 108.
- HTML HyperText Markup Language
- XHTML extensible HyperText Markup Language
- MIME Multipurpose Internet Mail Extensions
- SVG Scalable Vector Graphics
- flash objects to name a few examples.
- Webpage 109 may also incorporate content from multiple websites 108.
- Multiple web servers 104 may be combined in a domain.
- a domain comprises multiple web servers 104 that can receive and process a request message, such as an HTTP request message, for a particular webpage 109 and transmit the particular webpage 109 to client 106.
- a request message such as an HTTP request message
- Client 106 is an electronic computing device that is manipulated by a user and is capable of requesting and receiving website 108 resources over network 102.
- Example clients 106 are personal computers, mobile communication devices, and tablet computers.
- Client 106 typically includes an application, such as a web browser (or simply "browser") 114.
- Browser 114 may appear as a standalone application or may be embedded in another application.
- a user uses browser 1 14 to request and receive webpages 109 over network 102. For example, a user requests webpage 109 by typing the website address, such as a URL, associated with webpage 109.
- browser 114 receives a URL address from a user, browser 1 14 generates a request message and transmits the request message to website 108 associated with the URL.
- web server 104 transmits a response message to client 106.
- the response message includes webpage 109.
- the response message can also include cookies (also referred to as "HTTP cookies”, “web cookies” or “browser cookies”), values for website data or instructions that manipulate website data, or both (collectively referred to as cookie or website data 110.)
- Website data may be data that is stored on web server 104 that may, for example, update, delete and manipulate data on processes and web based applications that are executing on client 106. In one embodiment, those processes or web based applications may be installed on client 106, or included as plug-ins to browser 114.
- Example processes and web based applications may include web data for document object model (“DOM") storage, web databases, indexed databases, application caches and file systems on client 106, to name only a few.
- DOM document object model
- FIG. 1 values for website data or instructions that manipulate website data are stored on web server 104 and referred to as cookie or website data 1 10A.
- website data may also be stored on client 106.
- Website data stored on client 106 may be all or a subset of website data stored on web server 104 that was previously downloaded to client 106.
- website data on client 106 may be updated with values for website data from web server 104, as described below.
- Web server 104 may also request values stored in website data from client 106.
- website data may be generated on client 106.
- Example website data may be included in DOM storage on client 106, web databases, indexed databases (also referred to as indexed DB for storing large amounts of structured data on client 106), application cache and file system on client 106.
- those instructions may be received from web server 104 in JavaScript or another language.
- website data that is stored on client 106 is referred to as cookie or website data HOB.
- the script in Tables 1A-1B below, includes instructions that manipulate website data on client 106.
- browser 114 on client 106 may send a HTTP request to web server 104.
- web server 104 In response to the HTTP request, web server 104 sends the HTML document such the HTML document included Table IB to client 106, below.
- variable "visited” is website data that is stored on client 106. As demonstrated in Table IB, the value of variable “visited” is not transmitted over network 102 but is stored in memory storage on client 106. Example memory storage is discussed in detail in FIG. 5. The instructions in the HTML document in Table IB, however, manipulate the value "visited” in website data when the instructions set the value of "visited” to "1".
- variable that is website data for example variable
- Table 1C includes a script in the HTML document that accesses website data in a web database. The HTML document in Table 1C may be generated and sent to client 106 in response to the HTTP request in Table 1 A.
- the script includes instructions that access and manipulate website data in the web database, but not the actual website data.
- Table 1C values from table “visited” are selected and analyzed. Based on the values from the table visited, variable "document.body.innerText” is set to either "Welcome back!” or "Hello, Stranger!.
- the website data may be manipulated using an indexed database.
- Table ID below includes a script in the HTML document that accesses an indexed database.
- the HTML document in Table ID may be generated in response to the HTTP request in Table 1 A. ⁇ !DOCTYPE html>
- the script includes instructions that access and manipulate website data in the indexed database, but not the actual website data.
- Cookies provide information available on client 106 to web server 104.
- the HTTP protocol used to transmit webpage 109 between web server 104 and client 106 is a stateless protocol.
- web server 104 cannot identify that the two requests were made by the same browser 114.
- cookies allow web server 104 to process the request based on the information provided in the cookies.
- web server 104 may generate webpage 109 based, at least in part, on the information provided by the cookies.
- Tables 1A and 1E-1G demonstrate an example communication between web server 104 and client 106 that includes cookies.
- web server 104 may transmit a HTTP response that includes a cookie in the script included in Table IE, below.
- web server 104 transmits a cookie to client 106 that has a value for variable "visited” set to 1.
- client 106 receives the HTTP response in Table IE, it stores the cookie in a memory storage (described in detail in FIG. 5.)
- client 106 sends a subsequent HTTP request to the host "example.com” on web server 104
- the HTTP request includes the cookie in Table IE whose value of the variable "visited” is set to 1.
- the example subsequent HTTP request is included in Table IF below.
- web server 104 may send an HTTP response in Table 1G.
- the response in Table 1 G indicates that web server 104 has identified that it has previously transmitted a cookie to client 106, and has included information in the HTTP response based, at least in part, on the state of the cookie stored on client 106.
- the cookie that includes a variable set to a particular value is transmitted over network 102.
- Cookies are generated and stored on web server 104.
- cookies that are stored on web server 104 are referred to as cookie and website data 11 OA.
- cookies are included in a response message, such as an HTTP message from web server 104.
- cookies may be stored in a memory accessible to browser 114. Example memory is described in detail in FIG. 5.
- client 106 subsequently sends a request message to web server 104, cookies may also be included in the header of the request message.
- cookies that are stored on client 106 are referred to as cookie or website data HOB.
- Cookies are tokens that include name-value pairs. As a user uses browser 114 to access webpages 109, the names in cookies may be populated with a particular value. For example, the value of a cookie may be populated with a user identifier. The user identifier is specific to a cookie that is stored on a particular client 106. When web server 104 receives a cookie with a user identifier, the user identifier may be mapped to the user identifier on web server 104 that stores user information. In an online store website, for example, a user identifier may map to a list of items (i.e. a virtual "shopping cart") that a user selected through an online store.
- a user identifier may map to a list of items (i.e. a virtual "shopping cart") that a user selected through an online store.
- a cookie includes multiple attributes.
- a cookie may include a domain attribute and a path attribute.
- the domain attribute identifies the domain that is associated with a cookie.
- browser 1 14 may include a cookie in a request message to web server 104 that is located in a domain stored in the cookie.
- the path attribute further limits the web address on web server 104 to which client 106 may transmit a request that includes the cookie.
- the cookie attributes may also include cookie creation and expiration dates.
- a conventional browser When a conventional browser receives cookie or website data from a web server, a conventional browser stores cookie or website data in the persistent memory.
- a conventional browser also allows for deletion of cookie or website data. For example, a user may delete cookies from the persistent storage associated with a browser. If cookies are not blocked, those cookies, however, may already be stored in persistent storage and may provide the browsing habits of the user to one or more web servers until they are blocked or removed.
- a user may use a browser to create, delete and modify a set of rules that control access of cookies to the client. For example, a user may set up a rule that allows a browser to store cookies from website www.example.com, but not from website www.example.org.
- a user may configure a rule to notify the user when a browser receives a particular cookie, and allow a user to accept or block the cookie.
- a user may set up a rule that blocks some or all cookies from being stored on the client.
- a cookie stored on a client may track the browsing activities of the user.
- a user may set up a rule to block or remove that cookie.
- a user does not have an option of viewing the cookie information or website data information before they are stored.
- additional information about a cookie or about website data would allow a user to determine which cookie or website data should be blocked or which cookie or website data may be stored persistently on a client.
- FIG. 2 is a block diagram of an exemplary system 200 for delaying storage of cookie or website data in a persistent memory storage of a client.
- web server 104 stores cookie or website data 1 1 OA.
- Web message 202 includes cookie or website data H OC.
- Cookie or website data HOC may be a subset of cookies that are stored on web server 105 or instructions, variables, etc., that access, rely on and/or manipulate website data on client 106..
- cookie or website data 1 IOC may be included in the header of web message.
- Example web message 202 may be an HTML message.
- browser 1 14 passes web message
- Temporary memory storage 206 may be a volatile memory storage (described in detail in FIG. 5). Temporary memory storage 206 may, for example, require a power supply to maintain a memory state.
- Example temporary memory storage 206 may include a random access memory ("RAM”), dynamic random access memory (“DRAM”) and static random access memory (“SRAM”).
- client 106 stores data temporarily in temporary memory storage 206, such as data that client 106 intends to delete, move to persistent memory storage or that may be deleted when client 106 is turned off.
- cookie or website data HOC may be stored in temporary memory storage 206 until client 106 receives instructions to accept, block and/or remove cookie or website data 1 IOC.
- notification generator 208 notifies browser 114 that cookie or website data HOC is stored in temporary memory storage 206.
- notification generator 208 generates a notification message for browser 114.
- browser 1 14 may use the notification message to notify the user that cookie or website data 1 IOC is stored in temporary memory storage 206.
- the notification message may include a message that is displayed on the display screen of client 106 or be in an audio, to name a few examples.
- a user when browser 114 notifies a user that browser 114 received cookie or website data HOC, a user provides an indication to accept or block cookie or website data 1 IOC. In another embodiment, a user may also use client 106 to create rules that accept or block subsequent instances of cookie or website data 1 IOC that client 106 receives from web server 104.
- a user is provided with cookie or website data information on a display screen.
- the display screen presents a user with the cookie or website data information in a detailed format. Based on the presented information, a user provides an indication to accept or reject cookie or website data HOC.
- Example website data information that data processor 204 presents to a user is described in detail in FIG. 3.
- cookie or website data HOC may update, delete or append cookie or website data HOB that is persistently stored on client 106.
- transferring module 210 removes cookie or website data HOC from temporary memory storage 206 or any other storage on client 106 (not shown). In an embodiment, transferring module 210 may remove all cookie or website data 1 IOC that is associated with the origin of data, such as a domain. Additionally, client 106 may receive an indication from a user that causes data processor 204 to block cookie or website data HOC from being stored in temporary memory storage 206 when browser 1 14 subsequently receives other instances of the blocked cookie or website data HOC from web server 104. In another embodiment, a user may use browser 114 to configure one or more rules to block cookie or website data 1 IOC.
- Persistent memory storage 212 stores persistent data, such as cookie or website data HOB. Persistent data may persist in persistent memory storage 212 after client 106 is shut down. Typically, persistent memory storage 212 is a non- volatile storage (described in detail in FIG. 5), such as a hard drive or flash memory. [0049] In an embodiment, when a user fails to respond to the notification message, website data 1 IOC is processed according to the default settings. Default settings provide data processor 204 with instructions for processing cookie or website data HOC. Default settings may also include rules that a user had previously configured for processing cookie or website data HOC. In an embodiment, those rules may be specific to processing cookie or website data HOC from a particular web server 104, a particular application, or a particular type of cookie or website data 1 IOC.
- transferring module 210 may access default settings included in browser 1 14 and determine whether to transfer cookie or website data HOC from temporary memory storage 206 to persistent memory storage 212. Transferring module 210 may also use user settings to remove cookie or website data HOC from temporary memory storage 206, or any other storage on client 106. Transferring module 210 may also use user settings to block cookie or website data HOC from being stored in temporary memory storage 206 when browser 114 receives cookie or website data HOC from web server 104.
- browser 114 may be configured to wait for a configurable amount of time prior to determining that a user failed to respond to a notification message. For example, browser 114 may be configured to wait for time "t" for an indication from a user to view information associated with cookie or website data 1 IOC. In an embodiment, time “t” may be an integer that indicates the amount of time in, for example, seconds, after a notification message was issued on client 106. If browser 1 14 receives an indication from a user to view cookie or website data information within time "t", browser 114 displays cookie or website data information on a display screen. Otherwise, browser 1 14 activates transferring module 210 that uses the default settings for processing website data 1 IOC as described above.
- web message 202 may include instructions, such as
- JavaScript instructions (not shown) that access or manipulate website data HOB that is stored in persistent memory storage 212.
- data processor 204 invokes notification generator 208 when data processor 204 determines that instructions attempt to access and manipulate website data HOB. The instructions may attempt to access website data 110B upon a receipt of web message 202 or at another time. Once invoked, notification generator 208 generates a notification message for browser 114 that includes a message on the display screen, as described above.
- data processor 204 processes the instructions that are received in web message 202. As described above, the determination may be based on an indication from a user or may be stored in the user settings.
- a user may provide an indication to process or block the instructions associated with a particular website or a domain.
- data processor 204 does not process instructions included in web message 202.
- FIG. 3 is a screenshot 300 of an exemplary embodiment of cookie or website data information that is displayed on a client.
- the cookie or website data information referred to as website data information 302 in FIG. 3 enables a user to decide whether to accept or reject cookie or website data 1 IOC.
- FIG. 3 is exemplary, and the invention is not limited to this embodiment.
- Website data information 302 may include attributes such as the domain that generated cookie or website data 1 IOC (when website data is generated on server 104), the name associated with cookie or website data HOC, and the time cookie or website data 1 IOC was created, to name a few examples. Based on website data information 302, a user is able to determine whether to accept or block website data HOC. When a user accepts cookie or website data 1 IOC, transferring module 210 transfers cookie or website data HOC from temporary memory storage 206 to persistent memory storage 212. Otherwise, transferring module 210 deletes cookie or website data HOC from temporary memory storage 206.
- FIG. 4 is a flowchart of a method 400 for delaying the storage of a cookie or website data in persistent memory storage, according to an embodiment.
- a cookie or website data is received.
- client 106 sends a request message for webpage 109 to web server 104.
- browser 114 executing on client 106 receives a response message that includes cookie or website data 1 IOC.
- the response message may include either cookie, scripts that access, rely on and/or manipulate website data, values for website data, or any of the above.
- a cookie or website data are stored in a temporary memory.
- browser 1 14 stores cookie or website data HOC received in stage 402 in temporary memory storage 206.
- a notification message is displayed.
- notification generator 208 issues a notification message to browser 1 14 that notifies a user that cookie or website data HOC are stored in temporary storage 206.
- the issued notification message is displayed on client 106 using, for example, a notification icon.
- the notification icon displays cookie or website data information to a user.
- other types of notification may also occur on client 106.
- stage 408 a determination is made as to whether a response to a notification was received. For example, browser 1 14 determines whether the notification icon was activated, or a notification response was received from a user. When a response to a notification is received, the flowchart proceeds to stage 410. Otherwise, the flowchart proceeds to stage 416.
- cookie or website data information is displayed.
- client For example, client
- the 106 displays a display screen, such as the one in FIG. 3, with cookie or website data information.
- the cookie or website data information includes information about cookie or website data HOC received in stage 402. Based on the displayed cookie or website data information, a user determines whether to accept or block cookie or website data HOC.
- a determination to accept or block a cookie or website data is received.
- browser 1 14 may receive an indication from a user to remove cookie or website data HOC from client 106.
- the flowchart proceeds to stage 418.
- browser 114 receives an indication from a user to block cookie or website data 1 IOC, the flowchart proceeds to stage 420.
- stage 414 default settings for processing a cookie or website data are accessed.
- browser 114 accesses default settings that include rules for processing cookie or website data 1 IOC.
- the default settings include rules for accepting or blocking cookie or website data 1 IOC.
- stage 416 a determination is made on whether to accept or block a cookie or website data based on the default setting.
- a rule in default settings accessed by browser 1 14 indicate that cookie or website data HOC may be stored in persistent memory storage 212
- cookie or website data 1 IOC is deemed accepted and the flowchart proceeds to stage 418.
- browser settings indicate that cookie or website data 1 IOC may not be stored in persistent memory storage 212, the flowchart proceeds to stage 420.
- cookies are stored in persistent memory storage.
- cookie or website data HOC is deemed accepted in stages 412 and 416
- cookie or website data 1 IOC is moved to persistent memory storage 212.
- transferring module 210 moves cookie or website data HOC from temporary memory storage 206 to persistent memory storage 212.
- cookie or website data HOC are combined with cookie or website data HOB, respectively, which are stored in persistent memory storage 212 on client 106.
- cookie or website data HOC are removed from temporary memory storage.
- cookie or website data 1 IOC is deemed blocked from client 106 in stages 412 and 416
- cookie or website data HOC is removed from client 106.
- transferring module 210 removes cookie or website data HOC from temporary memory storage 206.
- the removed cookie or website data is blocked.
- cookie or website data HOC that is subsequently received on client 106 is blocked from being stored in temporary memory storage 206.
- a setting within browser 114 may be set to subsequently block cookie or website data 1 IOC.
- FIG. 5 is an example computer system 500 in which embodiments of the present invention, or portions thereof, may be implemented as computer-readable code.
- the components or modules of system 100 such as browser 1 14, data processor 204, notification generator 208, transferring module 210, etc., may be implemented in one or more computer systems 500 using hardware, software, firmware, tangible computer- readable media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems.
- Modules and components in FIGS. 1-4 may be embodied in hardware, software, or any combination thereof.
- Client 106 or web server 104 may include one or more computing devices.
- Client 106 or web server 104 may include one or more computing devices.
- Client 106 or web server 104 may include one or more computing devices.
- 106 or web server 104 may include one or more processors 502, one or more non- volatile storage mediums 504, one or more memory devices 506, a communication infrastructure 508, a display screen 510 and a communication interface 512.
- Processors 502 may include any conventional or special purpose processor, including, but not limited to, digital signal processor (“DSP”), field programmable gate array (“FPGA”), and application specific integrated circuit (“ASIC").
- DSP digital signal processor
- FPGA field programmable gate array
- ASIC application specific integrated circuit
- GPU 514 is a specialized processor that executes instructions and programs, selected for complex graphics and mathematical operations, in parallel.
- Non-volatile storage 504 may include one or more of a hard disk drive, flash memory, and like devices that may store computer program instructions and data on computer-readable media.
- One or more of non- volatile storage device 504 may be a removable storage device.
- Memory devices 506 may include one or more volatile memory devices such as, but not limited to, random access memory.
- Communication infrastructure 508 may include one or more device interconnection buses such as Ethernet, Peripheral Component Interconnect (“PCI”), and the like.
- PCI Peripheral Component Interconnect
- computer instructions are executed using one or more processors 502 and can be stored in non- volatile storage medium 504 or memory devices 506.
- Display screen 510 allows results of the computer operations to be displayed to a user or an application developer.
- Communication interface 512 allows software and data to be transferred between computer system 500 and external devices.
- Communication interface 512 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like.
- Software and data transferred via communication interface 512 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communication interface 512. These signals may be provided to communication interface 512 via a communications path.
- the communications path carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link or other communications channels.
- Embodiments also may be directed to computer program products comprising software stored on any computer-readable medium.
- Such software when executed in one or more data processing device, causes a data processing device(s) to operate as described herein.
- Embodiments of the invention employ any computer-readable medium. Examples of computer-readable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory), secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, ZIP disks, tapes, magnetic storage devices, optical storage devices, MEMS, nanotechnological storage device, etc.).
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Description
DELAY THE PERSISTENT MEMORY STORAGE OF WEBSITE DATA TO CONTROL THE DATA THAT IS STORED IN THE BROWSER
BACKGROUND
[0001] As users browse websites accessible via the Internet or the World Wide Web (or simply the "Web"), they download content from web resources onto their computing devices. This downloaded content may include cookie and website data. Typically, cookie and website data are stored in a persistent storage of a computing device that is associated with a browser.
[0002] To prevent the storage of unwanted cookie and website data, a conventional browser allows a user to configure a set of rules. However, those rules may disrupt the user experience by preventing webpages and other data content from being downloaded to the computing device. In other instances, the user may not know whether to allow or block the cookie or website data from being persistently stored on the computing device. Thus, what is needed is a way to store cookie and website data temporarily on the computing device until a user makes a decision to persistently store the received cookie or website data, or alternatively, a user configures the computing device to remove the cookie or website data from the temporary storage location.
BRIEF SUMMARY
[0003] Embodiments of the invention include a system, computer-implemented method, and a computer-readable medium for delaying the storage of data. Data from a web server is provided to a client device in response to a request for a webpage. Data is initially stored in a temporary memory storage. The temporary memory storage is associated with a browser and stores data before data is moved to a persistent memory storage. A notification is generated that indicates that data was received and is intended to be stored persistently. Depending on the response to the notification, the system determines how data in temporary memory storage will be processed and whether data can be stored in the persistent memory storage.
[0004] Further embodiments, features, and advantages of the invention, as well as the structure and operation of the various embodiments of the invention, are described in detail below with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES
[0005] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments of the invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the relevant art to make and use the invention.
[0006] FIG. 1 is a block diagram showing a client-server system in which embodiments of the invention can be implemented.
[0007] FIG. 2 is a block diagram of an exemplary system for delaying storage of cookie and website data in a persistent memory storage on a client.
[0008] FIG. 3 is a screenshot of an exemplary embodiment of a displayed cookie or website data information.
[0009] FIG. 4 is a flowchart of a method for delaying storage of a cookie or website data in a persistent memory storage, according to an embodiment.
[0Θ1Θ] FIG. 5 is a block diagram of a computer system in which embodiments of the invention can be implemented.
[0011] Embodiments will now be described with reference to the accompanying drawings. In the drawings, generally, like reference numbers indicate identical or functionally similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.
DETAILED DESCRIPTION OF EMBODIMENTS
[0012] The following detailed description refers to the accompanying drawings that illustrate exemplary embodiments consistent with this invention. Other embodiments are possible, and modifications can be made to the embodiments within the spirit and scope of the invention. Therefore, the detailed description is not meant to limit the invention. Rather, the scope of the invention is defined by the appended claims.
System
[0013] FIG. 1 is a block diagram of a client-server environment 100. Client-server environment 100 includes one or more networks 102, web servers 104, and clients 106.
[0014] Network 102 may be any network or combination of networks that can carry data communication. Such a network 102 may include, but is not limited to, a local area network, metropolitan area network, and/or wide area network together forming the Internet. Network 102 can support technologies, including, but not limited to, the World Wide Web (or simply the "Web"), that provide access to services and applications using protocols, such as a HyperText Transfer Protocol ("HTTP"). Intermediate web servers, gateways, or other servers may be provided between components of the system shown in FIG. 1, depending upon a particular application or environment.
[0015] Web server 104 is a computing device or an application executing on a computing device that hosts multiple websites 108. A website 108 is a set of related webpages containing content such as text, video, music, audio, and images, to name only a few. Website 108 is accessible via network 102 through a website address, such as a Uniform Resource Locator ("URL").
[0016] Webpage 109 is a document that is written in plain text and which is interspersed with formatting instructions. Those formatting instructions may be in a HyperText Markup Language ("HTML"), extensible HyperText Markup Language ("XHTML"), Multipurpose Internet Mail Extensions ("MIME") HTML (also referred to as "MHTML"), Scalable Vector Graphics ("SVG"), or flash objects to name a few examples. Webpage 109 may also incorporate content from multiple websites 108.
[0017] Multiple web servers 104 may be combined in a domain. A domain comprises multiple web servers 104 that can receive and process a request message, such as an HTTP request message, for a particular webpage 109 and transmit the particular webpage 109 to client 106.
[0018] Client 106 is an electronic computing device that is manipulated by a user and is capable of requesting and receiving website 108 resources over network 102. Example clients 106 are personal computers, mobile communication devices, and tablet computers. Client 106 typically includes an application, such as a web browser (or simply "browser") 114. Browser 114 may appear as a standalone application or may be embedded in another application. A user uses browser 1 14 to request and receive webpages 109 over
network 102. For example, a user requests webpage 109 by typing the website address, such as a URL, associated with webpage 109. When browser 114 receives a URL address from a user, browser 1 14 generates a request message and transmits the request message to website 108 associated with the URL.
[0019] In response to the request message, web server 104 transmits a response message to client 106. The response message includes webpage 109. The response message can also include cookies (also referred to as "HTTP cookies", "web cookies" or "browser cookies"), values for website data or instructions that manipulate website data, or both (collectively referred to as cookie or website data 110.) Website data may be data that is stored on web server 104 that may, for example, update, delete and manipulate data on processes and web based applications that are executing on client 106. In one embodiment, those processes or web based applications may be installed on client 106, or included as plug-ins to browser 114. Example processes and web based applications may include web data for document object model ("DOM") storage, web databases, indexed databases, application caches and file systems on client 106, to name only a few. In FIG. 1 , values for website data or instructions that manipulate website data are stored on web server 104 and referred to as cookie or website data 1 10A.
[0020] In an embodiment, website data may also be stored on client 106. Website data stored on client 106 may be all or a subset of website data stored on web server 104 that was previously downloaded to client 106. In this embodiment, website data on client 106 may be updated with values for website data from web server 104, as described below. Web server 104 may also request values stored in website data from client 106. In another embodiment, website data may be generated on client 106. Example website data may be included in DOM storage on client 106, web databases, indexed databases (also referred to as indexed DB for storing large amounts of structured data on client 106), application cache and file system on client 106. Once website data is stored on client 106, client 106 may receive instructions that manipulate the website data. In one embodiment, those instructions may be received from web server 104 in JavaScript or another language. In FIG. 1, website data that is stored on client 106 is referred to as cookie or website data HOB.
[0021] The script in Tables 1A-1B below, includes instructions that manipulate website data on client 106. In Table 1 A, browser 114 on client 106 may send a HTTP request to web server 104.
GKT /test, huii i http/1 .1
Host: example.com
Table 1A
In response to the HTTP request, web server 104 sends the HTML document such the HTML document included Table IB to client 106, below.
Table IB
[0023] In Table IB, the variable "visited" is website data that is stored on client 106. As demonstrated in Table IB, the value of variable "visited" is not transmitted over network 102 but is stored in memory storage on client 106. Example memory storage is discussed in detail in FIG. 5. The instructions in the HTML document in Table IB, however, manipulate the value "visited" in website data when the instructions set the value of "visited" to "1".
[0024] As shown in Tables 1A-1B, a variable that is website data (for example variable
"visited") is not transmitted over network 102. Rather instructions that access the variable and set the value to the variable are transmitted. When client 106 receives the HTML document, the value is set to a variable once the website data is accessed in a manner described below.
[0025] In another embodiment, Table 1C includes a script in the HTML document that accesses website data in a web database. The HTML document in Table 1C may be generated and sent to client 106 in response to the HTTP request in Table 1 A.
Table 1C
[0026] As with example in Table B, the script includes instructions that access and manipulate website data in the web database, but not the actual website data. For example, in Table 1C values from table "visited" are selected and analyzed. Based on the values from the table visited, variable "document.body.innerText" is set to either "Welcome back!" or "Hello, Stranger!".
[0027] In yet another example, the website data may be manipulated using an indexed database. Table ID below includes a script in the HTML document that accesses an indexed database. The HTML document in Table ID may be generated in response to the HTTP request in Table 1 A.
<!DOCTYPE html>
<html>
<head>
<script>
var req = webkitIndexedDB.open("visited");
req.onsuccess - function(e) {
var db = e.target.result;
var ver = "1.0";
if (ver != db.version) {
var vtx = db.setVersion(ver);
vtx.onsuccess = function() {
db.createObjectStore("visited", {keyPath: "timeStamp"});
var tx = db.transaction(["visited"], webkitlDBTransaction.READ WRITE); var store = tx.objectStore("visited");
store. put({"timeStamp": new Date().getTime()});
document.body.innerText = "Hello, Stranger!";
}
} else {
document.body.innerText = "Welcome back!";
}
}
</script>
</head>
<body>
</body>
</html>
Table ID
[0028] As with examples in Tables B and C, the script includes instructions that access and manipulate website data in the indexed database, but not the actual website data.
[0029] Cookies provide information available on client 106 to web server 104. For example, a person skilled in the art will appreciate that the HTTP protocol used to transmit webpage 109 between web server 104 and client 106 is a stateless protocol. As a result, when browser 114 makes two separate requests to web server 104, web server 104 cannot identify that the two requests were made by the same browser 114. When browser 114 includes cookies in the request, cookies allow web server 104 to process the request based on the information provided in the cookies. For example, web server 104 may generate webpage 109 based, at least in part, on the information provided by the cookies.
[0030] Tables 1A and 1E-1G demonstrate an example communication between web server 104 and client 106 that includes cookies. For example, in response to a first HTTP
request to web server 104 in Table 1A, web server 104 may transmit a HTTP response that includes a cookie in the script included in Table IE, below.
Table IE
[0031] In the HTTP response in Table IE, web server 104 transmits a cookie to client 106 that has a value for variable "visited" set to 1. When client 106 receives the HTTP response in Table IE, it stores the cookie in a memory storage (described in detail in FIG. 5.) Subsequently, when client 106 sends a subsequent HTTP request to the host "example.com" on web server 104, the HTTP request includes the cookie in Table IE whose value of the variable "visited" is set to 1. The example subsequent HTTP request is included in Table IF below.
Table I F
[0032] In response to the HTTP request in Table IF, web server 104, may send an HTTP response in Table 1G. The response in Table 1 G indicates that web server 104 has identified that it has previously transmitted a cookie to client 106, and has included information in the HTTP response based, at least in part, on the state of the cookie stored on client 106.
Table 1G
[0033] As shown in Tables 1E-1G, the cookie that includes a variable set to a particular value is transmitted over network 102.
[0034] Cookies are generated and stored on web server 104. In FIG. 1 , cookies that are stored on web server 104 are referred to as cookie and website data 11 OA. In an embodiment, cookies are included in a response message, such as an HTTP message from web server 104. When downloaded to client 106, cookies may be stored in a memory accessible to browser 114. Example memory is described in detail in FIG. 5. Similarly, when client 106 subsequently sends a request message to web server 104, cookies may also be included in the header of the request message. In FIG. 1 , cookies that are stored on client 106 are referred to as cookie or website data HOB.
[0035] Cookies are tokens that include name-value pairs. As a user uses browser 114 to access webpages 109, the names in cookies may be populated with a particular value. For example, the value of a cookie may be populated with a user identifier. The user identifier is specific to a cookie that is stored on a particular client 106. When web server 104 receives a cookie with a user identifier, the user identifier may be mapped to the user identifier on web server 104 that stores user information. In an online store website, for example, a user identifier may map to a list of items (i.e. a virtual "shopping cart") that a user selected through an online store.
[0036] In addition to the name-value pairs that store state information, a cookie includes multiple attributes. For example, a cookie may include a domain attribute and a path attribute. The domain attribute identifies the domain that is associated with a cookie. For example, browser 1 14 may include a cookie in a request message to web server 104 that is located in a domain stored in the cookie. The path attribute further limits the web
address on web server 104 to which client 106 may transmit a request that includes the cookie. The cookie attributes may also include cookie creation and expiration dates.
[0037] When a conventional browser receives cookie or website data from a web server, a conventional browser stores cookie or website data in the persistent memory. A conventional browser also allows for deletion of cookie or website data. For example, a user may delete cookies from the persistent storage associated with a browser. If cookies are not blocked, those cookies, however, may already be stored in persistent storage and may provide the browsing habits of the user to one or more web servers until they are blocked or removed. In another example, a user may use a browser to create, delete and modify a set of rules that control access of cookies to the client. For example, a user may set up a rule that allows a browser to store cookies from website www.example.com, but not from website www.example.org. In another example, a user may configure a rule to notify the user when a browser receives a particular cookie, and allow a user to accept or block the cookie. In another example, a user may set up a rule that blocks some or all cookies from being stored on the client.
[0038] A person skilled in the art will appreciate that blocking some cookie or website data from being stored on a client may be preferred by some users. For example, a cookie stored on a client may track the browsing activities of the user. When a user does not wish to have his browsing activities tracked by a particular cookie, a user may set up a rule to block or remove that cookie.
[0039] However, in those conventional systems, a user does not have an option of viewing the cookie information or website data information before they are stored. In an embodiment, additional information about a cookie or about website data would allow a user to determine which cookie or website data should be blocked or which cookie or website data may be stored persistently on a client.
[0040] To provide a user with an option for viewing cookie or website data information, and determine whether to accept or reject cookie or website data 110, browser 114 delays the persistent storage of cookie or website data 1 10 on client 106. As described in detail in FIG. 2, when browser 114 receives cookie or website data 1 10 from web server 104, browser 1 14 stores cookie or website data 1 10 in a temporary memory storage. This provides a user with an opportunity to review cookie or website data information prior to storing cookie or website data in the persistent memory storage.
[0041] FIG. 2 is a block diagram of an exemplary system 200 for delaying storage of cookie or website data in a persistent memory storage of a client. In FIG. 2, web server 104 stores cookie or website data 1 1 OA. Upon a request from client 106 (not shown), web server 104 generates web message 202. Web message 202 includes cookie or website data H OC. Cookie or website data HOC may be a subset of cookies that are stored on web server 105 or instructions, variables, etc., that access, rely on and/or manipulate website data on client 106.. In another embodiment, cookie or website data 1 IOC may be included in the header of web message. Example web message 202 may be an HTML message. Once generated, web server 104 transmits web message 202 to client 106. Example cookie or website data 1 IOC is shown in Tables 1B-1G.
[0042] When browser 114 receives web message 202, browser 1 14 passes web message
202 to data processor 204. Data processor 204 stores cookie or website data HOC included in web message 202 in temporary memory storage 206. Temporary memory storage 206 may be a volatile memory storage (described in detail in FIG. 5). Temporary memory storage 206 may, for example, require a power supply to maintain a memory state. Example temporary memory storage 206 may include a random access memory ("RAM"), dynamic random access memory ("DRAM") and static random access memory ("SRAM"). Typically, client 106 stores data temporarily in temporary memory storage 206, such as data that client 106 intends to delete, move to persistent memory storage or that may be deleted when client 106 is turned off. In an embodiment, cookie or website data HOC may be stored in temporary memory storage 206 until client 106 receives instructions to accept, block and/or remove cookie or website data 1 IOC.
[0043] Once data processor 204 stores cookie or website data 1 IOC in temporary memory storage 206, data processor 204 invokes notification generator 208. Notification generator 208 notifies browser 114 that cookie or website data HOC is stored in temporary memory storage 206. In one embodiment, notification generator 208 generates a notification message for browser 114. When browser 1 14 receives the notification message, browser 1 14 may use the notification message to notify the user that cookie or website data 1 IOC is stored in temporary memory storage 206. The notification message may include a message that is displayed on the display screen of client 106 or be in an audio, to name a few examples.
[0044] In one embodiment, when browser 114 notifies a user that browser 114 received cookie or website data HOC, a user provides an indication to accept or block cookie or website data 1 IOC. In another embodiment, a user may also use client 106 to create rules that accept or block subsequent instances of cookie or website data 1 IOC that client 106 receives from web server 104.
[0045] In one embodiment, to make an informed decision to accept or block cookie or website data HOC, a user is provided with cookie or website data information on a display screen. The display screen presents a user with the cookie or website data information in a detailed format. Based on the presented information, a user provides an indication to accept or reject cookie or website data HOC. Example website data information that data processor 204 presents to a user is described in detail in FIG. 3.
[0046] Once a user decides to accept or reject cookie or website data HOC, data processor 204 activates transferring module 210. When client 106 receives an indication from a user to accept cookie or website data HOC, transferring module 210 transfers cookie or website data HOC from temporary memory storage 206 to persistent memory storage 212, as indicated by arrow 220. Once in persistent memory storage 212, cookie or website data HOC may update, delete or append cookie or website data HOB that is persistently stored on client 106.
[0047] When client 106 receives an indication from a user to reject or block cookie or website data HOC, transferring module 210 removes cookie or website data HOC from temporary memory storage 206 or any other storage on client 106 (not shown). In an embodiment, transferring module 210 may remove all cookie or website data 1 IOC that is associated with the origin of data, such as a domain. Additionally, client 106 may receive an indication from a user that causes data processor 204 to block cookie or website data HOC from being stored in temporary memory storage 206 when browser 1 14 subsequently receives other instances of the blocked cookie or website data HOC from web server 104. In another embodiment, a user may use browser 114 to configure one or more rules to block cookie or website data 1 IOC.
[0048] Persistent memory storage 212 stores persistent data, such as cookie or website data HOB. Persistent data may persist in persistent memory storage 212 after client 106 is shut down. Typically, persistent memory storage 212 is a non- volatile storage (described in detail in FIG. 5), such as a hard drive or flash memory.
[0049] In an embodiment, when a user fails to respond to the notification message, website data 1 IOC is processed according to the default settings. Default settings provide data processor 204 with instructions for processing cookie or website data HOC. Default settings may also include rules that a user had previously configured for processing cookie or website data HOC. In an embodiment, those rules may be specific to processing cookie or website data HOC from a particular web server 104, a particular application, or a particular type of cookie or website data 1 IOC.
[0050] For example, transferring module 210 may access default settings included in browser 1 14 and determine whether to transfer cookie or website data HOC from temporary memory storage 206 to persistent memory storage 212. Transferring module 210 may also use user settings to remove cookie or website data HOC from temporary memory storage 206, or any other storage on client 106. Transferring module 210 may also use user settings to block cookie or website data HOC from being stored in temporary memory storage 206 when browser 114 receives cookie or website data HOC from web server 104.
[0051] In an embodiment, browser 114 may be configured to wait for a configurable amount of time prior to determining that a user failed to respond to a notification message. For example, browser 114 may be configured to wait for time "t" for an indication from a user to view information associated with cookie or website data 1 IOC. In an embodiment, time "t" may be an integer that indicates the amount of time in, for example, seconds, after a notification message was issued on client 106. If browser 1 14 receives an indication from a user to view cookie or website data information within time "t", browser 114 displays cookie or website data information on a display screen. Otherwise, browser 1 14 activates transferring module 210 that uses the default settings for processing website data 1 IOC as described above.
[0052] In another embodiment, web message 202 may include instructions, such as
JavaScript instructions (not shown) that access or manipulate website data HOB that is stored in persistent memory storage 212. In this embodiment, data processor 204 invokes notification generator 208 when data processor 204 determines that instructions attempt to access and manipulate website data HOB. The instructions may attempt to access website data 110B upon a receipt of web message 202 or at another time. Once invoked, notification generator 208 generates a notification message for browser 114 that includes
a message on the display screen, as described above. When a determination is made that the website data HOB may be manipulated by the received instructions, data processor 204 processes the instructions that are received in web message 202. As described above, the determination may be based on an indication from a user or may be stored in the user settings. For example, a user may provide an indication to process or block the instructions associated with a particular website or a domain. Alternatively, when a determination is made that website data HOB cannot be accessed by the received instructions, data processor 204 does not process instructions included in web message 202.
[0053] FIG. 3 is a screenshot 300 of an exemplary embodiment of cookie or website data information that is displayed on a client. The cookie or website data information referred to as website data information 302 in FIG. 3 enables a user to decide whether to accept or reject cookie or website data 1 IOC. A person skilled in the art will appreciate that FIG. 3 is exemplary, and the invention is not limited to this embodiment.
[0054] Website data information 302 may include attributes such as the domain that generated cookie or website data 1 IOC (when website data is generated on server 104), the name associated with cookie or website data HOC, and the time cookie or website data 1 IOC was created, to name a few examples. Based on website data information 302, a user is able to determine whether to accept or block website data HOC. When a user accepts cookie or website data 1 IOC, transferring module 210 transfers cookie or website data HOC from temporary memory storage 206 to persistent memory storage 212. Otherwise, transferring module 210 deletes cookie or website data HOC from temporary memory storage 206.
Method
[0055] FIG. 4 is a flowchart of a method 400 for delaying the storage of a cookie or website data in persistent memory storage, according to an embodiment.
[0056] At stage 402, a cookie or website data is received. For example, client 106 sends a request message for webpage 109 to web server 104. In response to the request message, browser 114 executing on client 106 receives a response message that includes cookie or website data 1 IOC. A person skilled in the art will appreciate that the response message may include either cookie, scripts that access, rely on and/or manipulate website data, values for website data, or any of the above.
[0057] At stage 404, a cookie or website data are stored in a temporary memory. For example, browser 1 14 stores cookie or website data HOC received in stage 402 in temporary memory storage 206.
[0058] At stage 406, a notification message is displayed. For example, notification generator 208 issues a notification message to browser 1 14 that notifies a user that cookie or website data HOC are stored in temporary storage 206. The issued notification message is displayed on client 106 using, for example, a notification icon. When activated, the notification icon displays cookie or website data information to a user. As described herein, other types of notification may also occur on client 106.
[0059] At stage 408, a determination is made as to whether a response to a notification was received. For example, browser 1 14 determines whether the notification icon was activated, or a notification response was received from a user. When a response to a notification is received, the flowchart proceeds to stage 410. Otherwise, the flowchart proceeds to stage 416.
[0060] At stage 410, cookie or website data information is displayed. For example, client
106 displays a display screen, such as the one in FIG. 3, with cookie or website data information. The cookie or website data information includes information about cookie or website data HOC received in stage 402. Based on the displayed cookie or website data information, a user determines whether to accept or block cookie or website data HOC.
[0061] At stage 412, a determination to accept or block a cookie or website data is received. For example, browser 1 14 may receive an indication from a user to remove cookie or website data HOC from client 106. When browser 114 receives an indication from a user to accept cookie or website data 1 IOC, the flowchart proceeds to stage 418. When browser 114 receives an indication from a user to block cookie or website data 1 IOC, the flowchart proceeds to stage 420.
[0062] When a notification icon is not activated, the flowchart proceeds to stage 414. At stage 414, default settings for processing a cookie or website data are accessed. For example, browser 114 accesses default settings that include rules for processing cookie or website data 1 IOC. As described herein, the default settings include rules for accepting or blocking cookie or website data 1 IOC.
[0063] At stage 416, a determination is made on whether to accept or block a cookie or website data based on the default setting. When a rule in default settings accessed by browser 1 14 indicate that cookie or website data HOC may be stored in persistent memory storage 212, cookie or website data 1 IOC is deemed accepted and the flowchart proceeds to stage 418. When browser settings indicate that cookie or website data 1 IOC may not be stored in persistent memory storage 212, the flowchart proceeds to stage 420.
[0064] At stage 418, cookies are stored in persistent memory storage. When cookie or website data HOC is deemed accepted in stages 412 and 416, cookie or website data 1 IOC is moved to persistent memory storage 212. In an embodiment, transferring module 210 moves cookie or website data HOC from temporary memory storage 206 to persistent memory storage 212. In persistent memory storage, cookie or website data HOC are combined with cookie or website data HOB, respectively, which are stored in persistent memory storage 212 on client 106.
[0065] At stage 420, cookie or website data HOC are removed from temporary memory storage. When cookie or website data 1 IOC is deemed blocked from client 106 in stages 412 and 416, cookie or website data HOC is removed from client 106. For example, transferring module 210 removes cookie or website data HOC from temporary memory storage 206.
[0066] At stage 422, the removed cookie or website data is blocked. For example, cookie or website data HOC that is subsequently received on client 106 is blocked from being stored in temporary memory storage 206. For example, a setting within browser 114 may be set to subsequently block cookie or website data 1 IOC.
Exemplary Computer System
[0067] FIG. 5 is an example computer system 500 in which embodiments of the present invention, or portions thereof, may be implemented as computer-readable code. For example, the components or modules of system 100, such as browser 1 14, data processor 204, notification generator 208, transferring module 210, etc., may be implemented in one or more computer systems 500 using hardware, software, firmware, tangible computer- readable media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems. Modules and components in FIGS. 1-4 may be embodied in hardware, software, or any combination thereof.
[0068] Client 106 or web server 104 may include one or more computing devices. Client
106 or web server 104 may include one or more processors 502, one or more non- volatile storage mediums 504, one or more memory devices 506, a communication infrastructure 508, a display screen 510 and a communication interface 512.
[0069] Processors 502 may include any conventional or special purpose processor, including, but not limited to, digital signal processor ("DSP"), field programmable gate array ("FPGA"), and application specific integrated circuit ("ASIC").
[0070] GPU 514 is a specialized processor that executes instructions and programs, selected for complex graphics and mathematical operations, in parallel.
[0071] Non-volatile storage 504 may include one or more of a hard disk drive, flash memory, and like devices that may store computer program instructions and data on computer-readable media. One or more of non- volatile storage device 504 may be a removable storage device.
[0072] Memory devices 506 may include one or more volatile memory devices such as, but not limited to, random access memory. Communication infrastructure 508 may include one or more device interconnection buses such as Ethernet, Peripheral Component Interconnect ("PCI"), and the like.
[0073] Typically, computer instructions are executed using one or more processors 502 and can be stored in non- volatile storage medium 504 or memory devices 506.
[0074] Display screen 510 allows results of the computer operations to be displayed to a user or an application developer.
[0075] Communication interface 512 allows software and data to be transferred between computer system 500 and external devices. Communication interface 512 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like. Software and data transferred via communication interface 512 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communication interface 512. These signals may be provided to communication interface 512 via a communications path. The communications path carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link or other communications channels.
[0076] Embodiments also may be directed to computer program products comprising software stored on any computer-readable medium. Such software, when executed in one or more data processing device, causes a data processing device(s) to operate as described herein. Embodiments of the invention employ any computer-readable medium. Examples of computer-readable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory), secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, ZIP disks, tapes, magnetic storage devices, optical storage devices, MEMS, nanotechnological storage device, etc.).
[0077] The embodiments have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
[0078] The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
[0079] The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present invention as contemplated by the inventor(s), and thus, are not intended to limit the present invention and the appended claims in any way.
[0080] The breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims
1. A computer-implemented method, comprising:
storing data that manipulates website data in a temporary memory storage associated with a browser, the data received from a web server as part of a response message for a webpage, wherein the temporary memory storage stores the data before the data accesses the website data stored in a persistent memory storage on a client device; generating a notification message, wherein the notification message indicates that the data is stored in the temporary memory storage;
providing the notification message to the client device;
in response to the notification, receiving an indication for processing the data stored in the temporary memory storage; and
processing the data based on the received indication.
2. The computer-implemented method of claim 1, wherein the data in the response message at least accesses, manipulates or relies on the website data stored in persistent memory storage.
3. The computer-implemented method of claim 1 or 2, wherein the website data is included in at least one of a document object model (DOM), a web database, an indexed database, an application cache or a file system on the client device.
4. The computer-implemented method of any preceding claim, further comprising:
determining when the indication to the notification message was received within a configurable time interval, wherein the configurable amount of time begins to accumulate when the notification message is received;
accessing a default setting for processing the data, when the indication was not received within the configurable time interval; and
processing the data that manipulates the website data according to the default setting.
5. The computer-implemented method of any preceding claim, further comprising:
displaying data information on the client device, the data information including information about the data;
receiving the indication for processmg the data based on the displayed data information.
6. The computer-implemented method of any preceding claim, wherein the processing further comprises:
transferring the data from the temporary memory storage to manipulate the website data in the persistent memory storage.
7. The computer-implemented method of any preceding claim, wherein the processing further comprises:
removing the data from the temporary memory storage.
8. The computer-implemented method of any preceding claim, wherein the processing further comprises:
blocking a subsequent copy of the data from being stored in the temporary memory storage of the client device, when the client device receives a subsequent copy of the data.
9. The computer- implemented method of any preceding claim wherein the storing of data that manipulates website data in a temporary memory storage comprises storing a cookie.
10. A computer program to be run by a processor to perform a method as claimed in any preceding claim
11. A system, comprising a data processor configured to perform a method as claimed in any one of claims 1 to 9
12. A computer-implemented method, comprising:
storing data that manipulates website data in a temporary memory storage associated with a browser, the data received from a web server as part of a response message for a webpage, wherein the temporary memory storage stores the data before the data accesses the website data stored in a persistent memory storage on a client device; generating a notification message, wherein the notification message indicates that the data is stored in the temporary memory storage;
providing the notification message to the client device;
in response to the notification, receiving an indication for processing the data stored in the temporary memory storage; and
processing the data based on the received indication.
13. The computer-implemented method of claim 12, wherein the data in the response message at least accesses, manipulates or relies on the website data stored in persistent memory storage.
14. The computer-implemented method of claim 12, wherein the website data is included in at least one of a document object model (DOM), a web database, an indexed database, an application cache or a file system on the client device.
15. The computer-implemented method of claim 12, further comprising:
determining when the indication to the notification message was received within a configurable time interval, wherein the configurable amount of time begins to accumulate when the notification message is received;
accessing a default setting for processing the data, when the indication was not received within the configurable time interval; and
processing the data that manipulates the website data according to the default setting.
16. Trie computer-implemented method of claim 12, further comprising:
displaying data information on the client device, the data information including information about the data;
receiving the indication for processing the data based on the displayed data information.
17. The computer-implemented method of claim 12, wherein the processing further comprises:
transferring the data from the temporary memory storage to manipulate the website data in the persistent memory storage.
18. The computer-implemented method of claim 12, wherein the processing further comprises:
removing the data from the temporary memory storage.
19. The computer-implemented method of claim 12, wherein the processing further comprises:
blocking a subsequent copy of the data from being stored in the temporary memory storage of the client device, when the client device receives a subsequent copy of the data.
20. A system, comprising:
a data processor configured to:
store data that manipulates website data in a temporary memory storage associated with a browser, the data received from a web server as part of a response message for a webpage, wherein the temporary memory storage stores the data before the data accesses the website data stored in a persistent memory storage on a client device;
generate a notification message, wherein the notification message indicates that the data is stored in the temporary memory storage;
provide the notification message to the client device; in response to the notification, receive an indication for processing the data stored in the temporary memory storage; and
process the data based on the received indication.
21. The system of claim 20, wherein the data in the response message at least accesses, manipulates or relies on the website data stored in persistent memory storage.
22. The system of claim 20, wherein the website data is included in at least one of a document object model (DOM), a web database, an indexed database, an application cache or a file system on the client device.
23. The system of claim 20, wherein the data processor is further configured to:
determine when the indication to the notification message was received within a configurable time interval, wherein the configurable amount of time begins to accumulate when the notification message is received;
access a default setting for processing the data, when the indication is not received within the configurable time interval; and
process the data that manipulates the website data according to the default setting.
24. The system of claim 20, wherein the data processor is further configured to:
display data information on the client device, the data information including information about the data;
receive the indication for processing the data based on the displayed data information.
25. The system of claim 20, further comprising a transferring module configured to transfer the data from the temporary memory storage to manipulate the website data in the persistent memory storage.
26. The system of claim 20, wherein the transferring module is further configured to remove the data from the temporary memory storage.
27. The system of claim 20, wherein the transferring module is further configured to block a subsequent copy of the data from being stored in the temporary memory storage of the client device, when the client device receives a subsequent copy of the data.
28. An article of manufacture including a computer-readable storage medium having instructions stored thereon that, when executed by a computing device, cause the computing device to perform operations for delaying storage of data, the operations comprising:
storing data that manipulates website data in a temporary memory storage associated with a browser, the data received from a web server as part of a response message for a webpage, wherein the temporary memory storage stores the data before the data accesses the website data stored in a persistent memory storage on a client device; generating a notification message, wherein the notification message indicates that the data is stored in the temporary memory storage;
providing the notification message to the client device;
in response to the notification, receiving an indication for processing the data stored in the temporary memory storage; and
processing the data based on the received indication.
29. The article of manufacture of claim 28, wherein the data in the response message at least accesses, manipulates or relies on the website data stored in persistent memory storage.
30. The article of manufacture of claim 28, wherein the website data is included in at least one of a document object model (DOM), a web database, an indexed database, an application cache or a file system on the client device.
31. The article of manufacture of claim 28, wherein the instructions that cause the computing device to delay storage of the data further comprise instructions that perform operations comprising:
determining when the indication to the notification message was received within a configurable time interval, wherein the configurable amount of time begins to accumulate when the notification message is received;
accessing a default setting for processing the data, when the indication was not received within the configurable time interval; and
processing the data that manipulates the website data according to the default setting.
32. The article of manufacture of claim 28, wherein the instructions that cause the computing device to delay storage of the data further comprise instructions that perform operations comprising:
displaying data information on the client device, the data information including information about the data;
receiving the indication for processing the data based on the displayed data information.
33. The article of manufacture of claim 28, wherein the instractions that process the data further include instructions that perform operations comprising:
transferring the data from the temporary memory storage to manipulate the website data in the persistent memory storage.
34. The article of manufacture of claim 28, wherein the instructions that process the data further include instructions that perform operations comprising:
removing the data from the temporary memory storage.
35. The article of manufacture of claim 28, wherein the instructions that process the cookie further include instructions to perform operations comprising:
blocking a subsequent copy of the data from being stored in the temporary memory storage of the client device, when the client device receives a subsequent copy of the data.
36. A computer-implemented method, comprising:
storing a cookie in a temporary memory storage associated with a browser, the cookie received from a web server as part of a response message for a webpage, wherein the temporary memory storage stores the cookie before the cookie is stored in a persistent memory storage on a client device;
generating a notification message, wherein the notification message indicates that the cookie is stored in the temporary memory storage;
providing the notification message to the client device;
in response to the notification, receiving an indication for processing the cookie stored in the temporary memory storage, wherein the indication further comprises:
transferring the cookie from the temporary memory storage to the persistent memory storage; or
removing the cookie from the temporary memory storage; and blocking the cookie and the subsequent copy of the cookie from being stored in the temporary memory storage.
37. The system, comprising:
a data processor configured to:
store a cookie in a temporary memory storage associated with a browser, the cookie received from a web server as part of a response message for a webpage, wherein the temporary memory storage stores the cookie before the cookie is stored in a persistent memory storage on a client device;
generate a notification message, wherein the notification message indicates that the cookie is stored in the temporary memory storage;
providing the notification message to the client device; in response to the notification, receive an indication for processing the cookie stored in the temporary memory storage, wherein the indication further comprises:
transfer the cookie from the temporary memory storage to the persistent memory storage; or
remove the cookie from the temporary memory storage; and block the cookie and the subsequent copy of the cookie from being stored in the temporary memory storage.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/550,215 US9390193B2 (en) | 2012-07-16 | 2012-07-16 | Delay the persistent memory storage of website data to control data that is stored in the browser |
| US13/550,215 | 2012-07-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014014746A1 true WO2014014746A1 (en) | 2014-01-23 |
Family
ID=48917682
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2013/050176 Ceased WO2014014746A1 (en) | 2012-07-16 | 2013-07-12 | Delay the persistent memory storage of website data to control the data that is stored in the browser |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9390193B2 (en) |
| WO (1) | WO2014014746A1 (en) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2562535A (en) * | 2017-05-19 | 2018-11-21 | F Secure Corp | Method for privacy protection |
| US11184444B1 (en) * | 2020-07-27 | 2021-11-23 | International Business Machines Corporation | Network traffic reduction by server-controlled cookie selection |
| US11841916B2 (en) * | 2021-06-08 | 2023-12-12 | Dell Products L.P. | System and method to update a bookmarked document link and avoid a broken link |
| US12132704B1 (en) * | 2021-06-22 | 2024-10-29 | Amazon Technologies Inc. | Web cookie firewall |
| CN113849722A (en) * | 2021-08-27 | 2021-12-28 | 北京神州泰岳软件股份有限公司 | Data processing method and device and electronic equipment |
| CN113987382B (en) * | 2021-10-28 | 2024-12-24 | 建信金融科技有限责任公司 | A browser operation method, browser device, equipment and storage medium |
| US20250373589A1 (en) * | 2024-05-30 | 2025-12-04 | Microsoft Technology Licensing, Llc | Detection of logged-on users based on browser storage data |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001050299A2 (en) * | 1999-12-29 | 2001-07-12 | Pango Systems B.V. | System and method for incremental disclosure of personal information to content providers |
| US20110022571A1 (en) * | 2009-07-24 | 2011-01-27 | Kevin Howard Snyder | Method of managing website components of a browser |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6851060B1 (en) * | 1999-07-15 | 2005-02-01 | International Business Machines Corporation | User control of web browser user data |
| US6928440B2 (en) * | 2001-04-19 | 2005-08-09 | International Business Machines Corporation | Delayed storage of cookies with approval capability |
| US6959420B1 (en) * | 2001-11-30 | 2005-10-25 | Microsoft Corporation | Method and system for protecting internet users' privacy by evaluating web site platform for privacy preferences policy |
| US8166406B1 (en) * | 2001-12-04 | 2012-04-24 | Microsoft Corporation | Internet privacy user interface |
| US7949702B2 (en) * | 2002-01-09 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for synchronizing cookies across multiple client machines |
| US20050216844A1 (en) | 2004-03-03 | 2005-09-29 | Error Brett M | Delayed transmission of website usage data |
| US7877800B1 (en) * | 2005-12-19 | 2011-01-25 | Symantec Corporation | Preventing fraudulent misdirection of affiliate program cookie tracking |
| US8041778B2 (en) | 2007-04-26 | 2011-10-18 | Microsoft Corporation | Extended browser data storage |
| US20110166932A1 (en) * | 2010-01-07 | 2011-07-07 | Qualcomm Incorporated | System and method of providing content based on user interaction |
| US9084093B2 (en) * | 2011-04-04 | 2015-07-14 | Interdigital Patent Holdings, Inc. | Method and apparatus for controlling the application of selected IP traffic offload and local IP access |
-
2012
- 2012-07-16 US US13/550,215 patent/US9390193B2/en active Active
-
2013
- 2013-07-12 WO PCT/US2013/050176 patent/WO2014014746A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001050299A2 (en) * | 1999-12-29 | 2001-07-12 | Pango Systems B.V. | System and method for incremental disclosure of personal information to content providers |
| US20110022571A1 (en) * | 2009-07-24 | 2011-01-27 | Kevin Howard Snyder | Method of managing website components of a browser |
Also Published As
| Publication number | Publication date |
|---|---|
| US9390193B2 (en) | 2016-07-12 |
| US20140019518A1 (en) | 2014-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10015226B2 (en) | Methods for making AJAX web applications bookmarkable and crawlable and devices thereof | |
| US9390193B2 (en) | Delay the persistent memory storage of website data to control data that is stored in the browser | |
| US10102306B2 (en) | Patching base document object model (DOM) with DOM-differentials to generate high fidelity replay of webpage user interactions | |
| US8589484B2 (en) | Method for optimizing a web content proxy server and devices thereof | |
| US8578036B1 (en) | Providing standardized transparency for cookies and other website data using a server side description file | |
| JP6484667B2 (en) | Structured document pagelet caching | |
| US20200366681A1 (en) | Application-assisted login for a web browser | |
| US8935798B1 (en) | Automatically enabling private browsing of a web page, and applications thereof | |
| CN104428765B (en) | reduce redirects | |
| US9348939B2 (en) | Web site sectioning for mobile web browser usability | |
| US8639770B1 (en) | Separation of mutable and immutable data in a memory cache for improvement of data updates | |
| US20160315835A1 (en) | Tracking content sharing across a variety of communications channels | |
| EP3821344B1 (en) | Use of cache for content validation and error remediation | |
| US8856958B1 (en) | Personalized content access prompt | |
| CN103324484B (en) | A kind of method and apparatus for showing view | |
| US9288189B2 (en) | Retrieving both sensitive and non-sensitive content in a secure manner | |
| WO2013074405A1 (en) | System and method for viewer-based image metadata sanitization | |
| CN106919595B (en) | A method, device and electronic device for cookie mapping | |
| WO2015058614A1 (en) | Bookmark storage method and device, and method and device for determining bookmark to be browsed | |
| CN116595047B (en) | Rights management method, rights management device, electronic device and computer-readable storage medium | |
| US20220069978A1 (en) | Method and apparatus for storing evidence collection process video segment | |
| US12596763B2 (en) | Reduced latency content prefetching with local behavioral profiles | |
| US20170331913A1 (en) | Content based content delivery network purging | |
| Marshall et al. | Creating Offline Web Applications Using HTML5 | |
| US9251361B1 (en) | Data transmission to an untrusted entity |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13745492 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13745492 Country of ref document: EP Kind code of ref document: A1 |




