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

HTTP không trạng thái: cách duy trì session giữa trình duyệt và máy chủ

HTTP là giao thức "stateless" – mỗi lần client lấy trang web, client mở kết nối riêng đến server, server tự động không giữ bản ghi yêu cầu trước của client.

Duy trì Session giữa Client và Server

1. Cookies

Webserver gán session ID duy nhất làm cookie cho mỗi client. Các request sau được nhận diện qua cookie nhận được. Tuy nhiên trình duyệt đôi khi không hỗ trợ cookie, không khuyến nghị dùng cách này để duy trì session.

2. Hidden Form Fields

Server gửi hidden HTML form field kèm session ID duy nhất:

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

Khi form submit, name/value tự động đi kèm trong dữ liệu GET hoặc POST. Mỗi lần browser gửi request, session_id dùng để theo dõi browser. Nhược điểm: click link thường (<A HREF...>) không submit form, nên hidden field không hỗ trợ session tracking tổng quát.

3. URL Rewriting

Gắn dữ liệu thêm vào cuối mỗi URL. Dữ liệu này nhận diện session; server liên kết session identifier với dữ liệu đã lưu.

Ví dụ: https://tutorialspoint.com/file.htm;sessionid=12345, session identifier là sessionid = 12345 truy cập được tại server để nhận diện client.

URL rewriting tốt hơn, hoạt động khi browser không hỗ trợ cookie. Nhược điểm: phải sinh URL động cho mọi trang để gán session ID, kể cả trang HTML tĩnh.