12/08/2018, 18:11

Session và Cookie

1. Mở đầu Đối với các bạn mới bắt đầu lập trình web, đã từng bao giờ bạn thắc mắc tại sao web site lại chỉ cần login lần đầu tiên, những lần sau thì tự động login, làm thế nào để thực hiện được điều đó ? Đó chính là nhờ session và cookie, việc hiểu rõ và phân biệt hai khái niệm này là một việc ...

1. Mở đầu

Đối với các bạn mới bắt đầu lập trình web, đã từng bao giờ bạn thắc mắc tại sao web site lại chỉ cần login lần đầu tiên, những lần sau thì tự động login, làm thế nào để thực hiện được điều đó ?

Đó chính là nhờ session và cookie, việc hiểu rõ và phân biệt hai khái niệm này là một việc khá quan trọng, nó còn giúp chúng ta giải quyết khá nhiều bài toán khác. Trong bài này chúng ta sẽ tìm hiểu dần nhé:

2. So sánh

2.1 Điểm giống nhau

Session hay cookie đơn giản là những cách để chúng ta (các lập trình viên) lưu lại dữ liệu của người dùng sử dụng website.

Oh, nghe có vẻ easy, tiếp tục nào:

2.2 Điểm khác nhau

2.2.1 Lưu trữ

Cookie

Cookie là một đoạn dữ liệu được truyền từ server tới browser, được browser lưu trữ và gửi ngược lại server mỗi khi nó gửi request.

=> Thế có nghĩa là cookie được lưu trong máy của bạn, thử dùng javascript để kiểm tra nó xem:

Vâng, một đám loằng ngoằng, có vẻ như lưu trữ ở dạng json.

Server gửi nội dung của cookie tới browser thông qua header của respone, browser sẽ nhận dữ liệu và tổ chức lưu trữ coookie. Mỗi một trình duyệt sẽ có cách lưu trữ cookie khác nhau.

Có đúng là lưu trữ theo dạng json không ? Mình test thử với trình duyệt chrome xem nhé !

Xem xem một hồi thì ra không phải các bạn ạ.

Như vậy, cookie được sinh ra bời trình duyệt và được lưu trữ dưới dạng SQLite3 trong máy tính nhé, còn khi mình kiểm tra trên trình duyệt thì nó đã được redisplay rồi.

Mỗi website có thể lưu trữ những thông tin khác nhau trong cookie

Ví dụ thông tin trong giỏ hàng, đánh dấu đã login hay chưa, thời gian gần đây nhất bạn đăng nhập, vân vân và mây mây tùy bài toán cụ thể.

Session

Bài toán bây giờ là cùng một thời điểm, server có thể nhận hàng nghìn request, vậy làm sao để phân được giữa các trình duyệt khác nhau.

Nói cách khác máy chủ cần phân biệt được trong những lượt truy cập gửi tới thì đâu là từ máy tính bạn và đâu là của người khác.

Ví dụ cụ thể là khi trình duyệt này đã login thì cho phép truy cập trang chủ website, trình duyệt khác chưa login thì bắn sang trang đăng nhập.

Và thế là khái niệm session được ra đời.

Như vậy session là phiên làm việc, được sinh ra bởi server, là cách đơn giản để lưu trữ 1 biến và biến này có thể tồn tại từ trang này sang trang khác, còn việc tổ chức lưu trữ như thế nào thì .... tùy vào từng server cụ thể             </div>
            
            <div class=
0