Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Chủ đề này mô tả cách Edge xử lý các tiêu đề lưu vào bộ nhớ đệm HTTP/1.1 khi bạn đang sử dụng chính sách ResponseCache. Apigee Edge hiện hỗ trợ một tập hợp con các tiêu đề và lệnh lưu vào bộ nhớ đệm HTTP/1.1 (các tính năng không được hỗ trợ được liệt kê trong chủ đề này) nhận được từ các máy chủ đích (gốc) phụ trợ.
Ngoài ra, với một số tiêu đề nhất định, Edge sẽ thực hiện hành động dựa trên các lệnh của tiêu đề đó. Trong một số trường hợp, các tiêu đề bộ nhớ đệm HTTP/1.1 này sẽ ghi đè mọi hành vi được chỉ định trong chính sách ResponseCache.
Ví dụ: nếu tiêu đề Cache-Control
được trả về từ máy chủ phụ trợ, thì bạn có thể
cho phép lệnh s-maxage
của tiêu đề ghi đè các chế độ cài đặt hết hạn khác
trong chính sách.
Tiêu đề | Hỗ trợ |
---|---|
Cache-Control | Được hỗ trợ trên các phản hồi được trả về từ máy chủ gốc phụ trợ, nhưng không hỗ trợ các yêu cầu của ứng dụng. Edge hỗ trợ một tập con lệnh. |
Ngày hết hạn | Được hỗ trợ. Có thể ghi đè. |
Thẻ thực thể (ETag) | Hành vi cụ thể cho If-Match và If-None-Match. |
If-Modified-Since | Trên các yêu cầu GET, tiêu đề được chuyển đến máy chủ gốc ngay cả khi có mục nhập bộ nhớ đệm hợp lệ. |
Accept-Encoding | Edge gửi phản hồi đã nén hoặc chưa nén tuỳ thuộc vào tiêu đề đến. |
Cache-Control
Apigee Edge chỉ hỗ trợ tiêu đề Cache-Control
trên các phản hồi được trả về từ máy chủ gốc phụ trợ (thông số kỹ thuật HTTP/1.1 cho phép tiêu đề Cache-Control
trong cả yêu cầu của ứng dụng và phản hồi của máy chủ gốc). Máy chủ gốc có thể bao gồm cả điểm cuối mục tiêu được xác định trong proxy API Apigee Edge và các điểm cuối được tạo bằng lệnh gọi API TargetServer.
Hạn chế về việc hỗ trợ Cache-Control
Apigee Edge hỗ trợ một số chức năng của tiêu đề phản hồi Cache-Control
được xác định trong thông số kỹ thuật HTTP/1.1. Xin lưu ý những điều sau:
- Apigee Edge không hỗ trợ các tiêu đề
Cache-Control
đến cùng với các yêu cầu của ứng dụng đến. - Apigee Edge chỉ hỗ trợ khái niệm về bộ nhớ đệm công khai. (Theo thông số kỹ thuật HTTP,
Cache-Control
có thể là công khai (chia sẻ) hoặc riêng tư (một người dùng).) - Apigee Edge chỉ hỗ trợ một tập hợp con các lệnh phản hồi
Cache-Control
trong thông số kỹ thuật HTTP/1.1. Hãy xem phần Hỗ trợ các lệnh trong tiêu đề phản hồi Cache-Control để biết thông tin chi tiết.
Hỗ trợ các lệnh trong tiêu đề phản hồi Cache-Control
Apigee hỗ trợ một số lệnh con trong thông số kỹ thuật HTTP/1.1 về phản hồi từ máy chủ gốc. Bảng sau đây mô tả tính năng hỗ trợ của Apigee Edge cho các lệnh trong tiêu đề phản hồi HTTP Cache-Control.
Để biết thêm thông tin chi tiết về các lệnh được liệt kê ở đây, hãy xem phần Cache-Control trong thông số kỹ thuật HTTP/1.1.
Chỉ thị Cache-Control | Cách Apigee Edge xử lý lệnh |
cache-extension |
Không được hỗ trợ. |
max-age |
Nếu chính sách ResponseCache của bạn đặt phần tử Lệnh này sẽ bị lệnh |
must-revalidate |
Không được hỗ trợ. Apigee Edge sẽ xoá tất cả các mục trong bộ nhớ đệm ngay khi các mục đó hết hạn. |
no-cache |
Edge lưu phản hồi gốc vào bộ nhớ đệm, nhưng phải được xác thực lại với máy chủ gốc trước khi được dùng để đáp ứng mọi yêu cầu tiếp theo của ứng dụng. Quy tắc này cho phép nguồn gốc trả về phản hồi 304 Không sửa đổi để cho biết rằng phản hồi sẽ được trả về từ bộ nhớ đệm, do đó tiết kiệm được quá trình xử lý cần thiết để trả về toàn bộ phản hồi. Nếu máy chủ gốc trả về một phản hồi đầy đủ, thì phản hồi đó sẽ thay thế mục nhập bộ nhớ đệm hiện có. Mọi tên trường được chỉ định bằng lệnh này sẽ bị bỏ qua. |
no-store |
Không được hỗ trợ. |
no-transform |
Không được hỗ trợ. |
private |
Không được hỗ trợ. Nếu nhận được lệnh này, phản hồi gốc sẽ không được lưu vào bộ nhớ đệm. Mọi tên trường đều bị bỏ qua. |
proxy-revalidate |
Không được hỗ trợ. Apigee Edge sẽ xoá tất cả các mục trong bộ nhớ đệm ngay khi các mục đó hết hạn. |
public |
Edge lưu phản hồi gốc vào bộ nhớ đệm, ngay cả khi các lệnh khác cho biết điều ngược lại. Theo thông số kỹ thuật HTTP/1.1, trường hợp ngoại lệ duy nhất đối với quy tắc này là nếu phản hồi bao gồm tiêu đề Uỷ quyền. |
s-maxage |
Nếu chính sách ResponseCache của bạn đặt phần tử Lệnh này ghi đè lệnh |
Ngày hết hạn:
Khi cờ UseResponseCacheHeaders
trong chính sách ResponseCache được đặt thành true
, Edge có thể sử dụng tiêu đề Expires
để xác định thời gian tồn tại (TTL) của một mục đã lưu vào bộ nhớ đệm. Tiêu đề này chỉ định ngày/giờ mà sau đó mục nhập bộ nhớ đệm của phản hồi được coi là cũ. Tiêu đề này cho phép máy chủ báo hiệu thời điểm có thể trả về giá trị được lưu vào bộ nhớ đệm dựa trên dấu thời gian.
Các định dạng ngày được chấp nhận cho tiêu đề Expires
được mô tả trong thông số kỹ thuật HTTP/1.1. Ví dụ:
Ngày hết hạn: 01/12/1994 16:00:00 (giờ GMT)
Để biết thông tin chi tiết về định dạng ngày/giờ HTTP, hãy xem phần Định dạng ngày/giờ trong thông số kỹ thuật HTTP/1.1.
Để biết thêm thông tin về tiêu đề Expires
, hãy xem phần Định nghĩa trường tiêu đề trong quy cách HTTP/1.1.
ETag
Thẻ thực thể (ETag) là một giá trị nhận dạng được liên kết với một tài nguyên được yêu cầu. Khi sử dụng ETag, máy chủ có thể xác định xem tài nguyên được yêu cầu và tài nguyên được liên kết được lưu vào bộ nhớ đệm có khớp nhau hay không. Ví dụ: máy chủ có thể lưu lại phản hồi vào bộ nhớ đệm nếu phản hồi đó không khớp với nội dung hiện đang được lưu vào bộ nhớ đệm. Phương thức này có thể trả về tài nguyên đã lưu vào bộ nhớ đệm nếu ETag khớp.
Khi một điểm cuối mục tiêu gửi phản hồi trở lại Edge bằng ETag, Edge sẽ lưu ETag vào bộ nhớ đệm cùng với phản hồi.
Bạn có thể đọc thêm về Thẻ thực thể trong Tham số giao thức trong quy cách HTTP/1.1.
If-Match
Với tiêu đề yêu cầu If-Match
, một thực thể được lưu vào bộ nhớ đệm là hiện tại nếu ETag trong tiêu đề khớp với ETag được lưu vào bộ nhớ đệm. Mọi yêu cầu khác ngoài GET chỉ định tiêu đề If-Match
sẽ được chuyển đến máy chủ gốc để đảm bảo rằng mọi cơ sở lưu vào bộ nhớ đệm gốc đều có cơ hội xử lý yêu cầu.
Bạn có thể đọc thêm về If-Match
trong phần Định nghĩa trường tiêu đề trong quy cách HTTP/1.1.
Nếu Edge nhận được yêu cầu GET đến từ một ứng dụng khách có tiêu đề If-Match
:
Nếu | Hành động |
---|---|
Tiêu đề If-Match chỉ định một hoặc nhiều ETag |
|
Tiêu đề If-Match chỉ định "*" |
Yêu cầu được chuyển đến máy chủ gốc để đảm bảo rằng mọi cơ sở lưu vào bộ nhớ đệm nguồn gốc đều có cơ hội xử lý yêu cầu |
Tìm thấy một mục trong bộ nhớ đệm có cùng URI yêu cầu, nhưng mục này chỉ chứa ETag yếu | Máy chủ gốc phải xác thực lại mục nhập trước khi trả về cho ứng dụng |
ETag đến từ máy chủ gốc. | ETag được trả về cho ứng dụng khách mà không thay đổi |
If-None-Match
Với tiêu đề If-None-Match
, một thực thể được lưu vào bộ nhớ đệm là hiện tại nếu ETag trong tiêu đề không khớp với ETag được lưu vào bộ nhớ đệm. Các yêu cầu khác ngoài GET có chứa tiêu đề này sẽ được chuyển đến máy chủ gốc.
Nếu Edge nhận được yêu cầu GET đến có tiêu đề này:
Nếu | Hành động |
---|---|
Tiêu đề If-None-Match chỉ định một hoặc nhiều ETag |
|
Tiêu đề |
Edge trả về trạng thái 304 Chưa được sửa đổi |
Tìm thấy một mục trong bộ nhớ đệm có cùng URI yêu cầu nhưng chỉ chứa ETag yếu | Máy chủ gốc phải xác thực lại mục nhập trước khi Edge trả về mục nhập đó cho ứng dụng |
Edge nhận được ETag từ máy chủ gốc | ETag được trả về cho ứng dụng khách mà không thay đổi |
If-Modified-Since
Nếu Apigee Edge nhận được tiêu đề If-Modified-Since
trong một yêu cầu GET, thì tiêu đề này sẽ được chuyển đến máy chủ gốc ngay cả khi có mục bộ nhớ đệm hợp lệ.
Điều này đảm bảo rằng mọi nội dung cập nhật đối với tài nguyên không đi qua Apigee Edge đều được tính đến. Nếu máy chủ gốc trả về một thực thể mới, thì Edge sẽ thay thế mục nhập bộ nhớ đệm hiện có bằng giá trị mới. Nếu máy chủ trả về trạng thái 304 Không thay đổi, Edge sẽ trả về giá trị phản hồi nếu tiêu đề Last-Modified
của phản hồi được lưu vào bộ nhớ đệm cho biết rằng phản hồi đó không thay đổi.
Accept-Encoding
Khi một yêu cầu đến bao gồm tiêu đề Accept-Encoding
có các giá trị là gzip
, deflate
hoặc compress
, máy chủ gốc sẽ phản hồi bằng dữ liệu nén. Khi các yêu cầu tiếp theo không có tiêu đề Accept-Encoding
, chúng sẽ mong đợi một phản hồi không nén. Cơ chế lưu vào bộ nhớ đệm phản hồi của Apigee có thể gửi cả phản hồi nén và không nén tuỳ thuộc vào các tiêu đề đến mà không cần quay lại máy chủ gốc.
Bạn có thể thêm các giá trị tiêu đề Accept vào khoá bộ nhớ đệm để các khoá này có ý nghĩa hơn đối với từng mục được lưu vào bộ nhớ đệm. Để biết thêm thông tin chi tiết, hãy xem phần "Định cấu hình khoá bộ nhớ đệm" trong Chính sách về bộ nhớ đệm phản hồi.