Ví dụ về việc sử dụng kết hợp giữa Session và cookie trong lập trình web

Nội dung bài viết

Chào bạn, chắc khá nhiều bạn đang học lập trình không phân biệt được sự khác nhau giữa session và cookie . Khi nào thì dùng chúng Hôm nay anh sẽ trình bày nguyên lý và sự khác nhau của session và cookie cũng như khi nào mình sẽ sử dụng nó.

1. Session là gì

Một session hay còn gọi là một phiên làm việc. Nó là cách giao tiếp giữa client [trình duyệt web] với server. Một session bắt đầu khi client gửi request đến server, nó tồn tại xuyên suốt từ trang này đến trang khác trong ứng dụng và chỉ kết thúc khi hết thời gian timeout hoặc khi bạn đóng ứng dụng tắt trình duyệt . Giá trị của session sẽ được lưu trong một tệp tin trên máy chủ. Chúng chỉ nên lưu trữ những thông tin tạm thời trong session Với mỗi session sẽ được cấp phát một định danh duy nhất SessionID. Khi kết thúc một phiên làm việc và bắt đầu một phiên mới, chúng ta sẽ nhận được một session ID khác.

Sau khi server tạo các giá trị session, server sẽ tạo ra một tệp tin cookie lưu trên trình duyệt của người dùng ứng với session đó. Như vậy chỉ cần so sánh tệp tin cookie bên phía client được gửi lên server và tệp session được lưu trên server để xem làm trình duyệt đó là mới hay cũ.

2. Cookie là gì

Cookie cũng được dùng để lưu những thông tin tạm thời. Tệp tin cookie sẽ được truyền từ server tới browser và được lưu trữ trên máy tính của bạn khi bạn truy cập vào ứng dụng. Như vậy dù có tắt browser cũng không mất đi các giá trị vì chúng ta đã lưu nó trên máy tính của mình.

3. So sánh session và cookie

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ữ trên trình duyệt.
Dữ liệu cookie được lưu trữ ở phía client. Dữ liệu session được lưu trữ ở phía server.
Dữ liệu cookie dễ dàng sửa đổi hoặc đánh cắp khi chúng được lưu trữ ở phía client 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 đến khi expired. Sau khi đóng trình duyệt sẽ hết phiên làm việc [session]

4. Session và Cookie được dùng ở đâu

Chúng ta thường sử dụng Session và Cookie để lưu tạm các giá trị tại một thời điểm nào đó trong một khoản thời gian ngắn và nhất định. Thông thường trong các ứng dụng mình có thể lưu dữ liệu ở database [nếu dữ liệu muốn lưu từ 1 năm trở lên], ngoài database chúng ta có thể lưu trữ trong file hoặc lưu trữ tạm trên RAM.

Những chức năng lưu giá trị tạm thời tại một thời điểm ngắn thì mình có thể dùng session và cookie để làm việc này. Anh ví dụ như chức năng giỏ hàng trong các ứng dụng mua hàng. Ví dụ như ứng dụng mua hàng lazada, mình có thể chọn sản phẩm mình cần mua sau đó thêm nó vào giỏ hàng, sau đó mình tiếp tục mua các sản phẩm khác. Khi thanh toán giỏ hàng thì mình sẽ duyệt qua một mảng danh sách các sản phẩm mà mình đã lưu trước đó. Như vậy mình sẽ dùng session để lưu trữ danh sách các sản phẩm. Nhờ có session mà mình có thể lưu tạm thời dữ liệu và thao tác với nó. Vì các dữ liệu lưu trong session chỉ tồn tại trong 1 phiên giao dịch [khi tắt browser thì sẽ mất hết giá trị lưu trong session] nên mình thường sử dụng chung session với cookie để lưu trữ dữ liệu lâu hơn. Các em tưởng tượng nếu mình dùng session ở trên để lưu giỏ hàng thì khi người dùng tắt máy các sản phẩm trong giỏ hàng sẽ bị mất. Muốn giữ lại các sản phẩm mà người dùng đã chọn cho dù họ tắt trình duyệt hoặc tắt máy. Hôm sau họ vào thì họ vẫn thấy được các sản phẩm trong giỏ hàng thì mình sẽ kết hợp với cookie để lưu giá trị . Vì cookie sẽ lưu trên máy người dùng nên nó sẽ không mất đi, nó mất đi khi thời gian sống hết hạn[cái này do lập trình viên cấu hình]. Chính vì vậy mà các em thấy các trang web mua bán sản phẩm họ thường kết hợp cả hai để tăng doanh thu. Vì hôm nay mình chọn sản phẩm ở giỏ hàng mà mình chưa mua thì ngày mai khi mình vào lại thì trang web sẽ nhắc nhở mình có các sản phẩm cần thanh toán.

