Giải thích sự khác biệt giữa Cookie, Session Storage và Local Storage?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
792 lượt xem
Html/CSS middle

A. Cookie:

  • Không gian lưu trữ hạn chế 4096 byte / ~ 4 kb.
  • Chỉ cho phép lưu trữ dữ liệu dưới dạng chuỗi.
  • Dữ liệu đã lưu trữ được gửi trở lại máy chủ theo mọi HTTP Request như HTML, CSS, Hình ảnh, v.v.
  • Chỉ có thể lưu trữ 20 cookie cho mỗi domain.
  • Tổng cộng 300 cookie được phép trên một trang web.
  • Đặt cờ HTTP only sẽ ngăn truy cập cookie qua javascript.
  • Có thể đặt thời gian hết hạn để tự động xóa (có thể được đặt từ server hoặc client).

Ví dụ:

// Set with expiration & path
document.cookie = "name=Gokul; expires=Thu, 18 Dec 2016 12:00:00 UTC; path=/;";
// Get
document.cookie;
// Delete by setting empty value and same path
document.cookie = "name=; expires=Thu, 18 Dec 2016 12:00:00 UTC; path=/;";

B. Session Storage:

  • Không gian lưu trữ là 5 mb / ~ 5120 kb.
  • Không gian lưu trữ có thể thay đổi một chút tùy theo trình duyệt.
  • Chỉ cho phép lưu trữ dữ liệu dưới dạng chuỗi.
  • Dữ liệu có sẵn trên mỗi window hoặc tab.
  • Sau khi đóng window hoặc tab, dữ liệu được lưu trữ sẽ bị xóa.

Ví dụ:

// Set
sessionStorage.setItem("name", "gokul");
// Get
sessionStorage.getItem("name"); // gokul
// Delete
sessionStorage.removeItem("name");
// Delete All
sessionStorage.clear();

C. Local Storage:

  • Không gian lưu trữ là 5 mb / ~ 5120 kb.
  • Không gian lưu trữ có thể thay đổi một chút tùy theo trình duyệt.
  • Chỉ cho phép lưu trữ dữ liệu dưới dạng chuỗi.
  • Dữ liệu sẽ chỉ có sẵn trên cùng một origin.
  • Dữ liệu không có giới hạn tồn tại (cho đến khi bị xóa).

Ví dụ:

// Set
localStorage.setItem("name", "gokul");
// Get
localStorage.getItem("name"); // gokul
// Delete
localStorage.removeItem("name");
// Delete All
localStorage.clear();
{{login.error}}