Giao thức HTTP không trạng thái. Phiên là một cách để duy trì trạng thái máy khách trên các yêu cầu HTTP. Bạn có thể chọn thực hiện điều đó với xử lý phiên dựng sẵn của nền tảng hoặc tự thực hiện với các tham số chuỗi truy vấn. Dù bằng cách nào đó, một số khái niệm về một phiên là cần thiết cho nhiều nhiệm vụ.
Đồng nghiệp của bạn có thể không thích triển khai cụ thể hoặc đã không sử dụng các phiên cho mục đích dự định của họ. Nếu bạn cần giữ lại thông tin về một kết nối máy khách cụ thể qua các yêu cầu HTTP, bạn cần một số hình thức duy trì phiên.
Các vấn đề sau đây là cụ thể thực hiện:
Bản chất của các biến phiên
Bản chất phạm vi toàn cầu của các biến phiên
Tải máy chủ cân bằng mất phiên
Nhóm ứng dụng / máy chủ khởi động lại
Ví dụ, tôi thường xuyên làm việc trong PHP và lưu trữ thông tin phiên của tôi trong cơ sở dữ liệu quan hệ. Vì vậy, các biến phiên của tôi được gõ. Cân bằng tải và khởi động lại máy chủ không gây ra bất kỳ vấn đề nào về phiên.
Điều này thú vị hơn:
Thời gian chờ phiên gây mất trạng thái
Các phiên thường được bảo quản thông qua cookie. Chúng có thể bị xóa bởi khách hàng bất cứ lúc nào. Nhưng chúng cũng có thể được bảo tồn thông qua một tham số chuỗi truy vấn và do đó không bao giờ hết thời gian trên máy khách. Thời gian chờ máy chủ là tùy thuộc vào bạn. Vì vậy, ngay cả vấn đề này là thực hiện cụ thể.
Chúng ta đừng bỏ qua toàn bộ khái niệm về các phiên chỉ vì chúng ta không thích một triển khai cụ thể. Bất kỳ khung ứng dụng web tốt nào cũng sẽ tạo điều kiện sử dụng phiên đúng cách để duy trì thông tin đăng nhập của người dùng hoặc giữ lại mọi thứ khác cụ thể cho lượt truy cập hiện tại của người dùng. Bản ghi cơ sở dữ liệu của người dùng có thể (và nên) được sử dụng để lưu trữ những thứ cụ thể cho họ khi đăng nhập. Tuy nhiên, khách truy cập ẩn danh có thể có thông tin tạm thời cũng đáng được lưu giữ trong phiên của họ, chẳng hạn như một danh sách ngắn các trang gần đây đã truy cập hoặc tùy chọn ẩn một thông báo mà họ đã thấy. Nói chung chỉ thông tin tạm thời nhỏ hơn là thích hợp để lưu trữ phiên.
using things like query string parameters instead
- Với trường hợp này, luôn luôn sử dụng các tham số chuỗi truy vấn nếu có thể. Sử dụng phiên cho loại tham số đó rất mong manh và có thể gây ra các lỗi lạ khi người dùng mở nhiều tab.