22
33A Safari extension that displays CDN cache status (HIT/MISS) for the current page with detailed header information.
44
5- ![ Screenshot] ( screenshot.png )
5+ ![ Screenshot] ( screenshot.jpg )
66
77![ Safari Extension] ( https://img.shields.io/badge/Safari-Extension-blue )
88![ Manifest V3] ( https://img.shields.io/badge/Manifest-V3-green )
@@ -18,30 +18,30 @@ A Safari extension that displays CDN cache status (HIT/MISS) for the current pag
1818
1919## Supported CDNs
2020
21- | CDN | Detection Headers | Status Header |
22- | -----| ------------------| ---------------|
23- | ** Cloudflare** | ` cf-cache-status ` , ` cf-ray ` | ` cf-cache-status ` |
24- | ** CloudFront** | ` x-amz-cf-id ` , ` x-amz-cf-pop ` | ` x-cache ` |
25- | ** Fastly** | ` x-served-by ` , ` x-timer ` | ` x-cache ` |
26- | ** Akamai** | ` x-akamai-request-id ` | ` x-cache ` |
27- | ** Bunny CDN** | ` cdn-cache ` , ` cdn-pullzone ` | ` cdn-cache ` |
28- | ** Varnish** | ` x-varnish ` | ` x-cache ` |
29- | ** Generic** | ` x-cache ` | ` x-cache ` |
21+ | CDN | Detection Headers | Status Header |
22+ | -------------- | ----------------------------- | ----------------- |
23+ | ** Cloudflare** | ` cf-cache-status ` , ` cf-ray ` | ` cf-cache-status ` |
24+ | ** CloudFront** | ` x-amz-cf-id ` , ` x-amz-cf-pop ` | ` x-cache ` |
25+ | ** Fastly** | ` x-served-by ` , ` x-timer ` | ` x-cache ` |
26+ | ** Akamai** | ` x-akamai-request-id ` | ` x-cache ` |
27+ | ** Bunny CDN** | ` cdn-cache ` , ` cdn-pullzone ` | ` cdn-cache ` |
28+ | ** Varnish** | ` x-varnish ` | ` x-cache ` |
29+ | ** Generic** | ` x-cache ` | ` x-cache ` |
3030
3131Most CDNs use ` x-cache: HIT from... ` or ` x-cache: MISS from... ` , so the generic detection works for many unlisted CDNs as well.
3232
3333## Cache Status Values
3434
35- | Status | Badge | Color | Meaning |
36- | --------| -------| -------| ---------|
37- | HIT | ` HIT ` | 🟢 Green | Served from CDN cache |
38- | MISS | ` MISS ` | 🔴 Red | Fetched from origin server |
39- | EXPIRED | ` EXP ` | 🟠 Orange | Cache expired, refetched from origin |
40- | STALE | ` STL ` | 🟠 Orange | Serving stale content |
41- | REVALIDATED | ` REV ` | 🟠 Orange | Cache revalidated with origin |
42- | REFRESH | ` REF ` | 🟠 Orange | Cache refreshed from origin |
43- | BYPASS | ` BYP ` | ⚫ Gray | Cache bypassed |
44- | DYNAMIC | ` DYN ` | ⚫ Gray | Dynamic content, not cached |
35+ | Status | Badge | Color | Meaning |
36+ | ----------- | ------ | --------- | ------------------------------------ |
37+ | HIT | ` HIT ` | 🟢 Green | Served from CDN cache |
38+ | MISS | ` MISS ` | 🔴 Red | Fetched from origin server |
39+ | EXPIRED | ` EXP ` | 🟠 Orange | Cache expired, refetched from origin |
40+ | STALE | ` STL ` | 🟠 Orange | Serving stale content |
41+ | REVALIDATED | ` REV ` | 🟠 Orange | Cache revalidated with origin |
42+ | REFRESH | ` REF ` | 🟠 Orange | Cache refreshed from origin |
43+ | BYPASS | ` BYP ` | ⚫ Gray | Cache bypassed |
44+ | DYNAMIC | ` DYN ` | ⚫ Gray | Dynamic content, not cached |
4545
4646## Build & Install
4747
@@ -53,6 +53,7 @@ Most CDNs use `x-cache: HIT from...` or `x-cache: MISS from...`, so the generic
5353### Steps
5454
55551 . Open the project in Xcode:
56+
5657 ``` bash
5758 open " CF Cache Status/CF Cache Status.xcodeproj"
5859 ```
@@ -97,12 +98,12 @@ CF Cache Status/
9798
9899## Permissions
99100
100- | Permission | Purpose |
101- | ------------| ---------|
102- | ` webRequest ` | Read HTTP response headers |
103- | ` webNavigation ` | Detect page navigations |
104- | ` activeTab ` | Access current tab information |
105- | ` <all_urls> ` | Monitor requests to all websites |
101+ | Permission | Purpose |
102+ | --------------- | -------------------------------- |
103+ | ` webRequest ` | Read HTTP response headers |
104+ | ` webNavigation ` | Detect page navigations |
105+ | ` activeTab ` | Access current tab information |
106+ | ` <all_urls> ` | Monitor requests to all websites |
106107
107108## How It Works
108109
0 commit comments