# US 8,572,160 B2 · Systems and methods for script injection

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

- Number: US 8,572,160 B2
- Document ID: US8572160B2
- Status: Granted
- Kind: B2
- Application number: 11/684,936
- Filed: 2007-03-12
- Published: 2008-09-18
- Granted: 2013-10-29
- Earliest claimed: 2007-03-12
- Assignees: Citrix Systems, Inc.
- Applicants: Timothy Mackey
- Inventors: Timothy Mackey
- Web page: https://patentgrep.com/patent/US8572160B2

## CPC

- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L 67/00: Network arrangements or protocols for supporting network services or applications (user-to-user messaging H04L51/00; network arrangements, protocols or services for supporting real-time applications in data packet communications networks H04L65/00)
- H04L 41/5083: {wherein the managed service relates to web hosting}
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for script injection are shown and described. The method can include intercepting, by a network appliance, a request for a web page from a computing device, transmitting, by the network appliance, the request for a web page to a web server, and intercepting, by the network appliance, a response from the web server, the response including at least a portion of the requested web page. The method can also include injecting, by the network appliance, a script having instructions that when executed by the computing device registers to be notified of the occurrence of a web page event thereby creating a modified response and transmitting the modified response to the computing device that requested the web page.

## Claims

### Claim 1

A method of measuring parameters associated with loading a web page, the method comprising:
intercepting, by a network appliance, a request from a computing device for a web page in a first network domain;
transmitting, by the network appliance, the request for the web page to a web server;
intercepting, by the network appliance, a response transmitted from the web server in the first network domain, the transmitted response including at least a portion of the requested web page and not including a first script having instructions that when executed by the computing device registers to be notified of an occurrence of a web page event;
inspecting, by the network appliance, contents of the response transmitted from the web server:
injecting into the response, by the network appliance and responsive to inspecting the contents of the response transmitted from the web server and a determination from the inspection that an injection is required based on the contents of the response, the first script thereby creating a modified response including the first script, the first script having instructions that when executed by the computing device:
i) registers to be notified of the occurrence of the web page event, and
ii) reports the occurrence of the web page event, responsive to notification of the occurrence, to a performance monitoring server in a second network domain, different than the first network domain, such that the client communicates directly with the performance monitoring server in the second network domain without interference by the network appliance;
accelerating, by the network appliance, the modified response to be received by the computing device; and
transmitting, from the network appliance, the modified response to the computing device that requested the web page.

### Claim 2 (depends on 1)

The method of claim 1, wherein the accelerating comprises compressing the modified response to the computing device.

### Claim 3 (depends on 1)

The method of claim 1, wherein the accelerating comprises, by the network appliance, transmission control protocol pooling.

### Claim 4 (depends on 1)

The method of claim 1, wherein the accelerating comprises, by the network appliance, transmission control protocol multiplexing.

### Claim 5 (depends on 1)

The method of claim 1, wherein the accelerating comprises, by the network appliance, transmission control protocol buffering.

### Claim 6 (depends on 1)

The method of claim 1, wherein the accelerating comprises caching, by the network appliances, at least a portion of content of the requested web page.

### Claim 7

A non-transitory computer readable storage medium having instructions thereon that, when executed, measure parameters associated with loading a web page, the instructions comprising:
instructions to intercept, by a network appliance, a request from a computing device for a web page in a first network domain;
instructions to transmit, by the network appliance, the request for the web page to a web server;
instructions to intercept, by the network appliance, a response transmitted from the web server in the first network domain, the transmitted response including at least a portion of the requested web page and not including a first script having instructions that when executed by the computing device registers to be notified of an occurrence of a web page event;
instructions to inspect, by the network appliance, contents of the response transmitted from the web server;
instructions to inject into the response, by the network appliance and responsive to inspection of the contents of the response transmitted from the web server and a determination from the inspection that an injection is required based on the contents of the response, the first script thereby creating a modified response including the first script, the first script having instructions that when executed by the computing device:
i) registers to be notified of the occurrence of the web page event, and
ii) reports the occurrence of the web page event, responsive to notification of the occurrence, to a performance monitoring server in a second network domain, different than the first network domain, such that the client communicates directly with the performance monitoring server in the second network domain without interference by the network appliance;
instructions to accelerate, by the network appliance, the modified response to be received by the computing device; and
instructions to transmit, from the network appliance, the modified response to the computing device that requested the web page.

### Claim 8 (depends on 7)

The computer readable medium of claim 7 wherein the instructions to accelerate comprise instructions to compress the modified response to the computing device.

### Claim 9 (depends on 7)

The computer readable medium of claim 7 wherein the instructions to accelerate comprise instructions to apply, by the network appliance, transmission control protocol pooling.

### Claim 10 (depends on 7)

The computer readable medium of claim 7 wherein the instructions to accelerate comprise instructions to apply, by the network appliance, transmission control protocol multiplexing.

### Claim 11 (depends on 7)

The computer readable medium of claim 7 wherein the instructions to accelerate comprise instructions to apply, by the network appliance, transmission control protocol buffering.

### Claim 12 (depends on 7)

The computer readable medium of claim 7 wherein the instructions to accelerate comprises instructions to cache, by the network appliances, at least a portion of content of the requested web page.

### Claim 13

A system for measuring parameters associated with loading a web page, the system comprising:
means for intercepting, by a network appliance, a request from a computing device for a web page in a first network domain;
means for transmitting, by the network appliance, the request for the web page to a web server;
means for intercepting, by the network appliance, a response transmitted from the web server in the first network domain, the transmitted response including at least a portion of the requested web page and not including a first script having instructions that when executed by the computing device registers to be notified of an occurrence of a web page event;
means for injecting into the response, by the network appliance responsive to an inspection of the response transmitted from the web server and a determination from the inspection that an injection is required based on contents of the response, the first script thereby creating a modified response including the first script, the first script having instructions that when executed by the computing device:
i) registers to be notified of the occurrence of the web page event; and
ii) reports the occurrence of the web page event, responsive to notification of the occurrence, to a performance monitoring server in a second network domain, different than the first network domain, such that the client communicates directly with the performance monitoring server in the second network domain without interference by the network appliance;
means for accelerating, by the network appliance, the modified response to be received by the computing device; and
means for transmitting, from the network appliance, the accelerated and modified response to the computing device that requested the web page.

### Claim 14 (depends on 13)

The system of claim 13 wherein the means for accelerating comprise means for compressing the modified response to the computing device.

### Claim 15 (depends on 13)

The system of claim 13 wherein the means for accelerating comprise means for applying, by the network appliance, transmission control protocol pooling.

### Claim 16 (depends on 13)

The system of claim 13 wherein the means for accelerating comprise means for applying, by the network appliance, transmission control protocol multiplexing.

### Claim 17 (depends on 13)

The system of claim 13 wherein the means for accelerating comprise means for applying, by the network appliance, transmission control protocol buffering.

### Claim 18 (depends on 13)

The system of claim 13 wherein the means for accelerating comprise means for caching, by the network appliances, at least a portion of content of the requested web page.

### Claim 19 (depends on 1)

The method of claim 1, wherein intercepting the transmitted response comprises intercepting the response including at least a portion of the requested web page and a second script and not including the first script.

### Claim 20 (depends on 1)

The method of claim 1, wherein injecting the first script into the response is performed by the network appliance, subsequent to intercepting the response, transparently to the web server.
