Session là gì? Tại sao lập trình viên cần biết tới Session

, ,

Session là gì? Session là một thuật ngữ được sử dụng nhiều trong ngành công nghệ thông tin. Vậy session thực sự là gì? Nó có cần thiết hay không? Hãy cùng Học viện Agile đi tìm hiểu nhé!

Session là gì?

Trong lập trình thì khái niệm về Session khá phổ biến và rõ ràng. Một session hay còn gọi là một phiên làm việc, là dữ kiện được lưu trữ lại trong Database thông qua các hành động kết nối. Bạn có thể hiểu rằng khi client (trình duyệt web hay ứng dụng trên thiết bị) giao tiếp với server. 

Ví dụ như khi bạn đăng nhập vào một trang website theo tài khoản email và mật khẩu của mình được xác nhận là chính xác, khi đó một session sẽ được tạo trong máy chủ để lưu trữ lại các hành động của bạn tới khi phiên được kết thúc. Các thông tin có thể được lưu trữ như thông tin đăng nhập, thông tin các sản phẩm trong giỏ hàng,… Như vậy, với các trang web lớn, hay các trang web thương mại điện tử thì số session được lưu trữ sẽ là vô cùng lớn, đòi hỏi một hệ thống phải làm việc cực tốt và rõ ràng.

Session là gì?

Session là gì?

Tại sao lại cần đến session?

Lưu trữ các Session dường như rất phổ biến trên các website. Thực ra lý do cho việc này cũng khá dễ hiểu bởi các lợi ích mà nó đem lại. Trong các công việc giao tiếp giữa máy chủ là website server với trình duyệt thì sẽ được thực hiện qua hàng hoạt router trên mạng. Nhưng vấn đề là làm sao để phân biệt được các trình duyệt khác nhau của người dùng. Vì vậy khi sử dụng session sẽ giúp bạn:

  • Đầu tiên, các session được lưu lại sẽ giúp phân biệt được các trình duyệt khác nhau từ phía người dùng. Tức là nó sẽ giúp phân biệt được các lượt truy cập gửi tới hệ thống máy chủ từ các máy tính khác nhau.
  • Tiếp theo, các thông tin về hành động của khách hàng sẽ không bị mất đi. Cụ thể là có thể lưu trữ được thông tin giỏ hàng của khách hàng. Bạn biết đấy, mọi người mua sắm thường có thói quen để rất nhiều sản phẩm vào giỏ hàng của họ, nhưng số hàng hóa mua thực sự lại ít hơn nhiều. Giải thích cho hành động đó là họ có ý định mua sản phẩm, hoặc thấy thu hút bởi sản phẩm, nhưng có những cản trở khiến họ chưa đưa ra quyết định mua ngay lúc đó.

Vì vậy việc cho phép họ giữ các sản phẩm trong giỏ hàng của mình sẽ giúp tăng trải nghiệm khách hàng cũng như khả năng bán hàng của doanh nghiệp cũng tăng lên. 

Session là gì?

Session là gì?

So sánh Session và Cookie

Có rất nhiều người luôn đặt ra câu hỏi “Session và Cookie khác nhau ở đâu trong khi cả 2 cái đều là lưu trữ dữ liệu người dùng”. Thực tế, hai khái niệm này cũng rất dễ gây ra nhầm lẫn nếu chúng ta không hiểu các khía cạnh và mục đích của nó.

Nơi lưu trữ:

  • Session: Không được lưu trữ trên trình duyệt
  • Cookie: Được lưu trữ trên trình duyệt của người dùng

Đối tượng lưu trữ:

  • Session: Dữ liệu khách hàng được lưu trữ ở server
  • Cookie: Dữ liệu được lưu trữ trên trình duyệt của người dùng (client)

Bảo mật:

  • Session: Khá khó sửa đổi do dữ liệu của session luôn được lưu trữ ở máy chủ.
  • Cookie: Dữ liệu của người dùng dễ đánh cắp và sửa đổi do được lưu trữ trong thiết bị của người dùng.

Thời hạn: 

  • Session: Hết phiên làm việc khi đóng trình duyệt.
  • Cookie: Dữ liệu luôn được lưu trữ sẵn trong trình duyệt
Session và Cookie

Session và Cookie

Session PHP là gì?

