# US 8,543,697 B2 · System and method for communicating state management between a browser user-agent and a server

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,697 B2
- Document ID: US8543697B2
- Status: Granted
- Kind: B2
- Application number: 11/490,503
- Filed: 2006-07-21
- Published: 2007-08-23
- Granted: 2013-09-24
- Earliest claimed: 2005-07-22
- Assignees: Research In Motion Limited
- Applicants: Michael Knowles; David Tapuska; Tatiana Kalougina
- Inventors: Michael Knowles; David Tapuska; Tatiana Kalougina
- Web page: https://patentgrep.com/patent/US8543697B2

## CPC

- H04L 67/289: Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
- G06F 16/9574: {of access to content, e.g. by caching}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 67/14: Session management (for real-time applications in data packet communications networks H04L65/1066)
- H04L 67/142: Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 69/14: Multichannel or multilink protocols
- H04W 76/11: Allocation or use of connection identifiers
- H04W 4/20: Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A method for communicating state information between a server and a mobile device browser, comprising the steps of providing a control channel between the server and mobile device browser, transmitting at least one message from the mobile device browser to the server over the control channel indicative of browsing-related cache data, and regulating subsequent transmission of data from the server to the mobile device browser based on the at least one message.

## Claims

### Claim 1

A method for regulating transmission of data from a server to a mobile device browser, comprising:
providing a control channel between the server and the mobile device browser;
transmitting over said control channel at least one message from the mobile device browser to the server indicative of browsing-related state data, said browsing-related state data including a URL for a requested web page and a data attribute indicative of cache contents for portions of said web page, said at least one message conforming to an out-of-band protocol for indicating said browsing-related state data to the server as a hash value; and
regulating subsequent transmission of data from the server to the mobile device browser based on said at least one message,
wherein said protocol includes:
a first transitional state message with payload including said hash value and a connection identifier, for notifying the server of current state information for a current session between the mobile device browser and the server; and
a second transitional state message for notifying the server that the mobile device browser has ceased sending messages using said connection identifier, and
data transmission according to said protocol comprises, in sequence:
a header representing one or more of said first transitional state message and said second transitional state message;
a protocol identifier and a Content-Length header;
a sequence of control characters; and
an XML-encoded document containing said hash value, a connection identifier and state information.

### Claim 2 (depends on 1)

The method of claim 1, wherein said protocol further includes a third transitional state message for notifying the server of changes in state subsequent to said current session between the mobile device browser and the server.

### Claim 3 (depends on 1)

The method of claim 1, wherein the server de-allocates stored memory for the session in response to being notified that the mobile device browser has ceased sending messages using said connection identifier.

### Claim 4 (depends on 1)

The method of claim 1, wherein each said subsequent transmission of data from the server contains a message authentication code (MAC) for authentication by a mobile device associated with the mobile device browser prior to caching said data within the mobile device.

### Claim 5

A method for synchronizing cache contents of a mobile browser with a proxy server, comprising:
initiating a session between the mobile browser and the proxy server conforming to an out-of-band protocol for transmitting browser state information regarding said cache contents to the proxy server as a hash value, said browser state information including a URL for a requested web page and a data attribute indicative of cache contents for portions of said web page;
maintaining a record of data sent from the proxy server to the mobile browser for storage in said cache;
maintaining a record of said state information regarding said cache contents transmitted from the mobile browser to said proxy server; and
transmitting data requests from the mobile browser to the proxy server, in response to which the proxy server accesses each said record of data and returns only data that do not already form part of said cache contents,
wherein said protocol includes:
a first transitional state message with payload including said hash value and a connection identifier, for notifying the server of current state information for a current session between the mobile device browser and the server; and
a second transitional state message for notifying the server that the mobile device browser has ceased sending messages using said connection identifier, and
data transmission according to said protocol comprises, in sequence:
a header representing said transitional state message;
a protocol identifier and a Content-Length header;
a sequence of control characters; and
an XML-encoded document containing said hash value, a connection identifier and state information.

### Claim 6 (depends on 5)

The method of claim 5, wherein said protocol includes a third transitional state message for notifying the proxy server of changes in state subsequent to said current session between the mobile browser and the proxy server.

