PHÂN BIỆT SESSION, COOKIE VÀ CACHE KHI HỌC LẬP TRÌNH

20-05-2019 21:43

Bạn có bao giờ bị hoang mang khi có quá nhiều thứ phải nhớ khi lập trình? Đã bao giờ bạn gặp dù chỉ một chức năng để lưu lịch sử thao tác người dùng mà bạn cho vào Session để rồi ngốn rất nhiều bộ nhớ của server, trong khi có những thứ tối ưu hơn như cookie và cache thì bạn lại không nghĩ đến? Cùng TPlus Academy học cách phân biệt Session, Cookie và Cache để lập trình dễ thở hơn nhé.

Session

Một session hay còn gọi là một phiên làm việc. Trong khoa học máy tính, nó đơn giản là cách giao tiếp giữa client (ở đây là trình duyệt web hoặc ứng dụng trên thiết bị của bạn) với server. Một session bắt đầu khi client gửi request đến sever, nó tồn tại xuyên suốt từ trang này đến trang khác trong ứng dụng và chỉ kết thúc khi hết thời gian timeout hoặc khi bạn đóng ứng dụng. Giá trị của session sẽ được lưu trong một tệp tin trên máy chủ. Chính vì điều này, nếu bạn dùng session một cách vô tội vạ thì sẽ khiến cho máy chủ phải lưu rất nhiều. Đặc biệt nếu ứng dụng đó có đến vài triệu người dùng chẳng hạn thì điều đó thật là kinh khủng.

Thông thường chúng ta chỉ nên lưu trữ những thông tin tạm thời trong session như: thông tin đăng nhập, thông tin các sản phẩm trong giỏ hàng (đối với các trang web thương mại điện tử)...

Với mỗi session sẽ được cấp phát một định danh duy nhất SessionID. Khi kết thúc một phiên làm việc và bắt đầu một phiên mới, dĩ nhiên bạn sẽ được cấp một SessionID khác với trước đó.

Vậy sau khi tạo ra một session được lưu trên mấy chủ, thì làm thế nào hệ thống biết được rằng session đó là của client nào? Đơn giản, với mỗi session được tạo ra, đồng thời chúng sẽ tạo ra một tệp tin cookie lưu trên trình duyệt của bạn ứng với session đó. Như vậy chỉ cần so sánh tệp tin cookie bên phía client được gửi lên sever và tệp session được lưu trên server là sẽ ra kết quả.

Cookie

Cũng giống như session, cookie cũng được dùng để lưu những thông tin tạm thời. Chính vì sự giống nhau trong tính năng khiến nhiều bạn khi học lập trình thường nhầm lẫn giữa 2 khái niệm này. Tuy nhiên, tệp tin cookie sẽ được truyền từ server tới browser và được lưu trữ trên máy tính của bạn khi bạn truy cập vào ứng dụng, Mỗi khi người dùng tải ứng dụng, trình duyệt sẽ gửi cookie để thông báo cho ứng dụng về hoạt động trước đó. Chính vì đặc tính này mà nhiều ứng dụng sử dụng cookie trên trình duyệt để chạy quảng cáo, cũng như xây dựng hệ thống recommendation thông qua nhiều trang web khác nhau.

Mỗi cookie thường có khoảng thời gian timeout nhất định do lập trình viên xác định trước. Những thông tin được lưu vào cookie ví dụ như, thao tác người dùng, tần xuất ghé thăm website, thời gian truy cập... Tất cả chúng đều là những thông tin mang tính tạm thời và được lưu trong 1 khoảng thời gian ngắn.

Cookie có tính bảo mật rất thấp, vì vậy đừng bao giờ lưu trữ những thông tin quan trọng, vì nó hoàn toàn có thể bị sửa đổi và đánh cắp, thập chí tấn công website của bạn.

Cache

Cache là bộ nhớ đệm, vùng lưu trữ tạm thời trong máy tính. Nó khác với cookie ở chỗ thông tin lưu trữ ở đây là các tài liệu web, các hình ảnh, các video, HTML, ... nhằm mục đích giảm tải băng thông, tăng tốc độ load và truy cập web.

Bộ nhớ cache bao gồm bản sao các bit của trang Web được lưu trữ trên ổ đĩa cứng. Trình duyệt tải các bit khi bạn truy cập một trang Web nào đó, tốc độ truy cập sẽ nhanh hơn và tiết kiệm được băng thông khi "download". Bộ nhớ cache sẽ được lưu trữ cho đến khi bạn tự tay xóa nó đi.

Bộ nhớ cache chính là nơi trình duyệt của bạn lưu trữ những file copy để bạn không phải tải lại lần nữa khi duyệt web. Ví dụ, khi lần đầu bạn truy cập vào một trang web có rất nhiều hình ảnh, Bạn mất khoảng 1s để tải hết nội dung trang. Nhưng nhờ có bộ nhớ cache, những lần truy cập sau có thể gần như ngay lập tức nội dung đã được tải.

Ban truyền thông ITPlus Academy

 

Bài viết cùng chủ đề