Trong PHP, mỗi phiên làm việc của session cho từng khách truy cập sẽ tạo một file trong thư mục tạm (thư mục này cài đặt ở php.ini : session.save_path). Thư mục này có tác dụng để lưu trữ thông tin chung cho tất cả các trang mà khách truy cập. Mỗi khi khách hàng truy cập, trong PHP sẽ dựa vào thông tin của các trình duyệt gửi lên để tạo một session riêng cho khách.

Vậy khi đó session sẽ làm việc ra sao:

  • Nếu là lần đầu truy cập của khách hàng thì PHP sẽ tạo ra một định danh cho khách đó một cách tự động. Định danh này là duy nhất và ngẫu nhiên. Có thể coi đó chính là tham số để xác định tên file dữ liệu session.
  • Một mẩu tin nhỏ Cookie gọi là PHPSESSID (là ánh xạ đến định danh ở trên) sẽ được gửi đến trình duyệt và trình duyệt lưu giữ PHPSESSID này, để sau đó mỗi lần trình duyệt truy cập nó gửi lại PHPSESSID cho PHP. 
  • PHP dựa vào PHPSESSID gửi đến để phục hồi – lấy lại dữ liệu từ file là thông tin của SESSION. 
  • Session bị hủy – mất khi trình duyệt bị đóng lại, thông thường PHP cũng có tham số ấn định thời gian tồn tại của SESSION, ví dụ như 30 phút.

Như vậy, session được lưu trữ và phục hồi trong các phiên truy cập của khách để đảm bảo việc truy cập của khách được thông suốt, tránh việc phải đăng nhập nhiều lần, hay chọn mua lại các sản phẩm trước đó. Tuy nhiên, để session được hoạt động thì còn cần liên quan đến hỗ trợ cookie từ trình duyệt.

Ví dụ như khi bạn block cookie từ Youtube trong Chrome, bạn sẽ không thể đăng nhập được Youtube. 

Ngày nay, ngành công nghệ thông tin biến đổi không ngừng. Session được coi như một phần kiến thức mà bất cứ dân công nghệ nào cũng cần biết tới để có thể tận dụng và phát triển website một cách tốt nhất. 

Chúng ta đang sống trong một thế giới đầy biến động. Bất cứ cá nhân, tổ chức nào cũng cần phải liên tục học hỏi và cải tiến các kiến thức và kỹ năng mới, nhất là trong ngành Công nghệ thông tin đòi hỏi sự sáng tạo và thay đổi không ngừng.

Agile với ưu thế là sự linh hoạt và tốc độ đã trở thành xu hướng nổi bật trong quản trị hiện đại, giúp doanh nghiệp nhanh chóng đáp ứng kỳ vọng của khách hàng và gia tăng lợi thế cạnh tranh.  

Với mục đích cung cấp kiến thức và kỹ năng nền tảng về Agile/Scrum cho cá nhân, đội nhóm mới triển khai Agile/Scrum hoặc triển khai chưa hiệu quả, Học viện Agile đã xây dựng khóa học mang tên Scrum Hành dụng.

Sau khóa học, học viên sẽ hiểu được các kiến thức tổng quan về Scrum, thành thạo 22 công cụ và biện pháp thực hành Scrum để có thể áp dụng được ngay vào công việc.

>> Tìm hiểu thêm thông tin về khóa học Scrum Hành dụng TẠI ĐÂY!

 

Mô hình Agile

Mô hình Agile

Đọc thêm:

Agile là gì? Tổng quan về Agile

Diễn giải về Agile

Tổng quan về Scrum

Related Posts
Ưu nhược điểm của quản lý dự án theo truyền thống WATERFALL

Trước đây mô hình truyền thống theo dạng thác nước luôn được ứng dụng trong quản lý. Tuy nhiên ưu Read more

Quản lý dự án xây dựng website bán hàng như thế nào?

Trong thời đại kinh tế phẳng như hiện nay, mỗi công ty đều cần có những “mảnh đất” trên không Read more

Ưu nhược điểm khi quản lý dự án bằng redmine bạn cần biết

Phương pháp quản lý dự án bằng Redmine được ứng dụng nhiều trong các doanh nghiệp về công nghệ thông Read more

Quản lý dự án môi trường thách thức và giải pháp triển khai

Môi trường là đề tài gặp nhiều thách thức, tầm quan trọng của nó ngày càng được các tổ chức, Read more