Tính năng mới này của Amazon CloudFront thực sự cực kỳ hữu ích cho nhiều trường hợp sử dụng, bởi vì việc đánh dấu nguồn gốc hoạt động hơi khác so với cái nhìn đầu tiên và không nhất thiết là một vấn đề, ngược lại; mặc dù tính năng này đã được phát hành trước đó, nhưng tất cả đều đi kèm với bản phát hành gần đây của Amazon CloudFront - Hỗ trợ cho Nội dung động , ví dụ cho câu hỏi hiện tại:
Thời gian tồn tại có thể thay đổi (TTL) - Trong nhiều trường hợp, nội dung động hoặc không thể lưu vào bộ nhớ cache hoặc có thể lưu vào bộ nhớ cache trong một khoảng thời gian rất ngắn, có thể chỉ vài giây. Trước đây, TTL tối thiểu của CloudFront là 60 phút vì tất cả nội dung được coi là tĩnh. Giá trị TTL tối thiểu mới là 0 giây. Nếu bạn đặt TTL cho một nguồn cụ thể thành 0, CloudFront sẽ vẫn lưu nội dung từ nguồn đó vào bộ nhớ cache . Sau đó, nó sẽ thực hiện một yêu cầu GET với tiêu đề If-Modified-Since , do đó tạo cơ hội cho nguồn gốc để báo hiệu rằng CloudFront có thể tiếp tục sử dụng nội dung được lưu trong bộ nhớ cache nếu nó không thay đổi ở gốc . [nhấn mạnh của tôi]
Nói cách khác, việc sử dụng TTL bằng 0 chủ yếu có nghĩa là CloudFront ủy quyền quyền kiểm soát bộ đệm cho nguồn gốc, tức là máy chủ gốc quyết định có hay không và CloudFront lưu trữ các đối tượng trong bao lâu; xin lưu ý cụ thể rằng yêu cầu GET với tiêu đề If-Modified-Since không nhất thiết có nghĩa là bản thân đối tượng được truy xuất từ nguồn gốc, thay vì nguồn gốc có thể (và nên) trả về mã trạng thái HTTP 304 - Không được sửa đổi nếu có :
Cho biết tài nguyên chưa được sửa đổi kể từ lần yêu cầu cuối cùng. [...]
Sử dụng điều này sẽ tiết kiệm băng thông và xử lý lại trên cả máy chủ và máy khách, vì chỉ dữ liệu tiêu đề phải được gửi và nhận so với toàn bộ trang đang được máy chủ xử lý lại, sau đó được gửi lại bằng cách sử dụng nhiều băng thông hơn của máy chủ và máy khách. [nhấn mạnh của tôi]
Xem Hướng dẫn về bộ nhớ đệm tuyệt vời của Mark Nottingham để biết chi tiết về cơ chế và lợi ích của việc kiểm soát bộ đệm HTTP, một phần thực sự quan trọng và hiệu quả của kiến trúc HTTP.
Việc hiểu cách tất cả các phần này hoạt động cùng nhau thực sự có thể hơi khó khăn, do đó, bảng trong phần Chỉ định Thời gian tối thiểu mà Đối tượng CloudFront Cache để Phân phối tải xuống trong Chỉ định Đối tượng ở trong CloudFront Edge Cache (Hết hạn đối tượng) cố gắng tóm tắt các tác động khi được áp dụng trong ngữ cảnh CloudFront có hoặc không có TTL = 0 cụ thể.