Web caching (P1)


Câu chuyện hư cấu 1:
A: *** hiểu sao code tao chỉnh sửa rồi mà deploy lên *** thấy thay đổi gì?
B: Mày đã xóa cache chưa vậy?
A: Làm sao để biết có cache hay không. Mà cache làm *** gì để suốt ngày phải xóa. Mất công, mất việc.
One few moments later ...
A: Xóa hết cache trình duyệt rồi, sao vẫn ko thay đổi code đã chỉnh sửa mày ơi.
B: Ờ, cũng *** biết, đọc bài ở dưới xem sao :))
Câu chuyện hư cấu 2:
C: Sao dạo này con web của tao nó chạy chậm thế nhờ? Có cách nào ko mày?
D: Thế mày đã caching cho nó chưa?
C: Tao đang nói web chạy chậm mà, có khi do code lởm mà, cache ciếc gì ở đây. Mà cache là cái gì vậy?
D: Thôi đọc bài ở dưới đi rồi nói chuyện tiếp :))

Ok, qua 2 câu chuyện hư cấu trên, chắc các bạn cũng mường tượng được ưu, nhược điểm của Caching rồi đúng không? Vậy trong bài viết này, mình sẽ trình bày về Caching để các bạn hiểu vì sao nó lại quyền năng mà cũng lại rắc rối như thế.Hôm nay chúng ta cùng tìm hiểu về vấn đề này nhé.

Mục lục
  1. Đường đi của 1 request.
  2. Browser caching.
  3. CDN caching
1. Đường đi của 1 request
Hình 1. Đường đi của 1 request

2. Browser caching.

Theo như H1, chúng ta thấy rằng user muốn truy cập vào 1 website thì phải đi qua Web browser trước. Vậy bạn nghĩ sao nếu toàn bộ nội dung của website đấy đã được trình duyệt lưu lại. Nếu bạn nghĩ đến điều đấy thì tức là bạn đang nghĩ đến caching đấy.
  • Cơ chế
    • Các resource (js, css, image) từ 1 website sẽ được browser lưu trữ ở 1 phân vùng ổ cứng mà browser được phép truy cập.
    • Các request đến các resource này sẽ kiểm tra trực tiếp từ phân vùng ổ cứng này để sử dụng (nếu còn valid) thay vì request lên server.
    • Resource tồn tại được quy định ở thời gian expired.

Hình 2.Resource được cache trên Browser
Hình 3. Resource expired time

  • Ưu điểm
    • Giảm lượng request lên server.
    • Tăng tốc độ load trang (do tiết kiệm thời gian download resources).
  • Nhược điểm
    • Nội dung website sẽ không thay đổi ngay lập tức khi update code mới.
3. CDN caching.
  • CDN là gì?
    • Dịch vụ CDN là mạng lưới gồm nhiều máy chủ lưu trữ đặt tại nhiều vị trí địa lý khác nhau, cùng làm việc chung để phân phối nội dung, truyền tải hình ảnh, CSS, Javascript, Video clip, Real-time media streaming, File download đến người dùng cuối. Cơ chế hoạt động của CDN giúp cho khách hàng truy cập nhanh vào dữ liệu máy chủ web gần họ nhất thay vì phải truy cập vào dữ liệu máy chủ web tại trung tâm dữ liệu.
  • Cơ chế:
    • Cơ chế tương tự Browser web. Các resource (js, css, image) từ 1 website sẽ được lưu trữ tại các CDN server trên thế giới.
    • hững request thay vì tải từ server sẽ tải ở các CDN server gần nhất.
Hình 4.Resource nhận biết được cache trên CDN
  • Ưu điểm:
    • Giảm lượng request lên server.
    • Tăng tốc độ load trang (do tiết kiệm thời gian download resources)
    • Resource không chỉ sử dụng cho 1 người dùng như browser mà còn cung cấp cho lượng lớn người dùng.
  • Nhược điểm:
    • Nội dung website sẽ không thay đổi ngay lập tức khi update code mới.
    • Nội dung sẽ không được update đồng thời từ các CDN server, dẫn đến cùng 1 trang web 2 người dùng sẽ thấy 2 cái khác nhau.
Hôm nay tạm thời dừng lại ở đây nhé các bạn,ở bài sau mình sẽ nêu ra một số bài toán ứng dụng caching giải quyết.


Nhận xét

Bài đăng phổ biến từ blog này

Cài đặt SSL cho website sử dụng certbot

Xây dựng một hệ thống comment real-time hoặc chat đơn giản sử dụng Pusher

CÁC BÀI TẬP SQL CƠ BẢN - PART 1

Xây dựng một hệ thống tracking hành vi người dùng (phần 1)

Xây dựng một hệ thống tracking hành vi người dùng (phần 2)

Enterprise architecture trên 1 tờ A4

Web caching (P2)

Bàn về async/await trong vòng lặp javascript

Cài đặt môi trường để code website Rails