Tái cấu trúc Cache cho Blog: Khi khán giả chính là các Bot và AI
Tác giả đã sử dụng AI để giải quyết 30 năm bối rối về HTTP caching trên blog cá nhân, chuyển đổi chiến lược tối ưu hóa từ người dùng sang các bot và trình thu thập dữ liệu AI. Bài viết chia sẻ hành trình làm chủ Cloudflare Workers và tầm quan trọng của caching trong kỷ nguyên trí tuệ nhân tạo.

Tôi có một lọ ốc vít lộn xộn trên bàn làm việc. Trong nhiều năm, tôi cứ phải lục lọi trong đó để tìm chiếc đúng kích cỡ, và thường là không thấy. Tuần trước, tôi đã phân loại chúng: theo loại, theo ren, theo chiều dài. Tôi đã dùng ChatGPT để hỗ trợ: chụp ảnh một nắm ốc, hỏi xem đó là cái gì, và nắm rõ cách phân loại. Khi có thể gọi tên chúng, tôi có thể sắp xếp chúng. Bạn chỉ có thể sắp xếp những thứ bạn thực sự hiểu.
HTTP caching từng là "lọ ốc vít" của tôi.
Ba mươi năm trong sương mù
Tôi đã xây dựng các trang web từ những năm đầu thập niên 90. Caching luôn ở đó, đâu đó trong nền tảng, lặng lẽ làm việc của nó. Tôi biết đủ để nhận ra sự tồn tại của nó, nhưng chưa đủ để kiểm soát thực sự. Các header Cache-Control, giá trị TTL, hành vi tại biên (edge behavior), sự khác biệt giữa những gì CDN lưu cache và trình duyệt giữ lại, những gì bị vô hiệu hóa khi nào và tại sao. Mỗi khi tôi nghiêm túc tiếp cận vấn đề này, tôi lại va phải một bức tường ngữ cảnh mà tôi chưa thực sự nắm rõ.
Tài liệu kỹ thuật thì có. Các khái niệm không phải bí mật. Nhưng caching là một trong những lĩnh vực mà khoảng cách giữa việc hiểu từ vựng và khả năng áp dụng đúng cách một cách đáng kinh ngạc. Tôi đọc, gật đầu, triển khai một cái gì đó có vẻ hợp lý, và rồi tiếp tục công việc với những nghi ngờ lơ lửng.
Năm nay, khi làm việc với Claude, mọi thứ đã thay đổi. Sự so sánh này thực ra khá sát thực. Tôi đã có các mảnh ghép ngay trước mắt trong nhiều năm. Điều tôi thiếu là một người giải thích xem tôi đang nhìn cái gì.
Thống kê Cache
Công cụ mới
Chúng tôi đã cùng nhau đi qua toàn bộ vấn đề. Cloudflare Workers của tôi thực sự đang làm gì. Các header nào đang được gửi và tại sao. Trình duyệt sẽ cache cái gì so với những gì máy chủ biên (edge) sẽ cache. Sự không nhất quán nằm ở đâu. Một chiến lược mạch lạc sẽ trông như thế nào cho một trang web như của tôi: một blog cá nhân quy mô vừa phải với độc giả toàn cầu, chạy trên nền tảng Ghost, phục vụ qua Cloudflare.
Mọi chuyện chỉ mất một buổi chiều. Không phải vì chủ đề trở nên đơn giản hơn, mà vì lần đầu tiên tôi có một "công cụ" có thể nắm giữ toàn bộ sự phức tạp cùng tôi. Đặt câu hỏi, nhận câu trả lời được hiệu chỉnh cho chính cấu hình của tôi, theo một luồng tư duy, sửa đổi, triển khai, kiểm tra. Sự qua lại từng đòi hỏi một chuyên gia hoặc nhiều tuần thử nghiệm và sai lầm giờ đã được nén vào một quy trình có thể quản lý được.
Kết quả là một chiến lược caching mà tôi thực sự hiểu rõ. Các header có ý nghĩa đúng như tôi mong muốn. Hành vi tại biên nhất quán. Các quy tắc mà tôi có thể đọc lại và giải thích.
Khán giả đã thay đổi
Lý do khiến vấn đề này trở nên cấp bách không phải là các chỉ số hào nhoáng hay điểm số PageSpeed. Đó là sự thay đổi về những người thực sự đang đọc.
Khách truy cập con người vẫn ở đó. Nhưng một phần ngày càng tăng trong lưu lượng truy cập vào một trang web như của tôi hiện nay đến từ các trình thu thập thông tin (crawlers): trình lập chỉ mục tìm kiếm, các pipeline huấn luyện AI, hệ thống truy xuất phục vụ nội dung cho các tác nhân (agent) thay vì trình duyệt. Những hệ thống này không hiển thị (render) trang. Chúng không chờ đợi JavaScript. Chúng gửi yêu cầu, nhận phản hồi và chuyển sang mục khác. Đối với chúng, caching không phải là sự tiện lợi. Nó là cơ chế chính xác định chi phí, độ trễ và độ tin cậy của việc truy cập.
Nếu bạn quan tâm đến việc nội dung của mình lưu truyền trên thế giới như thế nào hiện nay, bao gồm cả qua các hệ thống AI, bạn phải quan tâm đến caching. Không phải như một tối ưu hóa hiệu suất cho trình duyệt của con người, mà như một hạ tầng cho độc giả máy móc.
Sự định hình lại này đã thay đổi những gì tôi tối ưu hóa. HTML được lưu cache tại biên, toàn cầu, với các header nhất quán và thời gian hết hạn có thể dự đoán. Không phải vì tôi mong đợi một người ở Singapore tiết kiệm được 200ms thời gian tải trang, mà vì yêu cầu tiếp theo cho trang đó nhiều khả năng sẽ đến từ một hệ thống truy xuất hơn là trình duyệt, và yêu cầu sau nữa, và yêu cầu tiếp theo nữa.
Tiered Cache Cloudflare
Những gì công cụ mang lại
Bản thân việc caching không phải là mới. Các khái niệm đã có hàng thập kỷ. Điều thay đổi là tôi cuối cùng có thể nhìn thấy hệ thống đủ rõ để định hình nó. Với đúng công cụ, một lĩnh vực từng mờ mịt trong ba mươi năm đã trở nên khả thi trong một phiên làm việc.
Đó không phải là một điều nhỏ nhặt. Vẫn còn những lọ ốc vít khác trên bàn làm việc.
Chiến lược caching được mô tả ở đây đã được triển khai sử dụng Cloudflare Workers, Cache Rules và D1 để ghi nhật ký yêu cầu. Một bảng điều khiển thống kê cache công khai cho thấy sự phân bổ hiện tại của lưu lượng truy cập theo loại: con người, trình thu thập thông tin AI, trình thu thập thông tin SEO và không xác định.


