0

Session & Cookie

JSON Web Tokens (JWT) là một cách phổ biến để bảo mật các API và ứng dụng web. Trong bài viết này, chúng ta sẽ khám phá cách JWT có thể được sử dụng để xác thực, bao gồm cách chúng có thể được cấp bởi authentication server và cách chúng có thể được sử dụng để xác thực các yêu cầu API.

Session

Cookie là một đoạn văn bản ghi thông tin được tạo ra và lưu trên trình duyệt của máy người dùng. Cookie thường được tạo ra khi người dùng truy cập một website, cookie sẽ ghi nhớ những thông tin như tên đăng nhập, mật khẩu, các tuỳ chọn do người dùng lựa chọn đi kèm. Các thông tin này được lưu trong máy tính để nhận biết người dùng khi truy cập vào một trang web.

Khi người dùng truy cập đến một trang web có sử dụng cookie, web server của trang đó sẽ tự động gửi cookie đến máy tính của người dùng. Những cookie này tự động được tổ chức trong hệ thống máy tính. Khi truy cập đến các trang web sử dụng được cookie đã lưu, những cookie này tự động gửi thông tin của người dùng về cho chủ của nó (người tạo ra cookie). Tuy nhiên những thông tin do cookie ghi nhận không được tiết lộ rộng rãi, chỉ có website chứa cookie mới có thể xem được những thông tin này. Cookie được xem là một thành phần không thể thiếu được với những website có khối lượng dữ liệu lớn, có số lượng người dùng đông, và có những chức năng đi kèm với thành viên đăng ký. Phần lớn các website này là các website thương mại điện tử.

Session là một khái niệm phổ biến được dùng trong lập trình các website có kết nối với cơ sở dữ liệu database. Đặc biệt các chức năng như đăng nhập, đăng xuất người dùng sẽ khó có thể thực hiện được nếu không sử dụng session.

Session đơn giản là 1 cách để chúng ta lưu lại dữ liệu của người dùng sử dụng website. Giá trị của session được lưu trong một tập tin trên máy chủ. Ví dụ khi bạn đăng nhập vào một trang web và đăng nhập với tài khoản đã đăng ký trước đó. Máy chủ sau khi xác thực được thông tin bạn cung cấp là đúng nó sẽ sinh ra một tập tin (hay chính là session của trình duyệt của bạn) chứa dữ liệu cần lưu trữ của người dùng.

Bạn có thể tuỳ ý quyết định xem nên lưu trữ những thông tin nào vào Session. Nhưng thông thường chúng ta chỉ nên lưu những thông tin tạm thời trong session ví dụ như số lượng sản phẩm người dùng đã thêm vào giỏ nhưng chưa mua, hay những nhật xét đang được viết và lưu dưới dạng nháp nhưng chưa gửi đi. Những dữ liệu sử dụng lâu dài như nội dung nhận xét đã được gửi đi hay số sản phẩm đã được mua thì nên được thực hiện ở máy chủ chứa cơ sở dữ liệu.

Cách phân biệt session của các trình duyệt khác nhau

Sau khi tạo ra một tập tinh session trên máy chủ để lưu trữ dữ liệu tạm thời của người dùng, chúng ta cần phải phân biệt được session nào là của người dùng nào. Để làm điều này thì với mỗi session tạo ra cần phải tạo một cookie tương ứng với nó. Cookie là một mẫu tin nhỏ có thể được trình duyệt tạo ra khi người dùng truy cập vào web và dùng để lưu trữ thông tin của người dùng ở phía trình duyệt (client).

So sánh giữa Cookie và Session

Cookie Session Cookie được lưu trữ trên trình duyệt của người dùng. Session không được lưu trữ trong trình duyệt của người dùng. Dữ liệu cookie được lưu trữ ở phía máy khách. Dữ liệu session được lưu trữ ở phía máy chủ. Dữ liệu cookie dễ dàng sửa đổi khi chúng được lưu trữ ở phía khách hàng. Dữ liệu session không dễ dàng sửa đổi vì chúng được lưu trữ ở phía máy chủ. Dữ liệu cookie có sẵn trong trình duyệt của chúng ta đến khi hết hạn. Dữ liệu session có sẵn cho trình duyệt chạy. Sau khi đóng trình duyệt sẽ mất thông tin session.

Conclusion

Trên đây là cách hiểu của mình về cookie và session và cách phân biệt chúng, mọi góp ý về bài viết xin vui lòng comment ở dưới ạ.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí