IP Library Granted Patent US 10,749,926
Granted Patent B2
US 10,749,926 · App. 14/260,024 · Granted Aug 18, 2020

Proxy for modifying HTTP messages to comply with browser

Inventor: Desmond Whitt (Pleasanton, CA)
Assignee: RIMINI STREET, INC.
H04L67/02H04L67/025H04L67/10H04L67/2823
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 10,749,926
App. No.
14/260,024
Granted
Aug 18, 2020
Kind
B2
Abstract

A proxy server includes various components to modify HTTP communications between a client and a server. Generally, an HTTP request or response is received. The request or response is modified in-stream by a proxy-process module that is running within a web-server-process space.

Claims (43)

1. A non-transitory computer-readable media storing computer-usable instructions that, when executed by a computing device, perform operations for modifying an HTTP communication comprising:

receiving from a client an initial HTTP request comprising a user-agent identifier for at least one user-agent, wherein the user-agent is at least one of a browser or client device;

executing a proxy-process module running within a web-server-process space by determining the user-agent identifier of the initial HTTP request and retrieving a request modification corresponding to the determined user-agent identifier stored within the proxy-process module, wherein the retrieving the request modification is performed in-stream within the web-server-process space by an in-stream modification module including a mod perl in-memory module running in an Apache process space;

transforming the initial HTTP request into a modified HTTP request at the proxy-process module by applying the request modification to the initial HTTP request, the request modification comprising at least one executable rule to change at least a portion of the initial HTTP request;

requesting a resource by forwarding the modified HTTP request to another server, wherein the modified HTTP communications enable an origin server to communicate in compliance with a user-agent having an evolved protocol standard; and

responsive to the requesting, providing the resource to the client based on the modified HTTP request.

2. The computer-readable media of claim 1 , wherein the request modification is retrieved from a text file.

3. The computer-readable media of claim 1 , wherein the text file is stored in the web-server-process space.

4. The computer-readable media of claim 1 , wherein the request modification includes a modification to a body of the HTTP request.

5. A non-transitory computer-readable media storing computer-usable instructions that, when executed by a computing device, perform operations for modifying an HTTP communication comprising:

receiving from a server an HTTP response comprising a user-agent identifier for at least one user-agent, wherein the user-agent is at least one of a client device or software running on a client device;

executing a proxy-process module running within a web-server-process space by determining the user-agent identifier of the initial HTTP request and retrieving a response-body modification corresponding to the determined user-agent identifier stored within the proxy-process module, wherein the retrieving the response-body modification is performed in-stream within the web-server-process space by an in-stream modification module including a mod perl in-memory module running in an Apache process space;

transforming the HTTP response into a modified HTTP response at the proxy-process module by applying the response-body modification to a body of the HTTP response, the request modification comprising at least one of an executable rule or cached content to change at least a portion of the initial HTTP request; and

providing the modified HTTP response for transmission to a client based on the modified HTTP request.

6. The computer-readable media of claim 5 , wherein the response-body modification is retrieved from a text file.

7. The computer-readable media of claim 5 , wherein the text file is stored in the web-server-process space.

8. The computer-readable media of claim 5 , wherein the response-body modification modifies instructions for rendering a requested resource.

9. A non-transitory computer-readable media storing computer-usable instructions that, when executed by a computing device, perform operations for modifying an HTTP communication comprising:

receiving an initial HTTP response comprising a user-agent identifier for at least one user agent, wherein the user agent is at least one of a browser or client device;

executing a proxy-process module running within a web-server-process space by determining the user-agent identifier of the initial HTTP request and retrieving a cached content item corresponding to the determined user-agent identifier stored within the proxy-process module wherein the retrieving the cached content item is performed in-stream within the web-server-process space by an in-stream modification module including a mod perl in-memory module running in an Apache process space;

transforming the initial HTTP response into a modified HTTP response at the proxy-process module by applying a response modification to the initial HTTP response, the response modification comprising at least one executable rule to change at least a portion of the initial HTTP response;

