Session là gì? Session có giống với Cookie hay không? Và cách để sử dụng Session như thế nào? Những vấn đề này sẽ được Tino Group giải đáp giúp bạn trong bài viết.
Session là gì?
Trong công nghệ thông tin nói chung, từ Session có nghĩa là một khung tham chiếu thời gian nhất định để 2 thiết bị, 2 hệ thống hay hai phần nào đó của một hệ thống có thể giao tiếp với nhau.
Đối với lập trình web và đặc biệt hơn là lập trình web có kết nối với cơ sở dữ liệu, Session là một chuỗi các sự kiện người dùng sử dụng trình duyệt để thao tác với website của bạn, từ lúc click chuột vào trang cho đến lúc họ thoát ra khỏi trang của bạn.
Bạn có thể thấy, đăng nhập và đăng xuất là một trong những cách Session được ứng dụng.
Session hoạt động như thế nào?
Trong thực tế, một Session sẽ bao gồm toàn bộ những dữ liệu xuyên suốt quá trình người dùng thao tác trên trang web, hoặc web app của bạn. Mỗi khi có một người dùng truy cập vào website, họ sẽ được cấp 1 ID để bắt đầu một Session; các tài nguyên, dữ liệu này sẽ được lưu trữ lại trong ID Session được cấp.
Tùy theo mỗi trang web, web app, các nguồn tài nguyên/ dữ liệu có thể là:
- Các trang web người dùng đã xem
- Những thông tin người dùng đã nhập vào biểu mẫu
- Những mặt hàng người dùng vừa xem trên các trang thương mại điện tử hoặc trong giỏ hàng.
Thời gian của mỗi Session này được thiết lập tùy theo từng nhà phát triển. Ví dụ, với Google Analytics mỗi Session sẽ hết hạn sau 30 phút. Sau 30 phút, 1 ID Session mới sẽ được cấp cho người dùng và thiết lập một phiên mới.
Phiên làm việc các nhà phát triển có thể quy định như sau:
- Tối thiểu là 5 phút.
- Tối đa là 1440 phút (cả ngày).
Hầu hết các trang web có lượng người dùng cao đều sẽ lưu thông tin Session vào trong cache. Nhằm để truy xuất thông tin một cách nhanh chóng và hiệu quả hơn.
Vì sao nên sử dụng Session?
Với xu hướng thương mại điện tử đang bùng nổ trong thời kỳ COVID như hiện tại, Tino Group sẽ lấy ví dụ về thương mại điện tử để phân tích cho bạn dễ hiểu và thân thuộc hơn nhé!
Nếu bạn phát triển một trang thương mại điện tử bằng Woocommerce trên nền tảng WordPress chẳng hạn. Việc sử dụng Session là vô cùng cần thiết bởi vì:
Bạn có thể tạo ra nhiều ID Session để gửi thông tin của người dùng về server vừa đảm bảo được quyền riêng tư của người dùng. Mỗi một hành động của người dùng với website thương mại điện tử của bạn sẽ được ghi trong ID Session và ID Cookie sau đó gửi lên server cùng với thông tin chi tiết.
Khi bạn đã tích lũy đủ các thông tin về cách người dùng thao tác với trang web của bạn, bạn có thể bắt đầu thực hiện tạo ra trải nghiệm hóa cá nhân người dùng – một trong những yếu tố sống còn trong bán hàng ở thời điểm hiện tại.
Việc này sẽ mang lại cho trang web của bạn có thiện cảm hơn với người dùng khi gợi ý đúng sản phẩm họ muốn mua, bạn cũng sẽ có lượng truy cập lớn hơn và thu được nhiều dữ liệu cũng như thu nhập hơn.
Khi dữ liệu đủ lớn, bạn có thể mở rộng quy mô và tăng tốc phân tích để cá nhân hóa trải nghiệm của người dùng chỉ với vài thao tác của họ. Hãy để ý những sàn thương mại điện tử lớn như Shopee, Lazada, Aliexpress,… Họ làm cực tốt điều này!
Session và Cookie khác nhau như thế nào?
Về cơ bản, Cookies sẽ lưu trữ và làm việc với client (máy của người dùng) trong khi đó Session sẽ làm việc và lưu trữ dữ liệu trên server. Bạn có thể tham khảo bảng sau đây để thấy sự khác biệt giữa cả 2 thành phần này.
Hướng dẫn sử dụng Session
Hướng dẫn cài đặt Cookie và Session
Cả Cookie và Session đều lưu trữ lại thông tin của người dùng. Tuy nhiên, không phải toàn bộ thông tin đều có thể lưu trữ hết lên trình duyệt của người dùng. Vì thế, bạn sẽ cần phải vừa cài đặt Cookie vừa cài đặt Session cho trang web của mình.
Cài đặt Cookie
Ví dụ, chúng ta sẽ lưu lại thông tin khi người dùng nhập biểu mẫu và đây là code Cookie bạn sẽ có:
Cookie_Set(
'UserDetails'='John Doe|john.doe@example.com',
-Domain='example.com',
-Expires='1440',
-Path='/'
)
Cookie có tên là ‘UserDetails’ và chứa các thông tin được được phân tách ra bằng dẫu | trên trình duyệt người dùng như sau:
local( userDetails = decode_url(Cookie('UserDetails'))->split('|'))
if(#userDetails->size)=>{^
'User Name = '+#userDetails->get(1)
'<br />'
'Email Address = '+#userDetails->get(2)
^}
Cài đặt Session
Những thông tin nào không thích hợp để lưu trữ trên thiết bị/ trình duyệt của người dùng. Bạn nên sử dụng Session để lưu trữ và xử lý. Bạn sẽ cần cài đặt để có thể tự động xuất ID Session tại máy khách và những phần còn lại Lassosoft sẽ thiết lập giúp bạn (nếu bạn sử dụng dịch vụ của họ).
Bạn thiết lập code như sau:
// Start the Session.
Session_start(
'mySessionName',
-expires = 1440,
-useCookie=true
)
// Add variables to the Session
if(Session_result('mySessionName') != 'load') => {
Session_addVar('mySessionName', 'sv_userId')
Session_addVar('mySessionName', 'sv_userName')
Session_addVar('mySessionName', 'sv_userEmail')
Session_addVar('mySessionName', 'sv_favouriteColour')
}
!var_defined('sv_userId') ? var('sv_userId' = integer)
!var_defined('sv_userName') ? var('sv_userName' = string)
!var_defined('sv_userEmail') ? var('sv_userEmail' = string)
!var_defined('sv_favouriteColour') ? var('sv_favouriteColour' = 'red')
Ý nghĩa của các dòng lệnh:
- Dòng lệnh từ 2 – 6 sử dụng để khởi tạo phiên với thời hạn là 1440 phút tức là cả ngày và được thiết lập để theo dõi thông qua Cookie.
- Dòng lệnh từ 9 – 14 dùng để kiểm tra xem Session_result có thể thêm mới phiên hay không.
- Dòng lệnh từ 16 – 19 sử dụng để kiểm tra xem biến đã được xác định hay chưa, nếu chưa biến sẽ được xác định và khai báo thông tin theo giá trị mặc định.
Quản lý Session
Quản lý phiên trên trình duyệt
Khả năng quản lý Session trên trình duyệt là một điều thực sự rất hữu dụng. Ví dụ: bạn sử dụng trình duyệt web xong, bạn tắt trang web của mình đi sau một vài giờ hoặc hôm sau bạn mở lên lại. Toàn bộ các tab bạn mở bật lên trở lại để bạn có thể tiếp tục làm việc, hoặc bạn có thể mở trong một thiết bị mới.
Hầu hết các trình duyệt đều hỗ trợ cho Session, từ Chrome đến Firefox hay Opera….
Quản lý phiên trên máy tính
Khi bạn đang làm việc, bạn tắt thiết bị của mình có thể là laptop hoặc máy tính để bàn. Sau đó, bạn bật thiết bị lên và có thể tiếp tục làm việc với các ứng dụng bạn đã đóng trước đó ngay sau khi hệ điều hành khởi động xong. Việc này cũng rất hữu ích đúng không!
Việc quản lý Session của hệ điều hành Window được đảm nhiệm bởi Session Manager Subsystem tệp thực thi là smss.exe còn Linux sử dụng X Session manager.
Session có vai trò như thế nào đối với Google Analytics?
Bạn có một trang web về thương mại điện tử hoặc một trang web thông thường thôi, bạn cũng sẽ rất quan tâm về việc người dùng sử dụng trang web của bạn như thế nào đúng không?
Google Analytics chính là một công cụ hoàn toàn miễn phí của Google sẽ giúp bạn thu thập, phân tích thống kê giúp bạn, từ việc họ sử dụng thiết bị gì, bao nhiêu người đã truy cập vào trang, thời điểm nào có nhiều người truy cập nhất…
Nếu muốn số liệu được chính xác nhất, bạn sẽ phải rất lưu ý đến Session. Session thể hiện sự tương tác của người dùng với website của bạn trong một khoảng thời gian nhất định nào đó.
Một số thông tin bạn cần phải lưu ý khi sử dụng Session Google Analytics như sau:
Session sẽ được tính khi người dùng bắt đầu truy cập.
Thời gian hết hạn của Session Google Analytics là sau:
- Sau 30 phút khách hàng không còn truy cập vào trang.
- Vào lúc nữa đêm 0:0 giờ.
- Ngoài ra, bạn cũng có thể thiết lập các giá trị theo chiến dịch với Google Analytics. Khi chiến dịch hết hạn, Session của bạn cũng sẽ hết hạn theo.
Tino Group hi vọng bạn có thể áp dụng những kiến thức Tino Group truyền tải vào trong kỹ thuật lập trình web của mình một cách thành công nhất nhé!
Bài viết có tham khảo từ trang Lassosoft.
Những câu hỏi thường gặp
SessionStorage là gì?
SessionStorage là hoạt động lưu dữ liệu ngay trên trình duyệt của người dùng với thời gian có hạn, hoặc sau khi người dùng đóng tab trình duyệt.
Cookie là gì?
Cookie là một khối dữ liệu nhỏ trên trang web được lưu trữ trên trình duyệt nhằm để theo dõi các hoạt động của khách truy cập trên trang.
Làm sao để có thể xóa Cookie?
Trên Chrome, bạn truy cập vào dấu 3 chấm ngang => cài đặt => Quyền riêng tư và bảo mật => Cookie và các dữ liệu khác của trang web => xem tất cả Cookie và dữ liệu trang web => Để xóa toàn bộ, bạn bấm vào xóa tất cả.
Làm sao để truy cập web và không bị lưu lại dữ liệu?
Về cơ bản, sử dụng chế độ ẩn danh trên trình duyệt sẽ hạn chế việc lưu lại các thông tin của bạn. Ngoài ra, bạn có thể kết hợp với VPN để truy cập bằng địa chỉ IP công cộng truy cập web và không bị truy vết.