### Claim 7 (depends on 5)

The method of claim 5, wherein the proxy server de-allocates stored memory for the session in response to being notified that the mobile browser has ceased sending messages using said connection identifier.

### Claim 8 (depends on 5)

The method of claim 5, wherein each said subsequent transmission of data from the proxy server contains an encryption key for authentication by the mobile browser prior to caching data.

### Claim 9

A method of controlling delivery of content from an origin server to a mobile device browser associated with a mobile device via a proxy server, comprising:
transmitting state information from the mobile device browser to the proxy server indicative of cached content and associated expiry headers, said state information including a URL for requested content and a data attribute indicative of cache contents for portions of said requested content, said state information conforming to an out-of-band protocol for indicating said cache contents to the proxy server as a hash value;
retrieving data from said origin server to the proxy server responsive to a request from the mobile device browser; and
forwarding said data from the proxy server to the mobile device browser only in the event that said state information indicates that the mobile device has not already cached said data and otherwise indicating to the mobile device browser that said data is already cached and transmitting new expiry headers to the mobile device browser whereupon the browser performs a cache update with said new expiry headers,
wherein said protocol includes:
a first transitional state message with payload including said hash value and a connection identifier, for notifying the proxy server of current state information for a current session between the mobile device browser and the proxy server; and
a second transitional state message for notifying the proxy server that the mobile device browser has ceased sending messages using said connection identifier, and
data transmission according to said protocol comprises, in sequence:
a header representing one or more of said first transitional state message and said second transitional state message;
a protocol identifier and a Content-Length header;
a sequence of control characters; and
an XML-encoded document containing said hash value, a connection identifier and state information.

### Claim 10 (depends on 9)

The method of claim 9, wherein forwarding of said data from said proxy server to the mobile device browser further includes computing said hash value of said state information, computing a hash value of said data, comparing said hash values, forwarding said data from the proxy server to the mobile device browser in the event that said hash values are different, and sending a response to the mobile device browser containing a reference to data already cached in the mobile device browser.

### Claim 11

A communication system, comprising:
a mobile device browser for transmitting over a control channel at least one message including a hash value indicative of browsing-related state data including a URL for a requested web page and a data attribute indicative of cache contents for portions of said web page, wherein said at least one message conforms to an out-of-band protocol; and
a server for receiving said at least one message and in response regulating transmission of data to the mobile device browser based on said hash value,
wherein said protocol includes:
a first transitional state message with payload including said hash value and a connection identifier, for notifying the server of current state information for a current session between the mobile device browser and the server; and
a second transitional state message for notifying the server that the mobile device browser has ceased sending messages using said connection identifier, and
data transmission according to said protocol comprises, in sequence:
a header representing one or more of said first transitional state message and said second transitional state message;
a protocol identifier and a Content-Length header;
a sequence of control characters; and
an XML-encoded document containing said hash value, a connection identifier and state information.

### Claim 12

A communication system, comprising:
an origin server storing data;
a mobile device browser for transmitting state information including a URL for a requested web page and a data attribute indicative of cached content and associated expiry headers, said state information conforming to an out-of-band protocol for indicating said cache content as a hash value; and
a proxy server for receiving said state information, retrieving said data from said origin server to said proxy server, and forwarding said data to said mobile device browser only in the event that said state information indicates that a mobile device associated with said mobile device browser has not already cached said data and otherwise indicating to said mobile device browser that said data is already cached and transmitting new expiry headers to said mobile device browser whereupon the browser performs a cache update with said new expiry headers
wherein said protocol includes:
a first transitional state message with payload including said hash value and a connection identifier, for notifying the proxy server of current state information for a current session between the mobile device browser and the proxy server; and
a second transitional state message for notifying the proxy server that the mobile device browser has ceased sending messages using said connection identifier, and
data transmission according to said protocol comprises, in sequence:
a header representing one or more of said first transitional state message and said second transitional state message;
a protocol identifier and a Content-Length header;
a sequence of control characters; and
an XML-encoded document containing said hash value, a connection identifier and state information.
