Session, Cookie, Cache có nhẽ đây chính là 3 định nghĩa được nói đến thường xuyên đối với các lập trình viên. Khi mới bắt đầu tập tành khiến web, tôi rất hay nhầm lẫn giữa các định nghĩa này, tôi không biết lúc nào thì mình nên tiêu dùng session, lúc nào mình nên dùng cookie, cache được sử dụng để khiến gì…. Có lần chỉ một chức năng nhỏ để lưu lịch sử thao tác của người mua trên trình duyệt , tôi đã cho nó vào hết Session và ném cả đám đó cho mentor của mình review, và dĩ nhiên, tôi bị mắng rất thậm tệ…. “Em sở hữu biết session là gì không?” “Em mang biết cookie là gì không?”, “Có biết dòng gì cũng nhét hết vào session thế này sẽ làm ngốn đầy đủ bộ nhớ của server không?”….. Vâng tôi đã chẳng biết gì về những khái niệm đó cả, tôi tiêu dùng nó một cách vô tội vạ và chỉ để ý sao cho chức năng mình khiến có thể chạy được mà chẳng để ý những loại tôi dùng mang đúng mục đích hay không? có đích thực tận dụng nó 1 cách triệt để, và có thật sự tối ưu hay không? Thật ra thì … tuổi trẻ mà, CỨ SAI ĐI VÌ CUỘC ĐỜI CHO PHÉP. Càng sai càng nhớ lâu, càng đau, càng nhớ đời. Nào chúng ta cùng tìm hiểu các khái niệm này nhé
Session
Một session hay còn gọi là một phiên làm việc. Trong công nghệ 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 vận dụng trên thiết bị của bạn) với server. Một session khởi đầu khi client gửi request tới sever, nó còn đó xuyên suốt trong khoảng trang này đến trang khác trong ứng dụng và chỉ kết thúc khi hết thời kì 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 sử dụng session một cách vô tội vạ (giống như mình đã từng đó) thì sẽ làm cho cho máy chủ phải lưu rất nhiều. Đặc biệt nếu ứng dụng đó với đến vài triệu người dùng chẳng hạn thì … điều đấy thật là kinh khủng. Thông thường chúng ta chỉ nên lưu trữ những thông tin nhất thời thời trong session VD như: thông tin đăng nhập, thông tin các sản phẩm trong giỏ hàng (đối với những trang web thương nghiệp điện tử)…
Với mỗi session sẽ được cấp phát 1 định danh độc nhất vô nhị 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 1 SessionID khác có trước đó.
Bạn đã bao giờ đặt ra nghi vấn rằng “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 ấy là của client nào chưa?”. Easy thôi, với mỗi session được tạo ra, đồng thời chúng sẽ tạo ra 1 tệp tin cookie lưu trên trình phê duyệt của bannj ứ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à ra ngay ý mà (ahaha)
Cookie
Cũng giống như session, cookie cũng được sử dụng để lưu các thông tin lâm thời thời. Chính vì điều này khiến cho mình luôn bị nhầm lẫn giữa hai khái niệm hoài (bây giờ chắc đỡ hơn). Chỉ sở hữu điều, 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 lúc bạn tầm nã cập vào ứng dụng, Mỗi khi người dùng tải ứng dụng, trình duyệt y sẽ gửi cookie để thông tin cho vận dụng về hoạt động trước đó của bạnĐừng hỏi vì sao khi bạn vừa xem một chiếc đồng hồ cực đẹp trên 1 website tậu sắm, đơn thuần chỉ là lướt qua như một cơn gió, vậy mà khi tầm nã cập vào 1 trang web khác (có chạy quảng cáo) đã thấy mẫu đồng hồ đẹp lung linh đấy bên dưới rồi =)) Rất phổ biến những ứng dụng lợi dụng việc lưu trữ cookie trên trình duyệt để chạy quảng cáo, xây dựng hệ thống recommendation…Và một điều vô cùng quan trọng là đừng bao giờ lưu trữ những thông tin quan trọng, yêu cầu tính bảo mật cao vào cookie, nó hoàn toàn với thể sửa đổi và đánh cắp, thấp chí mang thể lợi dụng điều này để tiến công web site của bạn. (Minh toàn sử dụng extention “editthiscookie” của chrome để thay đổi cookie thôi à :v )
Mỗi cookie thường với khoảng thời gian timeout nhất quyết do lập trình viên xác định trước. Những thông tin được lưu vào cookie thí dụ như, thao tác người dùng, tần xuất xịt thăm website, thời gian truy tìm cập… Tất cả chúng đều là những thông tin mang tính tạm thời thời và được lưu trong một khoảng thời gian ngắn.
Cache
Cache là bộ nhớ đệm, vùng lưu trữ tạm thời trong máy tính. Nó khác mang cookie ở chỗ thông tin lưu trữ ở đây là những tài liệu web, các hình ảnh, các video, HTML, …. Một phát kiến khá sáng láng của con người trong công đoạn công nghệ thông báo này để giảm vận tải băng thông, tăng tốc độ load, 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 thông qua tải các bit lúc bạn truy hỏi cập một trang Web nào đó, tốc độ truy vấn cập sẽ tốc độ 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. Do đấy đừng dại mà xóa cache khi không cần thiết nhé (mình gỡ bỏ CCleaner trên máy tính từ lâu rồi (yaoming) )
Bộ nhớ cache chính là nơi trình ưng chuẩn của bạn lưu trữ các file coppy để bạn không phải vận tải lại lần nữa khi ưng chuẩn web. VD. Lần đầu lúc bạn tầm nã cập vào một trang web sở hữu rất đa dạng hình ảnh, Bạn mất khoảng 1s để load xong trang (chắc do mạng cùi bắp), Nhưng nhờ sở hữu bộ nhớ cache, thời gian để bạn load trang với thể gần như là ngay ngay thức thì luôn cũng được đó.
Kết
Trên đây là hồ hết những thông tin về session, cookie và cache mình san sớt cùng các bạn, hy vẳng bài viết này sẽ hữu ích đối với các bạn mới tập dượt làm web và đừng bao giờ mắc phải sai lầm