Hỏi về nơi lưu session
Em đọc nhiều bài viết trên mạng cũng như diễn đàn nói session lưu ở 1 file ở server vậy cho em hỏi ngu là em có thể tìm thấy file đó ở đâu để em coi thử mặt mũi nó như nào ạ! mong mọi người chỉ giáo em dùng ruby on rails ạ
2 ANSWERS
Session được lưu ở server thôi chứ cũng không nhất thiết là phải được lưu trong 1 file em ạ
Và việc lưu thế nào thì nó sẽ tuỳ thuộc vào ngôn ngữ, hay framework mà em sử dụng. Hầu như giờ các framework đều cung cấp các session driver khác nhau, để giúp lập trình viên có thể tuỳ chọn cách lưu trữ session khác nhau. Em có thể lưu vào file, lưu vào trong Redis, hay lưu vào trong Mysql/Postgresql cũng được hết
Nếu như em chuyên làm về Rails thì em có thể tham khảo bài viết TÌM HIỂU VỀ SESSION VÀ CÁCH THỨC LƯU TRỮ SESSION DATA của tác giả @nguyen.duc.tung để tìm hiểu kỹ hơn nhé
em đã đọc bài này r anh =)) htrc em có hỏi lại người phỏng vấn thì đc trả lời là k nên lưu trong cookie (như các thứ nhất của bài viết kia), lưu db thì e nghĩ cũng k ổn vì nó sẽ khá là tốn tài nguyên còn redis thì e chưa tìm hiểu. Cái chính là e muốn xem mặt mũi nó thế nào thôi =))
@nguyenninhquang Xem mặt mũi là sao bạn? Nếu muốn biết session trông thế nào thì inspect ra là được mà.
ý mình là xem "file lưu session" như trong nhiều bài viết đề cập đến đó bạn
@nguyenninhquang Lưu vào file thì sẽ có một nhược điểm là khi scale ứng dụng chạy trên nhiều server thì sẽ không hoạt động được, do đó trên môi trường Production thì người ta lưu trong Redis hay DB nhiều hơn. Lưu trong DB thì đúng là hiệu suất không bằng lưu trong Redis được
@nguyenninhquang Đã lưu vào DB hay Redis thì làm gì có khái niệm file hả bạn? Lúc đó session sẽ được lưu theo dạng key-value bình thường thôi. Hay ý bạn là muốn hỏi xem có cách nào lưu session ra file không (?)
@bs90 "Em đọc nhiều bài viết trên mạng cũng như diễn đàn nói session lưu ở 1 file ở server" ý mình là muốn xem cái file đó ở đâu vì mình thấy rất nhiều bài viết về session nói chung nhắc đến điều này
@nguyenninhquang Bạn có thể dẫn ra đây một vài bài viết như vậy được không?
@nguyenninhquang Một bài thì viết chung chung về khái niệm session, một bài thì là PHP (có vẻ nhưng mặc định PHP lưu session bằng file thật ) Còn theo mình biết trong ruby on rails thì có 3 kiểu setting chính như bài này chứ không lưu vào file nhé
https://viblo.asia/p/rails-tim-hieu-ve-session-va-cach-thuc-luu-tru-session-data-BAQ3vV3PRbOr
@bs90 @nguyenninhquang Đúng là PHP mặc định lưu session vào file. Nhiều framework, library PHP sử dụng luôn tính năng mặc định này của ngôn ngữ, nên cũng sẽ lưu vào file. Mà PHP thì phổ biến quá nên có thể vì đó mà có tư tưởng "session được lưu vào file trên server" chăng
Chứ thực tế thì sesion thì được lưu ở server, còn lưu vào đâu thì là do lập trình viên quyết định thôi
@bs90 chính vì e đọc 1 bài viết chung về session và đọc bài về các cách lưu session trong ruby nên mới thấy hoang mang ạ =))
@nguyenninhquang Kinh nghiệm là không phải cái gì được viết trên mạng cũng đúng =))
@bs90 em có chắt lọc nhưng vì nó được nhắc đến ở nhiều chỗ quá nên buộc phải đặt dấu ? =))
mình dùng ruby on rails không biết có cách nào k ??
Mỗi framework chắc hẳn sẽ cung cấp nhiều cách thức lưu trữ session khác nhau (files, database,...). Tôi chưa dùng ruby on rails bao giờ nhưng tôi nghĩ rằng nếu framework này hoặc một package bạn đang dùng có hỗ trợ lưu session vào files thì trong cấu hình session phải có khai báo đường dẫn đến một thư mục nào đó - nơi lưu trữ dữ liệu session.
Còn với ruby native thì hãy thử tìm hiểu file cấu hình của ngôn ngữ ruby khi nó được cài đặt trên HĐH mà bạn đang sử dụng.