IP Library Granted Patent US 9,871,879
Granted Patent B2
US 9,871,879 · App. 15/400,082 · Granted Jan 16, 2018

Methods and apparatuses for providing a desired portion of a data object document

Inventor: David Alexander Kitchen (London, GB)
Assignee: CLOUDFLARE, INC.
H04L67/2828H04L67/06H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,871,879
App. No.
15/400,082
Granted
Jan 16, 2018
Kind
B2
Abstract

A method for providing a desired portion of a data object document is disclosed. The method comprises receiving, from a client device, an Application Program Interface (API) request for a data object document, where the API request includes a parameter identifying the desired portion of the data object document, and the desired portion is less than all of the data object document. The method continues with transmitting the API request for the data object document to an origin server, and receiving an API response from the origin server that includes the data object document including more than the desired portion of the data object document. The method further includes automatically selecting, from the received data object document, the desired portion of the data object document based on the parameter, and transmitting, to the client device, the desired portion instead of all of the data object document.

Claims (41)

1. A method in a proxy server for providing a desired portion of a data object document, the method comprising:

receiving, from a client device, an Application Program Interface (API) request for a data object document, wherein the API request includes a parameter identifying the desired portion of the data object document, and the desired portion is less than all of the data object document;

transmitting the API request for the data object document without the parameter identifying the desired portion of the data object document to an origin server that hosts the entire data object document;

receiving an API response from the origin server that includes the data object document including more than the desired portion of the data object document;

automatically selecting, from the received data object document, the desired portion of the data object document based on the parameter; and

transmitting, to the client device, the desired portion of the data object document instead of all of the data object document.

2. The method of claim 1 , wherein the received data object document included in the API response includes a plurality of attribute-value pairs in a human readable text format.

3. The method of claim 2 , wherein the human readable text format is a Javascript Object Notation (JSON) format.

4. The method of claim 3 , wherein the receiving the parameter includes receiving a JSONPath expression defining one or more selection criteria for identifying the desired portion of the data object document.

5. The method of claim 4 , wherein automatically selecting includes:

parsing the plurality of attribute-value pairs; and

extracting, as the desired portion of the data object document, a subset of attribute-value pairs that satisfy the one or more selection criteria.

6. The method of claim 1 , wherein the API request is received at the proxy server as a result of a DNS (Domain Name System) request for a domain resolving to the proxy server instead of the origin server.

7. A proxy server to provide a desired portion of data object documents, the proxy server comprising:

a non-transitory computer readable medium to store instructions; and

a processor coupled with the non-transitory computer readable medium to process the stored instructions to:

receive, from a client device, an application program interface (API) request for a data object document, wherein the API request includes a parameter identifying the desired portion of the data object document, and the desired portion is less than all of the data object document,

transmit the API request for the data object document without the parameter identifying the desired portion of the data object document to an origin server that hosts the entire data object document,

receive an API response from the origin server that includes the data object document including more than the desired portion of the data object document,

automatically select, from the received data object document, the desired portion of the data object document based on the parameter, and

transmit, to the client device, the desired portion of the data object document instead of all of the data object document.

8. The proxy server of claim 7 , wherein the received data object document included in the API response includes a plurality of attribute-value pairs in a human readable text format.

9. The proxy server of claim 8 , wherein the human readable text format is a Javascript Object Notation (JSON) format.

10. The proxy server of claim 9 , wherein to receive the parameter includes to receive a JSONPath expression defining one or more selection criteria for identifying the desired portion of the data object document.

11. The proxy server of claim 10 , wherein to automatically select includes:

to parse the plurality of attribute-value pairs; and

to extract, as the desired portion of the data object document, a subset of attribute-value pairs that satisfy the one or more selection criteria.

12. The proxy server of claim 7 , wherein the API request is received at the proxy server as a result of a DNS (Domain Name System) request for a domain resolving to the proxy server instead of the origin server.

13. A non-transitory computer readable storage medium that provide instructions, which when executed by a processor of a proxy server, cause said processor to perform operations comprising:

receiving, from a client device, an application program interface (API) request for a data object document, wherein the API request includes a parameter identifying a desired portion of the data object document, and the desired portion is less than all of the data object document;

transmitting the API request for the data object document without the parameter identifying the desired portion of the data object document to an origin server that hosts the entire data object document;

receiving an API response from the origin server that includes the data object document including more than the desired portion of the data object document;

automatically selecting, from the received data object document, the desired portion of the data object document based on the parameter; and

transmitting, to the client device, the desired portion of the data object document instead of all of the data object document.

14. The non-transitory computer readable storage medium of claim 13 , wherein the received data object document included in the API response includes a plurality of attribute-value pairs in a human readable text format.

15. The non-transitory computer readable storage medium of claim 14 , wherein the human readable text format is a JavaScript Object Notation (JSON) format.

16. The non-transitory computer readable storage medium of claim 15 , wherein the receiving the parameter includes receiving a JSONPath expression defining one or more selection criteria for identifying the desired portion of the data object document.

17. The non-transitory computer readable storage medium of claim 16 , wherein the automatically selecting includes:

parsing the plurality of attribute-value pairs; and

extracting, as the desired portion of the data object document, a subset of attribute-value pairs that satisfy the one or more selection criteria.

18. The non-transitory computer readable storage medium of claim 13 , wherein the API request is received at the proxy server as a result of a DNS (Domain Name System) request for a domain resolving to the proxy server instead of the origin server.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2017
From: KITCHEN, DAVID ALEXANDER
To: CLOUDFLARE, INC.
Reel/Frame 041292/0703 →
Continuity (2)
Continuation 14859116 · Sep 18, 2015
Related Publication 20170118299A1 · Apr 27, 2017