Có rất nhiều thứ được nhắc đến đối với lập trình web nhưng có lẽ Cookie và Session là hai điều được đề cập thường xuyên nhất. Những developer mới vào nghề sẽ thường nhầm lẫn giữa hai khái niệm này, thậm chí có lúc còn không biết khi nào nên dùng Cookie và khi nào thì dùng Session. Đừng lo lắng, bạn chỉ cần tìm hiểu kỹ lưỡng thông tin về Cookie và Session là có thể phân biệt được.
Hiểu thế nào về Cookie?
Nói theo một cách đơn giản thì Cookie là thứ mà các lập trình viên sử dụng để lưu thông tin tạm thời. Khái niệm về Cookie chỉ rõ nó là đoạn văn bản ghi thông tin đã được tạo ra và lưu trên trình duyệt máy của user. Cookie thường được tạo ra khi user truy cập một website nào đó, cookie sẽ ghi nhớ một số thông tin như: tên đăng nhập, mật khẩu, các tùy chọn do users lựa chọn đi kèm. Những tập tin này được truyền từ server đến browser và lưu trong máy để nhận biết users khi họ truy cập vào một trang web.

Khi users truy cập vào một website có sử dụng Cookie, web server sẽ tự động gửi Cookie đến máy tính của họ. Hệ thống máy tính sẽ có một loạt các Cookie đã tự động tổ chức, sắp xếp. Lần tiếp theo users truy cập vào website đó – website được Cookie lưu thì những Cookie này sẽ tự động gửi các thông tin của users về cho chủ của nó – người đã tạo ra Cookie. Nhiều người lúc này quan ngại đến việc thông tin của users sẽ bị tiết lộ, tuy nhiên, đừng lo lắng bởi những thông tin mà Cookie đã ghi nhận sẽ không được tiết lộ rộng rãi mà chỉ có website chứa Cookie mới có thể xem được những thông tin này.
Mỗi Cookie sẽ có một khoảng thời gian timeout nhất định đã được xác định từ trước bỏi lập trình viên, những thông tin mà Cookie đã lưu lại chỉ là thông tin có giá trị tạm thời và được lưu giữ lại trong một khoảng thời gian. Nhìn chung, Cookie được xem là thành phần quan trọng không thể thiếu được, đặc biệt là đối với những website có khối lượng data khổng lồ, số lượng users lớn và có chức năng đi kèm với thành viên đăng ký. Ví dụ điển hình nhất cho trường hợp này chính là các website thương mại điện tử website có tính phổ biến hiện nay. Tuy quan trọng song cần phải lưu ý rõ là Cookie có tính bảo mật rất thấp, nó có thể bị sửa đổi, bị đánh cắp thậm chí có thể bị dùng để tấn công website, vì thế hãy ghi nhớ đừng bao giờ lưu trữ những thông tin quan trọng.
Bạn cần biết gì về Session?
Tương tự như Cookie, Session là khái niệm có tính phổ biến, nhất là đối với các lập trình viên. Session được dùng trong lập trình những website có kết nối với cơ sở dữ liệu (database). Users sẽ khó có thể thực hiện các chức năng như đăng nhập, đăng xuất nếu không sử dụng đến Session.

Hiểu theo cách đơn giản thì Session là cách thức để lưu lại dữ liệu của web users, giá trị của Session sẽ được lưu lại trong tập tin nằm trên máy chủ. Một session còn được gọi là một phiên làm việc. Trong lĩnh vực khoa học máy tính, nó đơn thuần là cách mà client giao tiếp với server. Một Session bắt đầu khi client gửi yêu cầu đến server, Session sẽ tồn tại xuyên suốt giữa các trang trong ứng dụng web và chỉ kết thúc khi users đóng ứng dụng hoặc khi hết thời gian timeout. Lấy một ví dụ để bạn có thể hiểu rõ hơn, khi user đăng nhập vào web bằng tài khoản đã đăng ký trước đó, máy chủ sẽ xác thực thông tin mà user cung cấp và khi xác thực đó là các thông tin đúng thì nó sẽ sinh ra một tập tin – đây chính là Session của trình duyệt của user, tập tin này có chứa những dữ liệu cần được lưu trữ của chính user.
Mỗi Session sẽ được cung cấp một định danh duy nhất hay còn được biết đến là SessionID, users sẽ được cấp các Session khác nhau mỗi khi họ kết thúc phiên làm việc cũ và bắt đầu phiên làm việc khác. Users toàn quyền quyết định về những thông tin mà họ lưu vào Session. Tuy nhiên, thông thường, users được lưu ý là chỉ nên lưu lại các thông tin mang tính tạm thời bên trong Session, ví dụ: số lượng sản phẩm thêm vào giỏ hàng, comment đang viết nhưng chưa gửi…. Các thông tin, dữ liệu mang tính lâu dài thì nên được lưu ở máy chủ chứa database.
Làm thế nào để phân biệt session của các trình duyệt khác nhau?
Sau khi thiết lập một tập tin Session trên máy chủ cho mục đích lưu trữ những dữ liệu tạm thời của users, tức là các user khác nhau sẽ có những Session khác nhau. Đã bao giờ bạn thắc mắc về việc phân biệt xem Session nào của client nào hay chưa?. Thực tế điều này cũng không quá khó. Bởi với mỗi Session, nó đồng thời sẽ tạo ra một Cookie có giá trị tương ứng lưu trên trình duyệt của user. Lúc này, chỉ cần tiến hành so sánh tệp tin Cookie phía client đã gửi lên server và tệp Session đã lưu lại trên server là có thể xác định được ngay.
Một số so sánh giữa Cookie và Session
Tiêu chí | Cookie | Session |
Vị trí lưu trữ | Trên trình duyệt của users | Không được lưu trữ trên trình duyệt |
Vị trí lưu trữ dữ liệu | Phía máy khách (client) | Phía máy chủ (server) |
Tính bảo mật | Dễ bị đánh cắp | Không dễ bị đánh cắp |
Vấn đề sửa chữa | Dễ thay đổi, sửa chữa thông tin | Không dễ thay đổi, sửa chữa thông tin |
Lưu trữ | Có sẵn trong trình duyệt của users đến khi hết hạn | Có sẵn cho trình duyệt chạy. Sau khi đóng trình duyệt sẽ mất thông tin session |
Với những thông tin trên đây, bạn có thể dễ dàng nắm bắt được những điều cơ bản cần thiết về cả Cookie và Session. Lúc này, việc lựa chọn sử dụng Cookie hay Session là phụ thuộc vào chính bạn; tuy nhiên, nếu nhìn vào tính bảo mật, vị trí lưu trữ và dữ liệu lưu trữ thì có thể dễ dàng nhận thấy Session sẽ được ưu ái hơn cả. Hãy khám phá thêm các thông tin khác có liên quan đến Cookie và Session cũng như các thông tin về lập trình web nếu bạn đang muốn tiếp cận lĩnh vực này nhé.
Theo NQ News Cloud
>> Có thể bạn quan tâm: Lỗi PHPMyAdmin – “Access Denied Unable to establish a PHP session”