HTTP - Bộ nhớ đệm
HTTP thường được sử dụng cho các hệ thống thông tin phân tán, nơi có thể cải thiện hiệu suất bằng cách sử dụng bộ đệm phản hồi. Giao thức HTTP / 1.1 bao gồm một số phần tử nhằm mục đích làm cho bộ nhớ đệm hoạt động.
Mục tiêu của bộ nhớ đệm trong HTTP / 1.1 là loại bỏ nhu cầu gửi yêu cầu trong nhiều trường hợp và loại bỏ nhu cầu gửi phản hồi đầy đủ trong nhiều trường hợp khác.
Các cơ chế bộ nhớ cache cơ bản trong HTTP / 1.1 là các chỉ thị ngầm đối với bộ nhớ cache nơi máy chủ chỉ định thời gian hết hạn và trình xác thực. Chúng tôi sử dụngCache-Control tiêu đề cho mục đích này.
Các Cache-Controlheader cho phép máy khách hoặc máy chủ truyền nhiều lệnh khác nhau trong các yêu cầu hoặc phản hồi. Các chỉ thị này thường ghi đè các thuật toán bộ nhớ đệm mặc định. Các chỉ thị bộ nhớ đệm được chỉ định trong danh sách được phân tách bằng dấu phẩy. Ví dụ:
Cache-control: no-cache
Máy khách có thể sử dụng các lệnh yêu cầu bộ đệm ẩn sau trong yêu cầu HTTP của nó:
SN | Chỉ thị và mô tả yêu cầu bộ nhớ cache |
---|---|
1 | no-cache Bộ đệm ẩn không được sử dụng phản hồi để đáp ứng yêu cầu tiếp theo mà không được xác thực lại thành công với máy chủ gốc. |
2 | no-store Bộ nhớ đệm không nên lưu trữ bất kỳ thứ gì về yêu cầu máy khách hoặc phản hồi của máy chủ. |
3 | max-age = seconds Cho biết rằng khách hàng sẵn sàng chấp nhận phản hồi có tuổi không lớn hơn thời gian được chỉ định tính bằng giây. |
4 | max-stale [ = seconds ] Cho biết rằng khách hàng sẵn sàng chấp nhận phản hồi đã vượt quá thời gian hết hạn. Nếu giây được đưa ra, nó không được hết hạn quá thời gian đó. |
5 | min-fresh = seconds Cho biết rằng khách hàng sẵn sàng chấp nhận phản hồi có thời gian làm mới không nhỏ hơn tuổi hiện tại cộng với thời gian được chỉ định tính bằng giây. |
6 | no-transform Không chuyển đổi phần thân thực thể. |
7 | only-if-cached Không truy xuất dữ liệu mới. Bộ đệm ẩn chỉ có thể gửi một tài liệu nếu nó nằm trong bộ đệm và không nên liên hệ với máy chủ gốc để xem có bản sao mới hơn hay không. |
Máy chủ có thể sử dụng các chỉ thị phản hồi bộ nhớ cache sau trong phản hồi HTTP của nó:
SN | Chỉ thị và mô tả phản hồi bộ nhớ cache |
---|---|
1 | public Cho biết rằng phản hồi có thể được lưu vào bộ nhớ đệm bất kỳ. |
2 | private Cho biết rằng tất cả hoặc một phần của thông báo phản hồi được dành cho một người dùng duy nhất và không được lưu vào bộ nhớ đệm bằng bộ nhớ đệm dùng chung. |
3 | no-cache Bộ đệm ẩn không được sử dụng phản hồi để đáp ứng yêu cầu tiếp theo mà không được xác thực lại thành công với máy chủ gốc. |
4 | no-store Bộ nhớ đệm không nên lưu trữ bất kỳ thứ gì về yêu cầu máy khách hoặc phản hồi của máy chủ. |
5 | no-transform Không chuyển đổi phần thân thực thể. |
6 | must-revalidate Bộ nhớ đệm phải xác minh tình trạng của các tài liệu cũ trước khi sử dụng và không nên sử dụng những tài liệu hết hạn. |
7 | proxy-revalidate Chỉ thị ủy quyền xác thực lại có cùng ý nghĩa với chỉ thị phải xác thực lại, ngoại trừ nó không áp dụng cho bộ nhớ đệm tác nhân người dùng không được chia sẻ. |
số 8 | max-age = seconds Cho biết rằng khách hàng sẵn sàng chấp nhận phản hồi có tuổi không lớn hơn thời gian được chỉ định tính bằng giây. |
9 | s-maxage = seconds Độ tuổi tối đa được chỉ định bởi chỉ thị này sẽ ghi đè tuổi tối đa được chỉ định bởi chỉ thị tuổi tối đa hoặc tiêu đề Expires. Chỉ thị s-maxage luôn bị bộ đệm riêng bỏ qua. |