providing the cached content item for transmission to a client based on the modified HTTP response.

10. The computer-readable media of claim 9 , wherein the cached content item is stored in the web-server-process space.

11. A system of components that is implemented on an HTTP server using a processor coupled to one or more non-transitory computer-readable media and that is for modifying HTTP communications, the system comprising:

a proxy module that receives the HTTP communications and that runs in a web-serving-process space of the HTTP server, the proxy module including a mod perl module and configured to determine modifications for application to the HTTP communications;

a rules file maintained in the web-serving-process space and that is accessible by the proxy module to reference the modifications based on a determination of a user-agent identifier for at least one user agent, the user agent being at least one of a browser or client device, wherein the modifications correspond to the determined user-agent identifier; and

a stream-modification module that runs in the web-serving-process space and that retrieves and applies the modifications, based on the user-agent identifier, to the HTTP communications in-stream to transform the HTTP communications into modified HTTP communications, wherein the modified HTTP communications enable an origin server to communicate in compliance with an agent having an evolved protocol standard.

12. The system of claim 11 further comprising, a cache that is stored in the web-serving-process space and that maintains cached content for responding to the HTTP communications.

13. The system of claim 11 , wherein the rules file is in a form of a condition-and-modification directive.

14. The system of claim 13 , wherein one condition includes the user-agent identifier.

15. The system of claim 11 , wherein the modifications include modification of HTTP communication headers.

16. The system of claim 11 , wherein the modifications include modification of HTTP communication bodies.

17. The system of claim 11 , wherein the system is a gateway for a cluster of one or more other servers that provide HTTP responses to HTTP requests received by the proxy module.

18. A non-transitory computer-readable media storing computer-usable instructions that, when executed by a computing device, perform operations for modifying an HTTP communication comprising:

receiving by a server application an HTTP communication comprising a user-agent identifier for at least one user-agent, the user agent being at least one of a browser or a client device;

routing the HTTP communication to an in-stream modification module running in a same processing space as the server application, wherein the in-stream modification module includes a mod perl in-memory module running in an Apache process space;

executing a parser to apply one or more transformation rules to the HTTP communication based on an identification of the user-agent to transform the HTTP communication into a modified HTTP communication; and

passing a transformed HTTP communication back to the server application to be transmitted to a recipient, wherein the transformed HTTP communication enables the server to communicate with a user-agent having an evolved protocol standard.

19. The computer-readable media of claim 18 , wherein the parser includes a YAML parser.

20. The computer-readable media of claim 19 , wherein the one or more transformation rules are stored in a text file.

21. The computer-readable media of claim 18 , wherein the HTTP communication is an HTTP request received from a user-agent browser, and wherein the one or more transformation rules modify a body of the HTTP request.

22. The computer-readable media of claim 21 , wherein the recipient includes an origin server.

23. The computer-readable media of claim 18 , wherein the HTTP communication is an HTTP response received from an origin server, and wherein the recipient is a user-agent browser.

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Jul 20, 2021
From: RIMINI STREET, INC.
To: CAPITAL ONE, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 056927/0099 →
SECURITY INTEREST Recorded Jul 19, 2018
From: RIMINI STREET, INC.
To: VICTORY PARK MANAGEMENT, LLC
Reel/Frame 046406/0151 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT REEL 039153/FRAME 0091 Recorded Jul 19, 2018
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: RIMINI STREET, INC.
Reel/Frame 046593/0477 →
PATENT SECURITY AGREEMENT Recorded Jun 24, 2016
From: RIMINI STREET, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 039153/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2014
From: WHITT, DESMOND
To: RIMINI STREET, INC.
Reel/Frame 034220/0345 →
Continuity (1)
Related Publication 20150312313A1 · Oct 29, 2015
Cited By (3)
US 12,554,789 US 12,585,711 US 12,598,160