# US 10,872,128 B2 · Custom responses for resource unavailable errors

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

- Number: US 10,872,128 B2
- Document ID: US10872128B2
- Status: Granted
- Kind: B2
- Application number: 16/659,296
- Filed: 2019-10-21
- Published: 2020-05-21
- Granted: 2020-12-22
- Earliest claimed: 2010-04-01
- Assignees: Cloudflare, Inc.
- Applicants: Cloudflare, Inc.
- Inventors: Matthew Browning Prince; Lee Hahn Holloway; Michelle Marie Zatlyn
- Web page: https://patentgrep.com/patent/US10872128B2

## CPC

- H04L 63/0281: {Proxies}
- G06F 15/16: Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs {(coordinating program control therefor G06F9/52; in regulating and control system G05B)}
- G06F 16/95: Retrieval from the web
- G06F 16/958: Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F 21/00: Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F 21/552: {involving long-term monitoring or reporting}
- G06F 40/14: Tree-structured documents (parsing G06F40/205; validation G06F40/226)
- G06F 40/143: Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
- G06Q 10/107: Computer-aided management of electronic mailing [e-mailing]
- G06Q 30/0241: Advertisements
- G06Q 30/0251: Targeted advertisements
- G06Q 30/0277: {Online advertisement}
- H04L 47/745: {Reaction in network}
- H04L 51/42: Mailbox-related aspects, e.g. synchronisation of mailboxes
- H04L 61/4511: using domain name system [DNS]
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 63/0236: {Filtering by address, protocol, port number or service, e.g. IP-address or URL}
- H04L 63/0245: {Filtering by information in the payload}
- H04L 63/0254: {Stateful filtering}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 63/0861: {using biometrical features, e.g. fingerprint, retina-scan (cryptographic mechanisms or cryptographic arrangements for entity authentication using biological data H04L9/3231)}
- H04L 63/102: {Entity profiles}
- H04L 63/126: {the source of the received data}
- H04L 63/1416: {Event detection, e.g. attack signature detection}
- H04L 63/1433: {Vulnerability analysis}
- H04L 63/1441: {Countermeasures against malicious traffic (countermeasures against attacks on cryptographic mechanisms H04L9/002)}
- H04L 63/1458: {Denial of Service}
- H04L 63/1466: {Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/146: Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- H04L 61/59: using proxies for addressing
- 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)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A proxy server receives from a client device a request for a network resource hosted at an origins server for a domain. The request is received at the proxy server as a result of a DNS request for the domain resolving to the proxy server. The origin server is one of multiple origin servers that belong to different domains and resolve to the proxy server and are owned by different entities. The proxy server requests the network resource from the origin server. The proxy server receives a response from the origin server that indicates that the network resource is unavailable. The proxy server transmits a custom error page to the client device that indicates that the requested resource is unavailable.

## Claims

### Claim 1

A method in a proxy server for responding to resource unavailable errors, comprising:
receiving, from a client device, a request for a network resource hosted at an origin server for a domain;
requesting the network resource from the origin server;
receiving, at the proxy server, a response from the origin server that includes a resource unavailable error that indicates that the network resource is unavailable to the origin server; and
responsive to the proxy server receiving the response from the origin server that includes the resource unavailable error, the proxy server performing the following:
creating a custom error page that is based on a set of one or more other pages on a same website as the requested network resource, wherein the custom error page indicates that the requested network resource is unavailable, and wherein the custom error page is different than the received response from the origin server, and
transmitting the custom error page to the client device that indicates that the requested network resource is unavailable.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining that the requested network resource has moved to a different location; and
including in the custom error page a link to the different location for the requested network resource.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining that the requested network resource has moved to a different location includes matching a hash of the requested network resource with one of a plurality of hashes of other network resources hosted by the origin server.

### Claim 4 (depends on 1)

The method of claim 1, wherein the custom error page is further customized based on a country of a visitor belonging to the request or a language of the visitor.

### Claim 5 (depends on 1)

The method of claim 1, wherein the request includes a set of one or more terms, and wherein the custom error page is further customized based on the set of terms.

### Claim 6 (depends on 1)

