Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Vary: dựng cache key theo header

    Header Vary

    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ê).

    Yêu cầu

    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.

    Ví dụ

    Input:

    /page
    Accept-Encoding
    Accept-Encoding: gzip
    User-Agent: x
    

    Vary chỉ gồm Accept-Encoding → key /page|accept-encoding=gzip.

    • Định dạng đầu vào:

      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.

    • Ràng buộc đầu vào:

      Tên header so khớp không phân biệt hoa thường. Header thiếu → giá trị rỗng.

    • Định dạng đầu ra:

      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:

    Vary chỉ liệt kê Accept-Encoding nên key chỉ gồm header đó với giá trị gzip.

    Đang tải editor...