diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-05-16 11:56:10 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-05-16 11:56:10 +0200 |
commit | 3db8f0f22d0a7c1710b4c4f9097103b124c58971 (patch) | |
tree | e2df57484740dc13d63007dc41b9ad23b0fcb680 | |
parent | fac01f140fbbb5c95bd090ad1cdfee3d89f056ba (diff) | |
download | exchange-3db8f0f22d0a7c1710b4c4f9097103b124c58971.tar.xz |
improve cache control support for /wire, /keys and legal
-rw-r--r-- | src/exchange/taler-exchange-httpd_keys.c | 10 | ||||
-rw-r--r-- | src/exchange/taler-exchange-httpd_wire.c | 11 | ||||
-rw-r--r-- | src/mhd/mhd_legal.c | 13 |
3 files changed, 33 insertions, 1 deletions
diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c index a84849099..dea29f7d0 100644 --- a/src/exchange/taler-exchange-httpd_keys.c +++ b/src/exchange/taler-exchange-httpd_keys.c @@ -1703,6 +1703,16 @@ setup_general_response_headers (struct TEH_KeyStateHandle *ksh, = GNUNET_TIME_timestamp_min (m, ksh->signature_expires); } + /* Set cache control headers: our response varies depending on these headers */ + GNUNET_break (MHD_YES == + MHD_add_response_header (response, + MHD_HTTP_HEADER_VARY, + MHD_HTTP_HEADER_ACCEPT_ENCODING)); + /* Information is always public, revalidate after 1 hour */ + GNUNET_break (MHD_YES == + MHD_add_response_header (response, + MHD_HTTP_HEADER_CACHE_CONTROL, + "public,max-age=3600")); return GNUNET_OK; } diff --git a/src/exchange/taler-exchange-httpd_wire.c b/src/exchange/taler-exchange-httpd_wire.c index e2baa1ce7..aa187c1cf 100644 --- a/src/exchange/taler-exchange-httpd_wire.c +++ b/src/exchange/taler-exchange-httpd_wire.c @@ -483,6 +483,17 @@ build_wire_state (void) wsh->dat)); } TALER_MHD_add_global_headers (wsh->wire_reply); + /* Set cache control headers: our response varies depending on these headers */ + GNUNET_break (MHD_YES == + MHD_add_response_header (wsh->wire_reply, + MHD_HTTP_HEADER_VARY, + MHD_HTTP_HEADER_ACCEPT_ENCODING)); + /* Information is always public, revalidate after 1 day */ + GNUNET_break (MHD_YES == + MHD_add_response_header (wsh->wire_reply, + MHD_HTTP_HEADER_CACHE_CONTROL, + "public,max-age=86400")); + { struct GNUNET_HashCode h; char etag[sizeof (h) * 2]; diff --git a/src/mhd/mhd_legal.c b/src/mhd/mhd_legal.c index bd596862c..5082c1811 100644 --- a/src/mhd/mhd_legal.c +++ b/src/mhd/mhd_legal.c @@ -306,7 +306,18 @@ TALER_MHD_reply_legal (struct MHD_Connection *conn, MHD_add_response_header (resp, MHD_HTTP_HEADER_EXPIRES, dat)); - + /* Set cache control headers: our response varies depending on these headers */ + GNUNET_break (MHD_YES == + MHD_add_response_header (resp, + MHD_HTTP_HEADER_VARY, + MHD_HTTP_HEADER_ACCEPT_LANGUAGE "," + MHD_HTTP_HEADER_ACCEPT "," + MHD_HTTP_HEADER_ACCEPT_ENCODING)); + /* Information is always public, revalidate after 10 days */ + GNUNET_break (MHD_YES == + MHD_add_response_header (resp, + MHD_HTTP_HEADER_CACHE_CONTROL, + "public max-age=864000")); if (NULL != legal) GNUNET_break (MHD_YES == MHD_add_response_header (resp, |