Như các em thấy các ứng dụng ngày nay khi muốn vào ứng dụng thì nó bắt mình đăng nhập tên và mật khẩu , sau đó có thêm cái checkbox [nhớ đăng nhập]. Nếu mình chọn cái checkbox đó thì lần sau mình không cần phải đăng nhập tên và mật khẩu nữa. Vì lúc này mình đã dùng cookie để lưu lại lần đăng nhập đầu tiên của người dùng. Cookie này sẽ hết hạn [ví dụ cookie sống trong vòng 30 ngày] thì lúc đó người dùng sẽ phải đăng nhập lại. Anh lấy ví dụ như ứng dụng facebook mình chỉ đăng nhập lần đầu tiên thôi lần sau mình vào thẳng luôn trang chủ của facebook mà không cần phải điền lại tên và mật khẩu.

5. Demo Video

7. Source code Session

Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm

Session và Cookie có lẽ là 2 khái niệm thường được nhắc đến trong lập trình web. Khi mới bước chân vào mảng này, có rất nhiều bạn vẫn hay nhầm lẫn giữa 2 khái niệm trên. Trong bài viết này, mình sẽ giúp các bạn phân biệt được sự khác nhau giữa Session và Cookie nhé.

  • 5 lưu ý khi chọn ngành, chọn nghề học sinh THPT cần nắm vững
  • Cách đọc UML Class Diagram
  • Tại sao Java không có cơ chế để Override thuộc tính của instance
  • Top 10 khóa học lập trình Java online dành cho người mới bắt đầu
  • Các phương pháp tự học lập trình web trực tuyến tốt nhất

Tổng quan

Session và Cookie đều được sử dụng để lưu trữ thông tin. Nhưng Cookie chỉ được lưu trữ trên máy phía Client side, trong khi đó, Session lại được lưu trữ trên cả Client side và Server side.

Session

Session là một biến toàn cục được lưu trữ trên máy chủ. Mỗi Session được gán một id là duy nhất được sử dụng để truy xuất các giá trị được lưu trữ. Bất cứ khi nào một Session được tạo, một Cookie chứa id Session duy nhất sẽ được lưu trữ trên máy tính của người dùng và được trả lại với mọi yêu cầu đến máy chủ. Nếu trình duyệt máy khách không hỗ trợ Cookie, id Session duy nhất được hiển thị trong URL. Session có khả năng lưu trữ dữ liệu tương đối lớn so với Cookie.

Các giá trị Session sẽ tự động bị xóa khi đóng trình duyệt. Nếu bạn muốn lưu trữ các giá trị vĩnh viễn, thì bạn nên lưu trữ chúng trong cơ sở dữ liệu.

Cookie

Cookie là các tệp văn bản được lưu trữ trên Client side và chúng được giữ cho mục đích theo dõi sử dụng. Tập lệnh máy chủ gửi một bộ Cookie đến trình duyệt. Ví dụ: tên, tuổi hoặc số nhận dạng,…. Trình duyệt lưu thông tin này trên máy khách để sử dụng trong tương lai.

Khi trình duyệt lần sau gửi bất kỳ yêu cầu nào đến máy chủ web thì nó sẽ gửi thông tin Cookie đó đến máy chủ và máy chủ sử dụng thông tin đó để nhận dạng người dùng.

Sự khác nhau giữa Session và Cookie

Session Cookie
Session là các tệp phía máy chủ chứa thông tin người dùng Cookie là các tệp phía máy khách chứa thông tin người dùng
Một Session kết thúc khi người dùng đóng trình duyệt Cookie kết thúc tùy thuộc vào thời gian bạn đặt cho nó
Trong PHP, trước khi sử dụng $ _SESSION, bạn phải viết Session_start []; Tương tự như vậy đối với các ngôn ngữ khác Không cần phải khởi động Cookie vì nó được lưu trữ trong máy của bạn
Có thể lưu trữ bao nhiêu dữ liệu tùy thích. Giới hạn duy nhất bạn có thể đạt được là bộ nhớ tối đa mà tập lệnh có thể tiêu thụ cùng một lúc, là 128 MB theo mặc định Kích thước Cookie tối đa là 4KB
Một Session phụ thuộc vào Cookie Một Cookie không phụ thuộc vào Session
Session_destroy []; được sử dụng để hủy tất cả dữ liệu đã đăng ký Không có hàm tên unsetCookie []

Author: Mai Công Sơn

Đăng ký nhận bộ tài liệu học Java trên 2 trang giấy tại đây

Xem thêm:Java Coding Bootcamp là gì? Tổng quan về Java Coding Bootcamp

Video liên quan

Chủ Đề