Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Cách duy trì session giữa Web Client và Web Server

Dưới đây là một vài phương án để duy trì session giữa Web Client và Web Server:

Cookies

Webserver có thể gán một session ID duy nhất dưới dạng cookie cho mỗi web client và đối với các request tiếp theo từ client, chúng có thể được nhận diện bằng cookie nhận được.

Cách này có thể không hiệu quả vì trình duyệt đôi khi không hỗ trợ cookie. Không khuyến khích dùng thủ tục này để duy trì session.

Hidden Form Fields (Trường form ẩn)

Web server có thể gửi một hidden HTML form field cùng với session ID duy nhất như sau:

<input type = "hidden" name = "sessionid" value = "12345">

Entry này có nghĩa là khi form được submit, name và value được chỉ định sẽ tự động được bao gồm trong dữ liệu GET hoặc POST. Mỗi lần trình duyệt gửi request lại, giá trị session_id có thể dùng để theo dõi các web browser khác nhau.

Đây có thể là cách hiệu quả để theo dõi session nhưng click vào hypertext link thông thường (<A HREF...>) không dẫn đến form submission, nên hidden form fields cũng không hỗ trợ session tracking chung.

URL Rewriting (Viết lại URL)

Bạn có thể thêm dữ liệu phụ vào cuối mỗi URL. Dữ liệu này xác định session; server có thể liên kết session identifier đó với dữ liệu đã lưu về session đó.

Ví dụ, với https://tutorialspoint.com/file.htm;sessionid=12345, session identifier được gắn là sessionid = 12345 có thể truy cập tại web server để xác định client.

URL rewriting là cách tốt hơn để duy trì session và hoạt động cho browser khi chúng không hỗ trợ cookies. Nhược điểm là bạn phải generate động mọi URL để gán session ID dù trang là HTML tĩnh đơn giản.