IP Library Granted Patent US 11,025,724
Granted Patent B2
US 11,025,724 · App. 15/658,326 · Granted Jun 1, 2021

Transport of control data in proxy-based network communications

Inventors: Joshua Ryan Lauer (San Francisco, CA); Gal Maor (Tel Aviv, IL); Eran Izhak Hirsch (Herzliya, IL)
Assignee: Facebook, Inc.
H04L67/125H04L67/02H04L67/2819H04L67/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 11,025,724
App. No.
15/658,326
Granted
Jun 1, 2021
Kind
B2
Abstract

The present disclosure relates to techniques for controlling a client device. The techniques may include receiving, from a client device, a request for a web resource; generating control data associated with one or more functionalities of the client device; and transmitting a response to the client device including the web resource and the control data to control the one or more functionalities of the client device.

Claims (90)

1. A computer-implemented control method, comprising:

receiving, from a client device, a request for a web resource;

generating control data that identify a first application of a plurality of applications of the client device and a first element of a plurality of elements of the first application;

generating a response including the control data, the control data being included in one or more HTTP headers of the response; and

transmitting the response to the client device to enable the client device to, based on the control data:

select, from the plurality of applications, the first application, and

configure the first element of the first application.

2. The method of claim 1 , wherein:

the web resource is a first web resource;

the control data is first control data;

the request is a first request;

the response is a first response;

the method further comprises:

receiving, from the client device, a second request for a second web resource;

generating a third request based on the second request;

transmitting the third request to a web server for the second web resource;

generating second control data that identify a second application of the client device and a second element of the second application;

receiving a second response including the second web resource from the web server;

generating a third response including the second control data and the second web resource; and

transmitting the third response to the client device to configure the second element based on the second control data and to provide access to the second web resource via the second application;

the method is performed by a server proxy;

the client device includes a local proxy; and

the second request is generated by the local proxy based on a web access request received by the second application.

3. The method of claim 2 , wherein:

the first, second, and third requests are HTTP requests;

the first, second, and third responses are HTTP responses; and

the second control data are included in one or more HTTP headers of the third response.

4. The method of claim 1 , wherein the control data include information comprising at least one of a configuration for displaying a message on the first application, a configuration for displaying an opaque layer over a web page, a configuration for performing a search with the first application, or an user interface configuration of the first application.

5. The method of claim 2 , wherein the first control data and second control data also configure one or more functionalities associated with the local proxy.

6. The method of claim 5 , wherein the first request is received from the local proxy through a first TCP connection established between the local proxy and the server proxy; and

wherein the second control data controls the local proxy to establish a second TCP connection with the web server, and to transmit the third request to the web server through the second TCP connection for the second web resource.

7. The method of claim 6 , wherein the second control data control the second application to provide an activable interface element; and

wherein the second control data control the local proxy to establish the second TCP connection and to transmit the third request based on detecting the activable interface element being activated.

8. The method of claim 1 , wherein the control data is generated based on the request.

9. The method of claim 1 , wherein the control data is encrypted with a signature.

10. The method of claim 1 , wherein the control data further identify a configuration of the first application.

11. The method of claim 1 , wherein the control data is generated based on an external event different from reception of the request.

12. The method of claim 1 , wherein the control data includes an identifier of the first element of the first application; and

wherein the identifier indicates that a configuration is directed to the first element.

13. The method of claim 5 , wherein the control data controls the local proxy not to transmit a fourth request to the web server for the first web resource.

14. The method of claim 1 , wherein the control data is generated based on a number of requests received from the client device for the web resource exceeding a threshold.

15. The method of claim 1 , wherein the control data includes an identifier of the first application, the identifier being part of a plurality of identifiers that identify a plurality of applications of the client device.

16. The method of claim 1 , wherein the control data controls a local proxy of the client device not to transmit a subsequent request for the web resource.

17. The method of claim 1 , wherein the response includes the web resource as part of a HTTP payload and enables the first element of the first application to provide access to the web resource.

18. The method of claim 1 , wherein the control data controls the first application to display an indication that access to the web resource is denied.

19. The method of claim 1 , wherein the first element provides a web-browsing function; and

wherein a second element of the plurality of elements of the first application provides a search function.

20. A system comprising

one or more processors; and

a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:

receiving, from a client device, a request for a web resource;

generating control data that identify a first application of a plurality of applications of the client device and a first element of a plurality of elements of the first application;

generating a response including the control data, the control data being included in one or more HTTP headers of the response; and

transmitting the response to the client device to enable the client device to, based on the control data:

select, from the plurality of applications, the first application, and

configure the first element of the first application.

21. The system of claim 20 , wherein:

the web resource is a first web resource;

the control data is first control data;

the request is a first request;

the response is a first response;

the operations further comprise:

receiving, from the client device, a second request for a second web resource;

generating a third request based on the second request;

transmitting the third request to a web server for the second web resource;

generating second control data that identify a second application of the client device and a second element of the second application;

receiving a second response including the second web resource from the web server;

generating a third response including the second control data and the second web resource; and

transmitting the third response to the client device to configure the second element based on the second control data and to provide access to the second web resource via the second application;

the system is part of a server proxy;

the client device includes a local proxy; and

the second request is generated by the local proxy based on a web access request received by the second application.

22. The system of claim 21 , wherein:

the first, second, and third requests are HTTP requests;

the first, second, and third responses are HTTP responses; and

the second control data are included in one or more HTTP headers of the third response.

23. The system of claim 21 , wherein the first control data and second control data include information comprising at least one of a configuration for displaying a message on the first application, a configuration for displaying an opaque layer over a web page, a configuration for performing a search with the first application, or an user interface configuration of the first application.

24. The system of claim 21 , wherein the first control data and second control data also configure one or more functionalities associated with the local proxy.

25. The system of claim 24 , wherein the first request is received from the local proxy through a first TCP connection established between the local proxy and the server proxy; and

wherein the second control data control the local proxy to establish a second TCP connection with the web server, and to transmit the third request to the web server through the second TCP connection for the second web resource.

26. The system of claim 25 , wherein the second control data control the second application to provide an activable interface element; and

wherein the second control data control the local proxy to establish the second TCP connection and to transmit the third request based on detecting the activable interface element being activated.

27. The system of claim 20 , wherein the control data is generated based on the request.

28. A non-transitory computer-readable storage medium storing a plurality of instructions executable by one or more processors, the plurality of instructions, when executed by the one or more processors, cause the one or more processors to:

receive, from a client device, a request for a web resource;

generate control data that identify a first application of a plurality of applications of the client device and a first element of a plurality of elements of the first application;

generate a response including the control data, the control data being included in one or more HTTP headers of the response; and

transmit the response to the client device to enable the client device to, based on the control data:

select, from the plurality of applications, the first application, and

configure, based on the control data, the first element of the first application.

Assignments (2)
CHANGE OF NAME Recorded Nov 17, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058172/0660 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2017
From: LAUER, JOSHUA RYAN; MAOR, GAL; HIRSCH, ERAN IZHAK
To: FACEBOOK, INC.
Reel/Frame 043980/0908 →
Continuity (1)
Related Publication 20190028548A1 · Jan 24, 2019