The method of claim 1, wherein the custom error page includes a set of one or more links to other network resources available on the domain.

### Claim 7 (depends on 1)

The method of claim 1, wherein the custom error page includes a set of one or more links to other network resources available on a set of one or more domains other than the domain that hosts the requested network resource.

### Claim 8

A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor of a proxy server, cause said processor to perform operations comprising:
receiving, from a client device, a request for a network resource hosted at an origin server for a domain;
requesting the network resource from the origin server;
receiving, at the proxy server, a response from the origin server that includes a resource unavailable error that indicates that the network resource is unavailable to the origin server; and
responsive to the proxy server receiving the response from the origin server that includes the resource unavailable error, the proxy server performing the following:
creating a custom error page that is based on a set of one or more other pages on a same website as the requested network resource, wherein the custom error page indicates that the requested network resource is unavailable, and wherein the custom error page is different than the received response from the origin server, and
transmitting the custom error page to the client device that indicates that the requested network resource is unavailable.

### Claim 9 (depends on 8)

The non-transitory machine-readable storage medium of claim 8, wherein the operations further comprise:
determining that the requested network resource has moved to a different location; and
including in the custom error page a link to the different location for the requested network resource.

### Claim 10 (depends on 9)

The non-transitory machine-readable storage medium of claim 9, wherein determining that the requested network resource has moved to a different location includes matching a hash of the requested network resource with one of a plurality of hashes of other network resources hosted by the origin server.

### Claim 11 (depends on 8)

The non-transitory machine-readable storage medium of claim 8, wherein the custom error page is further customized based on a country of a visitor belonging to the request or a language of the visitor.

### Claim 12 (depends on 8)

The non-transitory machine-readable storage medium of claim 8, wherein the request includes a set of one or more terms, and wherein the custom error page is further customized based on the set of terms.

### Claim 13 (depends on 8)

The non-transitory machine-readable storage medium of claim 8, wherein the custom error page includes a set of one or more links to other network resources available on the domain.

### Claim 14 (depends on 8)

The non-transitory machine-readable storage medium of claim 8, wherein the custom error page includes a set of one or more links to other network resources available on a set of one or more domains other than the domain that hosts the requested network resource.

### Claim 15

A proxy server, comprising:
a set of one or more processors; and
a non-transitory machine-readable storage medium that stores instructions, that when executed by the set of processors, cause the set of processors to perform operations comprising:
receive, from a client device, a request for a network resource hosted at an origin server for a domain,
request the network resource from the origin server,
receive at the proxy server a response from the origin server that includes a resource unavailable error that indicates that the requested network resource is unavailable to the origin server, and
responsive to receipt at the proxy server of the response from the origin server that includes the resource unavailable error, the set of processors of the proxy server to perform the following:
create a custom error page that is based on a set of one or more other pages on a same website as the requested network resource, wherein the custom error page is to indicate that the requested network resource is unavailable, and wherein the custom error page is to be different than the received response from the origin server, and
transmit the custom error page to the client device that indicates that the requested network resource is unavailable.

### Claim 16 (depends on 15)

The proxy server of claim 15, wherein the operations further comprise:
determine that the requested network resource has moved to a different location; and
include in the custom error page a link to the different location for the requested network resource.

### Claim 17 (depends on 16)

The proxy server of claim 16, wherein the determination that the requested network resource has moved to a different location includes a match of a hash of the requested network resource with one of a plurality of hashes of other network resources hosted by the origin server.

### Claim 18 (depends on 15)

The proxy server of claim 15, wherein the custom error page is further to be customized based on a country of a visitor belonging to the request or a language of the visitor.

### Claim 19 (depends on 15)

The proxy server of claim 15, wherein the request includes a set of one or more terms, and wherein the custom error page is further to be customized based on the set of terms.

### Claim 20 (depends on 15)

The proxy server of claim 15, wherein the custom error page is to include a set of one or more links to other network resources available on the domain.

### Claim 21 (depends on 15)

The proxy server of claim 15, wherein the custom error page is to include a set of one or more links to other network resources available on a set of one or more domains other than the domain that hosts the requested network resource.
