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

sự thực 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 dự 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. duyên do của sự thiếu hiểu biết cơ 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 trọng vì bạn giúp bạn trong việc tạo ra các áp dụng bảo mật, thí 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ảng giải 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 đích thực Hiểu Về Session và Cookie.


cảnh huống thực tại

giờ để giúp bạn hình dung một cách dễ dàng chúng ta sẽ xem xét một Tình Huống Thực Tế đó 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 đầu 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à buộc theo quy định của luật tạm trú, theo miinhf có lẽ để cho cơ quan quản lý nhà nước dễ theo dõi). Sau đó các bước sẽ diễn ra như sau:
nhân viên 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 riêng biệt)
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 tin 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...
rút cục 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ẽ sử dụng thông báo trên cuốn sổ để quản lý (kiêng, cập nhật) thông báo của từng phòng. Tuy nhiên để khách sạn có thân 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 tin 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 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 ở thí 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ẽ tương ứng với một file cookie.

mỗi 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 liên hệ tới người dùng đó. mới rồi mình sử dụng từ thường ngày là bởi 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 tin Người Dùng Trên Cookie

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

Quay trở lại ví dụ về thuê khách sạn lúc trước và tưởng tượng nếu thay vì nhân viên trên lưu trữ thông tin 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 báo 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 cả thảy các thông báo liên can về phòng bạn thuê
Bạn có thể giả mạo cá thông báo tên tờ giấy mà viên chức đưa cho bạn

Do đó thường ngày thì khách sạn chỉ đưa bạn chìa khoá phòng và cả thảy thông báo hệ trọng khách sạn sẽ quản lý trên cuốn sổ. Điều này cũng diễn ra tương tự 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ế

 

SHARE

Milan Tomic

Hi. I’m Designer of Blog Magic. I’m CEO/Founder of ThemeXpose. I’m Creative Art Director, Web Designer, UI/UX Designer, Interaction Designer, Industrial Designer, Web Developer, Business Enthusiast, StartUp Enthusiast, Speaker, Writer and Photographer. Inspired to make things looks better.

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 nhận xét:

Đăng nhận xét