Giải Thích Sự Khác Nhau Giữa Session và Cookie

Sự thật là nhiều bạn khi gặp phải câu hỏi phỏng vấn hãy cho biết sự dị biệt giữa Session và Cookie thì cảm thấy rất bối rối. Mấy ngày trước ở trên công ty mình có tham gia phỏng vấn một bạn sinh viên mới ra trường cho vị trí Middle PHP Developer thì phát hiện ra dù bạn ứng viên này dù đã có kinh nghiệm làm việc với một số framework PHP rồi nhưng vẫn chưa hiểu rõ sự khác biệt giữa Session và Cookie. căn do của sự thiếu hiểu biết căn bản này là vì chưng việc xử lý Session và Cookie đều đã được các framework này lo cho chúng ta rồi.

 

 

 


Tuy nhiên phân biệt rạch ròi hai khái niệm này là điều rất quan yếu vì bạn giúp bạn trong việc tạo ra các áp dụng bảo mật, ví dụ như tránh các chiêu hack session người dùng. Vậy thì không nói dông dài nữa trong bài này mình sẽ giải thích sự khác nhau giữa session và cookie theo một cách đơn giản nhất.

Lưu ý: Sau khi đọc bài viết này nếu bạn muốn tìm hiểu về cách triển khai cookie và session trên server sử dụng PHP bạn có thể tham khảo bài viết 90% Lập Trình Viên Chưa thực thụ Hiểu Về Session và Cookie.


Tình Huống thực tại

Bây giờ để giúp bạn hình dong một cách dễ dàng chúng ta sẽ coi xét một cảnh huống thực tại đó là khi bạn cùng bạn bè đi du lịch bụi. Sau nhiều giờ chạy xe bạn đã tới một điểm dừng trước tiên và quyết định sẽ thuê một khách sạn để ở. Lúc này bạn cần làm những thủ tục nào khi tới khách sạn? trước hết thì bạn phải đưa viên chức giấy CMND của bạn cho nhân viên khách sạn (điều này là thắt theo quy định của luật tạm trú, theo miinhf có lẽ để cho cơ quan quản lý quốc gia dễ theo dõi). Sau đó các bước sẽ diễn ra như sau:
viên chức này sau đó sẽ đưa bạn chìa khoá một phòng còn trống và trên chìa khoá đó có ghi số phòng.
Tiếp theo nhân viên này sẽ lưu lại các thông báo về giờ giấc bạn vô K/S vào một cuốn sổ (trong cùng một ngày thì viên chức này sẽ lưu thông báo của mỗi phòng khác nhau trên một dòng biệt lập)
Trong quá trình bạn ở khách sạn nhân viên này cũng sẽ ghi nhận các thông báo như phòng bạn ở bao nhiêu người, bạn có muốn ăn sáng, bạn cần dịch vụ giặt đồ, hay cùng như thời khắc bạn trả phòng là khi nào...
Cuối cùng khi bạn trả phòng thì nhân viên sẽ hỏi số phòng của bạn để dò lại các thông báo trên.

Khách sạn sẽ dùng thông tin trên cuốn sổ để quản lý (kiêng kị, cập nhật) thông tin của từng phòng. Tuy nhiên để khách sạn có thể xác định khách nào ở phòng nào thì cần có chìa khoá phòng.

Ở trên chìa khoá phòngđóng vai trò như một cookie, khách sạn đóng vai tròng là một server, các dòng lưu thông báo trên cuốn sổ giống như từng file session chứa thông báo của mỗi cookie (phòng) và cả cuốn sổ đóng vai trò như là thư mục chứa các file session.


Cookie Là Gì

Theo định nghĩa thì cookie là một mẩu thông tin nhỏ được lưu trừ trên trình duyệt người dùng. Đây là một file nhỏ được trình duyệt lưu trữ trên máy tính của bạn. Trên cùng một trình duyệt mỗi một domain khác nhau sẽ có một cookie khác nhau. Ở đây một domain giống như một khách sạn ở ví dụ trên.

Bạn cũng cần lưu ý rằng khi bạn truy cập một domain trên nhiều tab khác nhau của cùng một trình duyệt thì trình duyệt này cũng chỉ dùng một file cookie độc nhất cho domain trên.
Session Là Gì

Session là một tập tin nhỏ được lưu trữ trên server, mỗi file session sẽ ứng với một file cookie.

mỗi một cookie sẽ thường ứng với một người dùng và bên trong từng file session này sẽ chứa các thông tin hệ trọng tới người dùng đó. Vừa rồi mình sử dụng từ thường ngày là vì một người dùng có thể sử dụng hai trình duyệt khác nhau như Firefox hay Chrome trên một máy để truy cập vào cùng một địa chỉ trang web. Lúc này sẽ có hai cookie trên hai trình duyệt (và do đó sẽ có 2 session được tạo ra trên server) cho cùng một người dùng.
vì sao Không Lưu thông báo Người Dùng Trên Cookie

Bạn hoàn toàn có thể lưu các thông báo của người dùng trên cookie (tỉ dụ ưng chuẩn JavaScript). Tuy nhiên điều này thường không được kiến nghị làm. Lý do là vì chưng để bảo đảm bảo mật.

Quay trở lại tỉ dụ về thuê khách sạn lúc trước và mường tượng nếu thay vì viên chức trên lưu trữ thông báo về phòng bạn thuê trong cuốn sổ mà anh ta quản lý thì anh ta lại đưa bạn một tờ giấy trên đó có các thông tin này và để bạn giữa nó. Lúc này có hai khả năng xảy ra:
Bạn có thể làm mất tờ giấy này và khách sạn có khả năng không lấy lại được vớ các thông tin hệ trọng về phòng bạn thuê
Bạn có thể mạo cá thông báo tên tờ giấy mà nhân viên đưa cho bạn

Do đó thông thường thì khách sạn chỉ đưa bạn chìa khoá phòng và sờ soạng thông tin liên quan khách sạn sẽ quản lý trên cuốn sổ. Điều này cũng diễn ra na ná khi mà chúng ta chỉ lưu rất ít các thông báo trên cookie trình duyệt mà thay vào đó sẽ lưu các thông tin này trên session server.

Đào tạo lập trình viên quôc tế

 

0 Response to "Giải Thích Sự Khác Nhau Giữa Session và Cookie"

Đăng nhận xét

powered by Blogger | WordPress by Newwpthemes | Converted by ocsenden