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ó. Show 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
4. Session và Cookie được dùng ở đâuChú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ềmSession 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é.
Tổng quanSession 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. SessionSession 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. CookieCookie 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
Author: Mai Công Sơn
|