Caching là gì? Và tại sao nó lại giúp bạn cải thiện tốc độ, hiệu suất website

Vài lời của người biên tập: trong bài viết này chúng ta sẽ hiểu khái niệm cơ bản liên quan đến caching, cả ở cấp độ trình duyệt lẫn hệ thống CDN. Giải thích tại sao caching lại giúp tăng tốc độ truy cập web.


Caching (lưu vào bộ nhớ đệm) là quá trình lưu trữ các bản sao file (gồm nhiều định dạng) vào trong bộ nhớ cache, hoặc vị trí lưu trữ tạm thời (temporary storage location), để chúng có thể được truy cập nhanh hơn. Về mặt kỹ thuật, bộ nhớ cache là bất kỳ vị trí lưu trữ tạm thời nào cho các bản sao của tệp hoặc dữ liệu, nhưng thuật ngữ này thường được sử dụng để chỉ các công nghệ Internet. Trình duyệt web thực hiện lưu cache cho file HTML, JavaScript, và hình ảnh để trang web tải nhanh hơn, trong khi máy chủ DNS thực hiện cache các bản ghi DNS cho mục đích tra cứu nhanh hơn, còn CDN thì cache nội dung để giảm độ trễ (latency).

Để hiểu cách thức hoạt động của bộ nhớ đệm, hãy xem xét ví dụ về “bộ nhớ đệm thực phẩm và các nguồn cung khác” trong thế giới thực được áp dụng như thế nào. Khi nhà thám hiểm Roald Amundsen thực hiện chuyến hành trình trở về từ chuyến đi đến Nam Cực vào năm 1912, ông và những người của mình đã sống nhờ vào các kho thực phẩm mà họ đã dự trữ trên đường đi. Điều này hiệu quả hơn nhiều so với việc chờ đợi các nguồn cung cấp được chuyển đến trại căn cứ của họ khi họ di chuyển. Bộ nhớ cache trên Internet phục vụ mục đích tương tự, chúng tạm thời lưu trữ ‘nguồn cung’ hoặc nội dung cần thiết để người dùng thực hiện hành trình của họ trên thế giới web / internet.

Bộ nhớ cache của trình duyệt có nhiệm vụ gì?

Mỗi khi người dùng tải một trang web, trình duyệt của họ phải tải xuống khá nhiều dữ liệu để hiển thị trang web đó. Để rút ngắn thời gian tải trang, trình duyệt lưu vào bộ nhớ cache hầu hết nội dung xuất hiện trên trang web, lưu một bản sao nội dung của trang web vào ổ cứng của thiết bị. Bằng cách này, lần sau khi người dùng tải trang, hầu hết nội dung đã được lưu trữ cục bộ và trang sẽ tải nhanh hơn nhiều.

Trình duyệt lưu trữ các tệp này cho đến khi hết thời gian tồn tại (TTL / Time To Live) của chúng hoặc cho đến khi bộ nhớ cache của ổ cứng đầy. (TTL là thông tin cho biết nội dung sẽ được lưu trong bộ nhớ cache trong bao lâu). Người dùng cũng có thể xóa bộ nhớ cache của trình duyệt nếu muốn.

Xóa bộ nhớ cache của trình duyệt sẽ thực hiện được gì?

Sau khi bộ nhớ cache của trình duyệt bị xóa, mọi trang web sẽ tải như thể đó là lần đầu tiên người dùng truy cập trang. Nếu nội dung nào đó được tải không chính xác trong lần đầu tiên và đã được lưu vào bộ nhớ đệm, việc xóa bộ nhớ cache có thể giúp nó tải chính xác. Tuy nhiên, xóa bộ nhớ cache của trình duyệt cũng có thể tạm thời làm chậm thời gian tải trang.

CDN caching là gì?

CDN hoặc mạng phân phối nội dung, lưu trữ nội dung (chẳng hạn như hình ảnh, video hoặc trang web) trong máy chủ proxy được đặt gần người dùng cuối hơn máy chủ gốc. (Máy chủ proxy là máy chủ nhận yêu cầu từ máy khách và chuyển chúng đến các máy chủ khác). Vì máy chủ gần với người dùng thực hiện yêu cầu hơn, CDN có thể phân phối nội dung nhanh hơn.

caching CDN là gì

