ladybird/Services/RequestServer
Timothy Flynn d3041dc054 LibHTTP+LibWeb: Support the HTTP Vary response header
We now partition the HTTP disk cache based on the Vary response header.
If a cached response contains a Vary header, we look for each of the
header names in the outgoing HTTP request. The outgoing request must
match every header value in the original request for the cache entry
to be used; otherwise, a new request will be issued, and a separate
cache entry will be created.

Note that we must now defer creating the disk cache file itself until we
have received the response headers. The Vary key is computed from these
headers, and affects the partitioned disk cache file name.

There are further optimizations we can make here. If we have a Vary
mismatch, we could find the best candidate cached response and issue a
conditional HTTP request. The content server may then respond with an
HTTP 304 if the mismatched request headers are actually okay. But for
now, if we have a Vary mismatch, we issue an unconditional request as
a purely correctness-oriented patch.
2026-01-22 08:54:49 -05:00
..
CacheLevel.h Everywhere: Hoist the Services folder to the top-level 2024-11-10 12:50:45 +01:00
CMakeLists.txt RequestServer: Add --resource-map option for URL-to-file substitution 2026-01-19 10:23:26 +01:00
ConnectionFromClient.cpp LibHTTP+LibWeb+RequestServer: Handle the Fetch API's cache mode 2026-01-22 07:05:06 -05:00
ConnectionFromClient.h LibHTTP+LibWeb+RequestServer: Handle the Fetch API's cache mode 2026-01-22 07:05:06 -05:00
CURL.cpp LibRequests+RequestServer: Add an error code for CURLE_PARTIAL_FILE 2026-01-08 11:59:12 +01:00
CURL.h RequestServer: Move some cURL utilities to their own file 2025-10-28 11:52:51 +01:00
Forward.h LibHTTP+RequestServer: Move the HTTP cache implementation to LibHTTP 2025-11-29 08:35:02 -05:00
main.cpp LibHTTP+LibWebView+RequestServer: Allow using the disk cache during WPT 2026-01-19 08:02:14 -05:00
Request.cpp LibHTTP+LibWeb: Support the HTTP Vary response header 2026-01-22 08:54:49 -05:00
Request.h LibHTTP+LibWeb+RequestServer: Handle the Fetch API's cache mode 2026-01-22 07:05:06 -05:00
RequestClient.ipc LibRequests+RequestServer: Store request IDs as u64 2025-12-12 10:54:33 -05:00
RequestPipe.cpp LibCore+LibHTTP+RequestServer: Send data via sockets instead of pipes 2026-01-19 06:53:29 -05:00
RequestPipe.h LibCore+RequestServer: Return size_t from system read/write functions 2025-12-01 16:29:48 +01:00
RequestServer.ipc LibHTTP+LibWeb+RequestServer: Handle the Fetch API's cache mode 2026-01-22 07:05:06 -05:00
Resolver.cpp RequestServer: Move Resolver (and related structures) to its own file 2025-10-28 11:52:51 +01:00
Resolver.h RequestServer: Move Resolver (and related structures) to its own file 2025-10-28 11:52:51 +01:00
ResourceSubstitutionMap.cpp RequestServer: Add --resource-map option for URL-to-file substitution 2026-01-19 10:23:26 +01:00
ResourceSubstitutionMap.h RequestServer: Add --resource-map option for URL-to-file substitution 2026-01-19 10:23:26 +01:00
WebSocketImplCurl.cpp RequestServer: Move some cURL utilities to their own file 2025-10-28 11:52:51 +01:00
WebSocketImplCurl.h RequestServer: Enable in Windows CI 2025-08-23 16:04:36 -06:00