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. 

Trong thế giới VUCA ngày nay (tức là “Volatility” – biến động, “Uncertainty” – không chắc chắn, “Complexity” – phức tạp, “Ambiguity” – mơ hồ), bất cứ ai cũng luôn cần trau dồi cho mình rất nhiều những kiến thức và kỹ năng. Nhất là với những người trong ngành công nghệ thông tin, một thế giới công việc đầy sáng tạo, thay đổi không ngừng thì việc tự học, tự phát triển là rất quan trọng. Họ chính là những người cần tìm cho mình cách làm việc tốt nhất, cách học hiệu quả nhất và linh hoạt. Đó cũng chính là lý do mà Agile ra đời. Agile giải quyết bài toán là làm sao chúng ta có thể làm việc một cách linh hoạt và ít rủi ro hơn, qua đó có thể cung cấp được sáng tạo và cống hiến cho xã hội.  

Từ khi ra đời tới nay, Agile đã phát triển rất mạnh mẽ trên thế giới, và cũng bắt đầu được lan rộng ra tại Việt Nam trong những năm gần đây. Một số đối tác của chúng tôi đã chuyển dịch sang Agile như Viettel, VinGroup, Techcombank, Vua Nệm, FPT,…

Bạn đọc có thể tìm hiểu sâu hơn về Agile 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