Hãy nghĩ về mạng CDN giống như một chuỗi các cửa hàng tạp hóa: thay vì bạn phải đi tất cả các trang trại nơi thực phẩm được trồng để làm bữa tối- điều này có thể lên đến hàng trăm kilomet, bạn đi đến cửa hàng tạp hóa ở địa phương của bạn, tuy rằng vẫn phải bước ra khỏi nhà đấy nhưng gần hơn nhiều. Bởi vì các cửa hàng tạp hóa dự trữ thực phẩm từ các trang trại xa xôi, việc mua sắm thực phẩm do vậy chỉ mất vài phút thay vì vài ngày. Tương tự, CDN lưu trữ ‘kho’ nội dung xuất hiện trên Internet để các trang web tải nhanh hơn nhiều.

Khi người dùng yêu cầu nội dung từ một trang web bằng CDN, CDN sẽ tìm nạp nội dung đó từ máy chủ gốc, sau đó lưu bản sao nội dung cho các yêu cầu sau này. Nội dung được lưu trong bộ đệm vẫn còn trong bộ đệm CDN miễn là người dùng tiếp tục yêu cầu nội dung đó.

Cache CDN hit là gì? Cache miss là gì?

Cache hit là khi một thiết bị máy khách thực hiện yêu cầu đối với nội dung trong bộ nhớ cache và bộ nhớ cache đã lưu nội dung đó. Cache miss xảy ra khi bộ nhớ cache không có nội dung được yêu cầu.

Khi có cache hit, có nghĩa là nội dung sẽ có thể tải nhanh hơn nhiều, vì CDN có thể ngay lập tức cung cấp nội dung đó cho người dùng cuối. Trong trường hợp bộ nhớ cache không có (cache miss), máy chủ CDN sẽ chuyển yêu cầu qua máy chủ gốc, sau đó lưu nội dung vào bộ nhớ cache khi máy chủ gốc phản hồi, nhờ đó các yêu cầu tiếp theo sẽ dẫn đến việc truy cập bộ nhớ cache- tức là sẽ nhanh hơn (cache hit).

Máy chủ caching CDN được đặt ở đâu?

Máy chủ caching CDN được đặt tại các trung tâm dữ liệu trên toàn cầu. Cloudflare có các máy chủ CDN tại 200 thành phố trải rộng khắp thế giới để người dùng cuối truy cập nội dung càng gần càng tốt. Vị trí có máy chủ CDN còn được gọi là trung tâm dữ liệu (data center).

Dữ liệu đã lưu trong bộ nhớ cache sẽ tồn tại trong máy chủ CDN trong bao lâu?

Khi các trang web phản hồi với máy chủ CDN bằng nội dung được yêu cầu, chúng cũng đính kèm TTL của nội dung đó, cho máy chủ CDN biết thời gian lưu trữ nó. TTL được lưu trữ trong một phần của phản hồi được gọi là HTTP header và nó chỉ định nội dung sẽ được lưu trong bộ nhớ cache trong bao nhiêu giây, phút hoặc giờ. Khi TTL hết hạn, bộ nhớ đệm sẽ xóa nội dung. Một số CDN cũng sẽ sớm xóa các tệp khỏi bộ đệm nếu nội dung không được yêu cầu trong một khoảng thời gian nào đấy hoặc nếu khách hàng CDN tự xóa nội dung nhất định theo cách thủ công.

Các loại bộ nhớ đệm khác hoạt động như thế nào?

Bộ nhớ đệm DNS diễn ra trên các máy chủ DNS. Các máy chủ lưu trữ các tra cứu DNS gần đây trong bộ nhớ cache của chúng để chúng không phải truy vấn máy chủ định danh (nameservers) và có thể trả lời ngay lập tức địa chỉ IP của một tên miền.

Công cụ tìm kiếm có thể lưu vào bộ nhớ cache các trang web thường xuyên xuất hiện trong kết quả tìm kiếm để trả lời các truy vấn của người dùng ngay cả khi trang web mà họ đang cố truy cập tạm thời ngừng hoạt động hoặc không thể phản hồi.

Cloudflare sử dụng bộ nhớ đệm như thế nào?

Cloudflare cung cấp hệ thống CDN với hơn 200 PoP được phân phối trên toàn cầu. Cloudflare cung cấp dịch vụ caching CDN miễn phí, trong khi khách hàng CDN trả phí có thể tùy chỉnh cách nội dung của họ được lưu vào bộ nhớ đệm. Mạng là Anycast, có nghĩa là cùng một nội dung có thể được phân phối từ bất kỳ trung tâm dữ liệu nào trong số này. Một người sử dụng ở London và người dùng ở Sydney, cả hai có thể xem cùng một nội dung được tải từ máy chủ CDN chỉ cách có một vài km.

(Dịch từ bài viết What is caching? của Cloudflare)