diff --git a/results/caddy.json b/results/caddy.json new file mode 100644 index 0000000..7a9cd3d --- /dev/null +++ b/results/caddy.json @@ -0,0 +1,1026 @@ +{ + "304-etag-update-response-Cache-Control": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Clear-Site-Data": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-Encoding": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-Foo": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-Length": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-Location": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-MD5": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-Range": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-Security-Policy": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Content-Type": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-ETag": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Expires": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Public-Key-Pins": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Set-Cookie": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Set-Cookie2": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-Test-Header": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-X-Content-Foo": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-X-Frame-Options": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-X-Test-Header": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-etag-update-response-X-XSS-Protection": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "304-lm-use-stored-Test-Header": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "age-parse-dup-0": true, + "age-parse-dup-0-twoline": true, + "age-parse-dup-old": true, + "age-parse-float": true, + "age-parse-large": [ + "Assertion", + "Response 2 comes from cache" + ], + "age-parse-large-minus-one": [ + "Assertion", + "Response 2 comes from cache" + ], + "age-parse-larger": [ + "Assertion", + "Response 2 comes from cache" + ], + "age-parse-negative": true, + "age-parse-nonnumeric": true, + "age-parse-numeric-parameter": [ + "Assertion", + "Response 2 comes from cache" + ], + "age-parse-parameter": [ + "Assertion", + "Response 2 comes from cache" + ], + "age-parse-prefix": true, + "age-parse-prefix-twoline": true, + "age-parse-suffix": [ + "Assertion", + "Response 2 comes from cache" + ], + "age-parse-suffix-twoline": [ + "Assertion", + "Response 2 comes from cache" + ], + "cc-resp-must-revalidate-fresh": [ + "Setup", + "Response body is \"edaec18e-e516-47d9-abc9-a6f4d102baa67e-89b6-5d3d7775af53\", not \"124a5121-2354-457e-89b6-5d3d7775af53\"" + ], + "cc-resp-must-revalidate-stale": [ + "Assertion", + "Request 3 should have been conditional, but it was not." + ], + "cc-resp-no-cache": [ + "Assertion", + "Response 2 comes from cache" + ], + "cc-resp-no-cache-case-insensitive": [ + "Assertion", + "Response 2 comes from cache" + ], + "cc-resp-no-cache-revalidate": [ + "Assertion", + "request 2 wasn't sent to server" + ], + "cc-resp-no-cache-revalidate-fresh": [ + "Assertion", + "request 2 wasn't sent to server" + ], + "cc-resp-no-store": true, + "cc-resp-no-store-case-insensitive": true, + "cc-resp-no-store-fresh": true, + "cc-resp-no-store-old-max-age": true, + "cc-resp-no-store-old-new": true, + "cc-resp-private-shared": true, + "ccreq-ma0": true, + "ccreq-ma1": true, + "ccreq-magreaterage": [ + "Assertion", + "Response 2 comes from cache" + ], + "ccreq-max-stale": [ + "Assertion", + "Response 2 does not come from cache" + ], + "ccreq-max-stale-age": [ + "Setup", + "Response body is \"ca2e7701-3409-4855-a778-bf85555efa3bd\", not \"181ce9fa-e760-4d9a-a7fa-9834b71ebf6d\"" + ], + "ccreq-min-fresh": true, + "ccreq-min-fresh-age": true, + "ccreq-no-cache": true, + "ccreq-no-cache-etag": [ + "Assertion", + "Request 2 should have been conditional, but it was not." + ], + "ccreq-no-cache-lm": [ + "Assertion", + "Request 2 should have been conditional, but it was not." + ], + "ccreq-no-store": [ + "Assertion", + "Response 2 comes from cache" + ], + "ccreq-oic": [ + "Assertion", + "Response 1 status is 200, not 504" + ], + "cdn-cc-invalid-sh-type-unknown": true, + "cdn-cc-invalid-sh-type-wrong": true, + "cdn-fresh-cc-nostore": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-0": true, + "cdn-max-age-0-expires": true, + "cdn-max-age-age": true, + "cdn-max-age-case-insensitive": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-cc-max-age-invalid-expires": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-expires": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-extension": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-long-cc-max-age": [ + "Assertion", + "Response 2 comes from cache" + ], + "cdn-max-age-max": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-max-plus": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-short-cc-max-age": [ + "Assertion", + "Response 2 does not come from cache" + ], + "cdn-max-age-space-after-equals": true, + "cdn-max-age-space-before-equals": true, + "cdn-no-cache": [ + "Assertion", + "Response 2 comes from cache" + ], + "cdn-no-store-cc-fresh": [ + "Assertion", + "Response 2 comes from cache" + ], + "cdn-private": [ + "Assertion", + "Response 2 comes from cache" + ], + "cdn-remove-header": true, + "conditional-304-etag": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-forward": true, + "conditional-etag-forward-unquoted": [ + "Assertion", + "Request 1 header If-None-Match is \"abcdef\", not \"\"abcdef\"\"" + ], + "conditional-etag-precedence": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-quoted-respond-unquoted": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-strong-generate": [ + "Assertion", + "Request 2 should have been conditional, but it was not." + ], + "conditional-etag-strong-generate-unquoted": [ + "Assertion", + "Request 2 should have been conditional, but it was not." + ], + "conditional-etag-strong-respond": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-strong-respond-multiple-first": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-strong-respond-multiple-last": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-strong-respond-multiple-second": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-strong-respond-obs-text": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-unquoted-respond-quoted": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-unquoted-respond-unquoted": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-vary-headers": [ + "Setup", + "Request 2 should have been conditional, but it was not." + ], + "conditional-etag-vary-headers-mismatch": true, + "conditional-etag-weak-generate-weak": [ + "Assertion", + "Request 2 should have been conditional, but it was not." + ], + "conditional-etag-weak-respond": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-weak-respond-backslash": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-weak-respond-lowercase": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-etag-weak-respond-omit-slash": [ + "Assertion", + "Response 2 does not come from cache" + ], + "conditional-lm-fresh": [ + "Assertion", + "Response 2 status is 200, not 304" + ], + "conditional-lm-fresh-earlier": [ + "Assertion", + "Response 2 status is 200, not 304" + ], + "conditional-lm-fresh-no-lm": [ + "Assertion", + "Response 2 status is 200, not 304" + ], + "conditional-lm-fresh-rfc850": [ + "Assertion", + "Response 2 status is 200, not 304" + ], + "conditional-lm-stale": true, + "freshness-expires-32bit": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-age-fast-date": true, + "freshness-expires-age-slow-date": true, + "freshness-expires-ansi-c": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-far-future": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-future": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-invalid": true, + "freshness-expires-invalid-1-digit-hour": true, + "freshness-expires-invalid-2-digit-year": true, + "freshness-expires-invalid-aest": true, + "freshness-expires-invalid-date": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-invalid-date-dashes": true, + "freshness-expires-invalid-multiple-lines": true, + "freshness-expires-invalid-multiple-spaces": true, + "freshness-expires-invalid-no-comma": true, + "freshness-expires-invalid-time-periods": true, + "freshness-expires-invalid-utc": true, + "freshness-expires-old-date": true, + "freshness-expires-past": true, + "freshness-expires-present": true, + "freshness-expires-rfc850": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-wrong-case-month": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-wrong-case-tz": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-expires-wrong-case-weekday": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-max-age": true, + "freshness-max-age-0": true, + "freshness-max-age-0-expires": true, + "freshness-max-age-100a": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-max-age-a100": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-max-age-age": [ + "Assertion", + "Response 2 comes from cache" + ], + "freshness-max-age-case-insenstive": true, + "freshness-max-age-date": [ + "Assertion", + "Response 2 comes from cache" + ], + "freshness-max-age-decimal-five": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-max-age-decimal-zero": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-max-age-expires": true, + "freshness-max-age-expires-invalid": true, + "freshness-max-age-extension": true, + "freshness-max-age-ignore-quoted": true, + "freshness-max-age-ignore-quoted-rev": true, + "freshness-max-age-leading-zero": true, + "freshness-max-age-max": true, + "freshness-max-age-max-minus-1": true, + "freshness-max-age-max-plus": true, + "freshness-max-age-max-plus-1": true, + "freshness-max-age-negative": true, + "freshness-max-age-quoted": true, + "freshness-max-age-s-maxage-shared-longer": true, + "freshness-max-age-s-maxage-shared-longer-multiple": [ + "Assertion", + "Response 2 comes from cache" + ], + "freshness-max-age-s-maxage-shared-longer-reversed": true, + "freshness-max-age-s-maxage-shared-shorter": true, + "freshness-max-age-s-maxage-shared-shorter-expires": true, + "freshness-max-age-single-quoted": true, + "freshness-max-age-space-after-equals": true, + "freshness-max-age-space-before-equals": true, + "freshness-max-age-two-fresh-stale-sameline": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-max-age-two-fresh-stale-sepline": true, + "freshness-max-age-two-stale-fresh-sameline": true, + "freshness-max-age-two-stale-fresh-sepline": [ + "Assertion", + "Response 2 does not come from cache" + ], + "freshness-none": true, + "freshness-s-maxage-shared": true, + "head-200-freshness-update": [ + "Assertion", + "Response 3 does not come from cache" + ], + "head-200-retain": [ + "Assertion", + "Response 2 header Template-A is \"null\", not \"1\"" + ], + "head-200-update": [ + "Setup", + "Response 3 does not come from cache" + ], + "head-410-update": [ + "Setup", + "Response 3 does not come from cache" + ], + "head-writethrough": true, + "headers-omit-headers-listed-in-Cache-Control-no-cache": true, + "headers-omit-headers-listed-in-Cache-Control-no-cache-single": true, + "headers-omit-headers-listed-in-Connection": true, + "headers-store-Cache-Control": true, + "headers-store-Clear-Site-Data": true, + "headers-store-Connection": true, + "headers-store-Content-Encoding": [ + "Assertion", + "Response 2 header Content-Encoding is \"null\", not \"apetixmbqfujync\"" + ], + "headers-store-Content-Foo": true, + "headers-store-Content-Length": true, + "headers-store-Content-Location": [ + "Assertion", + "Response 2 header Content-Location is \"null\", not \"/bar\"" + ], + "headers-store-Content-MD5": [ + "Assertion", + "Response 2 header Content-MD5 is \"null\", not \"N7UdGUp1E+RbVvZSTy1R8g==\"" + ], + "headers-store-Content-Range": true, + "headers-store-Content-Security-Policy": [ + "Assertion", + "Response 2 header Content-Security-Policy is \"null\", not \"default-src 'self' cdn.example.com\"" + ], + "headers-store-Content-Type": true, + "headers-store-ETag": [ + "Assertion", + "Response 2 header ETag is \"null\", not \"\"ghijkl\"\"" + ], + "headers-store-Expires": [ + "Assertion", + "Response 2 header Expires is \"null\", not \"Mon, 11 Jan 2038 11:11:11 GMT\"" + ], + "headers-store-Keep-Alive": true, + "headers-store-Proxy-Authenticate": [ + "Setup", + "Response body is \"e020380b-edfa-4d14-9783-cb43b58876a1\", not \"c756b1fa-75d3-42f3-8fc8-053281a9321e\"" + ], + "headers-store-Proxy-Authentication-Info": [ + "Setup", + "Response body is \"bccfd355-8295-44fb-82eb-6c6c802eeb33307b-46ce-9664-9d0c129d4347\", not \"9950fdf1-307b-46ce-9664-9d0c129d4347\"" + ], + "headers-store-Proxy-Authorization": [ + "Setup", + "Response body is \"8c8e64d4-c547-421d-b327-7f71d0f44578\", not \"6aa41051-a909-45c2-980e-246681c8cea1\"" + ], + "headers-store-Proxy-Connection": true, + "headers-store-Public-Key-Pins": [ + "Assertion", + "Response 2 header Public-Key-Pins is \"null\", not \"askcumewogyqias\"" + ], + "headers-store-Set-Cookie": [ + "Assertion", + "Response 2 header Set-Cookie is \"null\", not \"a=c\"" + ], + "headers-store-Set-Cookie2": true, + "headers-store-TE": true, + "headers-store-Test-Header": [ + "Assertion", + "Response 2 header Test-Header is \"null\", not \"aywusqomkigecay\"" + ], + "headers-store-Transfer-Encoding": [ + "Setup", + "Response 1 status is 502, not 200" + ], + "headers-store-Upgrade": true, + "headers-store-X-Content-Foo": true, + "headers-store-X-Frame-Options": [ + "Assertion", + "Response 2 header X-Frame-Options is \"null\", not \"sameorigin\"" + ], + "headers-store-X-Test-Header": true, + "headers-store-X-XSS-Protection": [ + "Assertion", + "Response 2 header X-XSS-Protection is \"null\", not \"1; mode=block\"" + ], + "heuristic-200-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-201-not_cached": true, + "heuristic-202-not_cached": true, + "heuristic-203-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-204-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-403-not_cached": true, + "heuristic-404-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-405-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-410-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-414-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-501-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-502-not_cached": true, + "heuristic-503-not_cached": true, + "heuristic-504-not_cached": true, + "heuristic-599-cached": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-599-not_cached": true, + "heuristic-delta-10": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-1200": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-1800": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-30": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-300": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-3600": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-43200": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-5": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-60": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-600": [ + "Assertion", + "Response 2 does not come from cache" + ], + "heuristic-delta-86400": [ + "Assertion", + "Response 2 does not come from cache" + ], + "invalidate-DELETE": true, + "invalidate-DELETE-cl": true, + "invalidate-DELETE-failed": [ + "Assertion", + "Response 3 does not come from cache" + ], + "invalidate-DELETE-location": true, + "invalidate-M-SEARCH": true, + "invalidate-M-SEARCH-cl": true, + "invalidate-M-SEARCH-failed": [ + "Assertion", + "Response 3 does not come from cache" + ], + "invalidate-M-SEARCH-location": true, + "invalidate-POST": true, + "invalidate-POST-cl": true, + "invalidate-POST-failed": [ + "Assertion", + "Response 3 does not come from cache" + ], + "invalidate-POST-location": true, + "invalidate-PUT": true, + "invalidate-PUT-cl": true, + "invalidate-PUT-failed": [ + "Assertion", + "Response 3 does not come from cache" + ], + "invalidate-PUT-location": true, + "method-POST": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-age-gen": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-age-update-expires": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-age-update-max-age": [ + "Assertion", + "Response 2 header Age is 4, should be bigger than 32" + ], + "other-authorization": true, + "other-authorization-must-revalidate": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-authorization-public": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-authorization-smaxage": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-cookie": true, + "other-date-update": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-fresh-content-disposition-attachment": [ + "Setup", + "Response body is \"47153be0-335a-442a-8778-655cb0ee565d\n\r\n62327de0-bb52-4650-b774-0d03293beaba\", not \"62327de0-bb52-4650-b774-0d03293beaba\"" + ], + "other-heuristic-content-disposition-attachment": [ + "Assertion", + "Response 2 does not come from cache" + ], + "other-set-cookie": [ + "Setup", + "Response body is \"04a6ebe7-b0f3-473c-8083-b7bc3109acb8931d-9fc03dd86012\", not \"1c156e56-e4d4-447a-931d-9fc03dd86012\"" + ], + "partial-store-complete-reuse-partial": [ + "Assertion", + "Response 2 status is 200, not 206" + ], + "partial-store-complete-reuse-partial-no-last": [ + "Assertion", + "Response 2 status is 200, not 206" + ], + "partial-store-complete-reuse-partial-suffix": [ + "Assertion", + "Response 2 status is 200, not 206" + ], + "partial-store-partial-complete": [ + "Setup", + "Response 2 status is 206, not 200" + ], + "partial-store-partial-reuse-partial": [ + "Assertion", + "Response 2 status is 200, not 206" + ], + "partial-store-partial-reuse-partial-absent": [ + "Assertion", + "Response 2 status is 200, not 206" + ], + "partial-store-partial-reuse-partial-byterange": [ + "Assertion", + "Response body is \"01234\", not \"234\"" + ], + "partial-store-partial-reuse-partial-suffix": [ + "Assertion", + "Response 2 status is 200, not 206" + ], + "partial-use-headers": [ + "Setup", + "Response 2 status is 200, not 206" + ], + "partial-use-stored-headers": [ + "Setup", + "Response 2 status is 200, not 206" + ], + "pragma-request-extension": true, + "pragma-request-no-cache": [ + "Assertion", + "Response 2 does not come from cache" + ], + "pragma-response-extension": [ + "Setup", + "Response body is \"d6d65815-a841-4b3e-b953-7bbebf56abb12-a349-e026f9ee1dc5\", not \"20ec28ea-aaa4-4772-a349-e026f9ee1dc5\"" + ], + "pragma-response-no-cache": true, + "pragma-response-no-cache-heuristic": [ + "Setup", + "Response body is \"e10d9d6d-fbab-49cb-8c26-fc4342f8d0e3ored-Ttl: 2m0s\r\n\r\n2b4270fe-2eba-4187-a56f-119bdc664ffa\", not \"2b4270fe-2eba-4187-a56f-119bdc664ffa\"" + ], + "query-args-different": true, + "query-args-same": [ + "Assertion", + "Response 2 does not come from cache" + ], + "stale-503": [ + "Assertion", + "Response 2 does not come from cache" + ], + "stale-close": [ + "Assertion", + "Response 2 does not come from cache" + ], + "stale-close-must-revalidate": [ + "Assertion", + "Response 2 comes from cache" + ], + "stale-close-no-cache": [ + "Assertion", + "Response 2 comes from cache" + ], + "stale-close-proxy-revalidate": [ + "Assertion", + "Response 2 comes from cache" + ], + "stale-close-s-maxage=2": [ + "Assertion", + "Response 2 comes from cache" + ], + "stale-sie-503": [ + "Assertion", + "Response 2 does not come from cache" + ], + "stale-sie-close": [ + "Assertion", + "Response 2 does not come from cache" + ], + "stale-warning-become": [ + "Setup", + "Response 2 does not come from cache" + ], + "stale-warning-stored": [ + "Setup", + "Response 2 does not come from cache" + ], + "status-200-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-200-must-understand": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-200-stale": true, + "status-203-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-203-stale": true, + "status-204-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-204-stale": true, + "status-299-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-299-stale": true, + "status-301-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-301-stale": true, + "status-302-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-302-stale": true, + "status-303-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-303-stale": true, + "status-307-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-307-stale": true, + "status-308-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-308-stale": true, + "status-400-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-400-stale": true, + "status-404-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-404-stale": true, + "status-410-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-410-stale": true, + "status-499-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-499-stale": true, + "status-500-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-500-stale": true, + "status-502-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-502-stale": true, + "status-503-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-503-stale": true, + "status-504-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-504-stale": true, + "status-599-fresh": [ + "Assertion", + "Response 2 does not come from cache" + ], + "status-599-must-understand": true, + "status-599-stale": true, + "surrogate-append-capabilities": [ + "Assertion", + "Request 1 Surrogate-Capability header not present." + ], + "surrogate-fresh-cc-nostore": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-0": true, + "surrogate-max-age-0-expires": true, + "surrogate-max-age-age": true, + "surrogate-max-age-case-insensitive": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-cc-max-age-invalid-expires": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-expires": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-extension": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-long-cc-max-age": [ + "Assertion", + "Response 2 comes from cache" + ], + "surrogate-max-age-max": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-max-plus": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-me-target": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-other-target": true, + "surrogate-max-age-short-cc-max-age": [ + "Assertion", + "Response 2 does not come from cache" + ], + "surrogate-max-age-space-after-equals": true, + "surrogate-max-age-space-before-equals": true, + "surrogate-no-store": true, + "surrogate-no-store-cc-fresh": [ + "Assertion", + "Response 2 comes from cache" + ], + "surrogate-remove-header": true, + "vary-2-match": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-2-match-omit": true, + "vary-2-no-match": true, + "vary-3-match": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-3-no-match": true, + "vary-3-omit": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-3-order": true, + "vary-cache-key": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-invalidate": [ + "Assertion", + "Response 3 does not come from cache" + ], + "vary-match": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-no-match": true, + "vary-normalise-combine": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-normalise-lang-case": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-normalise-lang-order": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-normalise-lang-select": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-normalise-lang-space": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-normalise-space": [ + "Assertion", + "Response 2 does not come from cache" + ], + "vary-omit": true, + "vary-omit-stored": true, + "vary-star": true, + "vary-syntax-empty-star": true, + "vary-syntax-empty-star-lines": true, + "vary-syntax-foo-star": true, + "vary-syntax-star": true, + "vary-syntax-star-foo": true, + "vary-syntax-star-star": true, + "vary-syntax-star-star-lines": true +} diff --git a/results/index.mjs b/results/index.mjs index c198cd4..c01e134 100644 --- a/results/index.mjs +++ b/results/index.mjs @@ -61,6 +61,13 @@ export default [ version: 'master', link: 'https://github.com/http-tests/cache-tests/wiki/nuster' }, + { + file: 'caddy.json', + name: 'caddy', + type: 'rev-proxy', + version: '0.7.0', + link: 'https://github.com/caddyserver/cache-handler' + }, { file: 'fastly.json', name: 'Fastly',