Vary liệt kê các request header ảnh hưởng tới nội dung phản hồi (ví dụ Vary: Accept-Encoding). Cache phải lưu mỗi biến thể riêng. Cache key = URL + giá trị của từng header được liệt kê trong Vary (theo thứ tự đã liệt kê).
Dòng 1: URL. Dòng 2: value của Vary (các tên header cách nhau bởi dấu phẩy, hoặc - nếu không có). Các dòng tiếp theo: mỗi dòng Tên: giá trị là một request header client gửi.
Dựng cache key dạng: URL|h1=v1|h2=v2|... với h là tên header (chữ thường) theo thứ tự trong Vary; nếu header không có trong request thì giá trị là rỗng. Nếu Vary là -, key chỉ là URL.
Input:
/page
Accept-Encoding
Accept-Encoding: gzip
User-Agent: x
Vary chỉ gồm Accept-Encoding → key /page|accept-encoding=gzip.
Dòng 1: URL. Dòng 2: Vary (danh sách hoặc '-'). Các dòng còn lại: request headers Name: value.
Tên header so khớp không phân biệt hoa thường. Header thiếu → giá trị rỗng.
Một dòng: cache key.
Ví dụ:
Đầu vào:
/page
Accept-Encoding
Accept-Encoding: gzip
User-Agent: x
Đầu ra:
/page|accept-encoding=gzip
Giải thích:
Đang tải editor...