SYSTEMS AND METHODS FOR CACHING HTTP POST REQUESTS AND RESPONSES
First Claim
1. A system comprising:
- one or more processors;
a digest module configured to, upon receiving a POST request, generate a digest of a body of the POST request, append a URL of the POST request with the digest, and to use the digest and the URL as a cache key;
an idempotency determination module configured to determine that the POST request is non-idempotent; and
a non-idempotent management module configured to, in response to the determination that the POST request is non-idempotent, forward the non-idempotent POST request to a server.
2 Assignments
0 Petitions
Accused Products
Abstract
With an idempotent POST request, the URL (and headers) cannot be used as an HTTP cache key. To cache idempotent POST requests, the POST body is digested and appended the URL with the digest and used as the cache key. Subsequent requests with the same payload will end up hitting the cache rather than the origin server. A forward cache proxy at the client end and reverse cache proxy at the server end are deployed. The client sends the request to the forward proxy that looks up the cache. If there is a cache miss, the forward cache proxy digests the body and sends only the digest to the reverse proxy. The reverse cache proxy looks up request cache to find if there is a match for the request and send that request to the server.
-
Citations
20 Claims
-
1. A system comprising:
-
one or more processors; a digest module configured to, upon receiving a POST request, generate a digest of a body of the POST request, append a URL of the POST request with the digest, and to use the digest and the URL as a cache key; an idempotency determination module configured to determine that the POST request is non-idempotent; and a non-idempotent management module configured to, in response to the determination that the POST request is non-idempotent, forward the non-idempotent POST request to a server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method comprising:
-
receiving a POST request; using one or more processors, generating a cache key by generating a digest of a body of the POST request and appending a URL of the POST request with the digest; determining that the POST request is non-idempotent; and in response to the determination that the POST request is non-idempotent, forwarding the non-idempotent POST request to a server.
-
-
20. A non-transitory machine-readable medium having instructions embodied thereon, the instructions executable by one or more processors to perform operations comprising:
-
receiving a POST request; using one or more processors, generating a cache key by generating a digest of a body of the POST request and appending a URL of the POST request with the digest; determining that the POST request is non-idempotent; and in response to the determination that the POST request is non-idempotent, forwarding the non-idempotent POST request to a server.
-
Specification