HTTP Caching Là Gì? Một Vài Tham Số HTTP Cache Thông Dụng

Bài viết này sẽ giới thiệu bạn về HTTP Caching và Một Vài Tham Số HTTP Cache Thông Dụng. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.

HTTP caching là bộ nhớ đệm, giúp website tốc độ tải nhanh hơn, Với một website sau khi được tải xuống lần đầu tiên, các website này sẽ được sao lưu lại một bản lưu trữ tại máy để lần truy cập sau sẽ tiết kiệm thời gian tải lại các dữ liệu này lần nữa. Trường hợp website đã được thay đổi nội dung, trong quá trình load web sẽ có một đoạn mã cho phép trình duyệt hiểu đây có phải là bản cập nhật mới nhất của web này chưa, nếu chưa phải trình duyệt sẽ gửi yêu cầu tải dữ liệu web mới nhất.

Một số phương pháp lưu trữ bộ nhớ đệm:

Tham số Last-Modified

Khi trình duyệt web truy cập vào một website, nó sẽ gửi một yêu cầu đến server, Server trả về tham số Last-modified cùng với trang web bạn đang truy cập.

Trình duyệt sẽ lưu tham số này lại, ở lần truy cập tiếp theo sẽ so sánh theo sơ đồ sau:

B1: Browser gửi yêu cầu  kết nối và tải file đến server

B2: Server tìm thấy file yêu cầu

B3: Server kiểm tra phiên bản cache đang lưu tại trình duyệt có phải bản mới nhất.

B4: Server gửi thông báo đã là bản cập nhật mới nhất và không cần cập nhật lại dữ liệu web.

  • Ưu điểm:
  • Nếu file không có sự thay đổi, Server chỉ phải gửi về status 304 với thông báo Not Modified mà không cần phải gửi lại toàn bộ nội dung file cho Client.
  • Nhược điểm:
  • Vẫn phải kết nối đến Server để nhận thông điệp.
  • Server vẫn phải xử lý kiểm tra thời gian thay đổi file.
  • Nếu có phát sinh sai lệch thời gian trên Server thì nội dung file vẫn được gửi xuống Client download mặc dù file đó không hề thay đổi.

Tham số Etag

Trường họp thời gian cài đặt trên máy chủ bị sai có thể gây lỗi cache ở cách trên. Nên ETag ra đời để đánh dấu một mã định danh gắn với file dữ liệu lưu trên server.

Thay vì kiểm tra thời gian , máy chủ sẽ kiểm tra etag theo sơ đồ sau:

B1: Browser gửi yêu cầu tìm dữ liệu đến server , kèm theo mã etag If-None-Match: a0f0145d70

B2: Server Kiểm tra dữ liệu lưu trữ trên server.

B3: Server Kiểm tra mã etag.

B4: Server gửi thông báo etag phù hợp, trường hợp ngược lại server sẽ gửi thông báo để browser tải lại dữ liệu trên server.

  • Ưu điểm:

Khắc phục lỗi không phụ thuộc vào config thời gian của server.

  • Nhược điểm:

Giống như tham số Last-Modified.

Tham số Expries

Các file sẽ được cấp một tem thời gian hết hạn, nếu cache bạn đang lưu trữ sau khoảng thời gian được gắn trên, trình duyệt cần phải tải lại bản sao mới trên server.

Đôi khi browser sẽ không phải gửi yêu cầu kiểm tra đến server và chỉ cần kiểm tra xem thời gian được cho phép trên gói dữ liệu. Nếu quá hạn browser cần tải lại từ server. Việc này sẽ giúp website có tốc độ tải nhanh hơn.

B1: Browser sẽ kiểm tra thời gian trên dữ liệu, nếu phù hợp sẽ load dữ liệu trên browser

B2: Nếu không phù họp sẽ tải lại dữ liệu và sao lưu vào browser.

  • Ưu điểm

Hạn chế được việc Client sẽ gửi requuest để hỏi Server, khi đã làm được như vậy thì Server sẽ rảnh hơn để dành sức và tài nguyên phục vụ những thao tác khác. Ngoài ra thì tham số Expires cũng đã được hỗ trợ từ chuẩn HTTP 1.0 nên nó được sử dụng khá rộng rãi hiện nay.

  • Nhược điểm

Thời điểm file đó vẫn chưa hết hạn (tức là Client vẫn đương nhiên lấy ở Cache) thì phía Server đã thực hiện thay đổi file đó. Như vậy trong trường hợp này Client sẽ không nhận được thông tin file mới ít nhất cho đến khi qua thời điểm hết hạn của file.

Tham số Cache-Control

Các tiêu đề max-age thông báo nói “Tập tin này hết hạn 1 tuần kể từ hôm nay”, đó là đơn giản hơn thiết lập một ngày rõ ràng.

Cụ thể thì tham số này hỗ trợ cấu hình các thông tin như sau:

max-age=[seconds]: định nghĩa khoảng thời gian tối đa mà file được cache (tính từ thời điểm request file), tính bằng đơn vị giây, một số thông tin chuyển đổi cơ bản như sau:

  • 1 day in seconds = 86400
  • 1 week in seconds = 604800
  • 1 month in seconds = 2629000
  • 1 year in seconds = 31536000 (effectively infinite on internet time)

s-maxage=[seconds]: tương tự như max-age nhưng thông số này chỉ được sử dụng cho shared caches (VD: Proxy caches).

public: cho phép file được cache bởi các Proxy và các server trung gian.

private: file có giá trị khác nhau cho các Client khác nhau, Browser có thể cache nhưng Proxy thì không.

no-cache: không được phép cache file này, thường được sử dụng cho những trang kết quả tìm kiếm, mặc dù URL là giống nhau nhưng nội dung có thể thay đổi khác nhau.

no-store: chỉ thị cho Client biết không được phép tạo một bản copy của file và lưu trữ dưới bất kỳ hình thức nào.

must-revalidate: chỉ thị bắt buộc phải validate lại với Server khi sử dụng file đã được cache.

proxy-revalidate: tương tự như must-revalidate nhưng chỉ áp dụng cho các Proxy caches.

THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST:

>> SERVERCOLOCATION CDN

>> CLOUDVPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

Was this article helpful?