Caching trong HTTP

HTTP được sử dụng một cách đặc trưng cho các hệ thống thông tin được phân phối, nơi mà hiệu suất có thể được nâng cao bởi sử dụng các bộ nhớ ẩn phản hồi. Giao thức HTTP/1.1 bao gồm một số các yếu tố được dự định để thực hiện các công việc lưu vào bộ nhớ ẩn.

Mục tiêu của lưu vào bộ nhớ ẩn trong HTTP/1.1 là để tính toán sự cần thiết để gửi các yêu cầu trong nhiều trường hợp, và để tính toán sự cần thiết để gửi các sự phản hồi đầy đủ trong nhiều trường hợp khác.

Kỹ thuật bộ nhớ ẩn cơ sở trong HTTP/1.1 là gồm các chỉ thị tới các bộ nhớ ẩn nơi mà Server xác định thời gian và ngày mãn hạn. Chúng ta sử dụng trường Cache-Control cho mục đích này.

Trường Cache-Control cho phép một Client hoặc Server để truyền các chỉ thị đa dạng trong hoặc các yêu cầu hoặc các sự phản hồi. Những chỉ thị này có đặc trưng là có quyền ưu tiên cao hơn các thuật toán lưu vào bộ nhớ ẩn theo mặc định. Các chỉ thị lưu vào bộ nhớ ẩn được xác định trong một danh sách phân biệt nhau bởi dấu phảy. Ví dụ:

Cache-control: no-cache

Sau đây là các chỉ thị yêu cầu bộ nhớ ẩn có thể được sử dụng bởi Client trong yêu cầu HTTP của nó:

STTChỉ dẫn yêu cầu bộ nhớ ẩn và miêu tả
1no-cache

Một bộ nhớ ẩn phải không sử dụng phản hồi để làm thỏa mãn một yêu cầu theo sau mà không tái xác nhận thành công với Server ban đầu.

2no-store

Bộ nhớ ẩn không nên lưu giữ bất cứ thứ gì về yêu cầu Client hoặc phản hồ Server.

3max-age = (tính bằng giây)

Chỉ ra rằng Client đang muốn chấp nhận một phản hồi mà thời gian của nó không lớn hơn thời gian đã xác định bằng giây (s).

4max-stale [= giây]

Chỉ ra rằng Client đang muốn chấp nhận một phản hồi mà đã vượt thời gian mãn hạn. Nếu số giây được cung cấp, nó phải không là hết hạn bởi nhiều hơn thời gian đó.

5min-fresh = giây

Chỉ ra rằng Client đang muốn chấp nhận một phản hồi mà thời gian sống khỏe của nó là không ít hơn tuổi hiện tại của nó cộng với thời gian đã xác định bằng giây.

6no-transform

Không chuyển đổi phần thân đối tượng.

7only-if-cached

Không lấy dữ liệu mới. Bộ nhớ ẩn có thể gửi một tài liệu chỉ khi nó ở trong bộ nhớ ẩn, và không nên liên hệ với Server ban đầu để xem xét nếu một bản sao mới hơn tồn tại.

Các chỉ thị phản hồi bộ nhớ ẩn sau đây có thể được sử dụng bởi Server trong phản hồi HTTP của nó:

STTChỉ dẫn phản hồi bộ nhớ ẩn và Miêu tả
1public

Chỉ ra rằng phản hồi có thể được giữ trong bộ nhớ ẩn bởi bất cứ bộ nhớ ẩn nào.

2private

Chỉ ra rằng tất cả hoặc một phần của thông báo phản hồi được xem như là cho một người sử dụng đơn và phải không được giữ trong bộ nhớ ẩn bởi một bộ nhớ ẩn được chia sẻ.

3no-cache

Một bộ nhớ ẩn phải không sử dụng phản hồi để thỏa mãn một yêu cầu theo sau mà không tái xác nhận thành công với Server ban đầu.

4no-store

Bộ nhớ ẩn không nên lưu bất cứ gì về yêu cầu Client hoặc phản hồi Server.

5no-transform

Không chuyển đổi phần thân đối tượng.

6must-revalidate

Bộ nhớ ẩn phải xác minh trạng thái của các tài liệu đã cũ trước khi sử dụng nó và các tài liệu đã mãn hạn không nên được sử dụng.

7proxy-revalidate

Chỉ dẫn tái xác nhận ủy quyền có cùng ý nghĩa với chỉ dẫn must-revalidate, ngoại trừ nó không áp dụng tới các bộ nhớ ẩn user agent không được chia sẻ..

8max-age = giây

Chỉ ra rằng Client đang muốn chấp nhận một yêu cầu mà tuổi của nó không lớn hơn thời gian đã xác định bằng giây.

9s-maxage = giây

Tuổi tối đa được xác định bởi chỉ dẫn này vượt quá tuổi tối đa đã xác định bởi hoặc chỉ dẫn max-age hoặc Expires Header. Chỉ dẫn s-maxage luôn luôn được bỏ qua bởi một bộ nhớ cá nhân.

Bình luận