2010-04-01 36 views

Trả lời

24

HTTP Cookies không phải là một tính năng của PHP, cũng không phải là một tính năng của Javascript: đó chỉ là ngôn ngữ lập trình cho phép người phát triển thao túng chúng.


Sự khác biệt lớn nhất giữa JS và PHP là:

  • Javascript chạy trên các mặt hàng
  • PHP chạy trên phía máy chủ

Nhưng cookie vẫn đều giống nhau: chúng được định nghĩa là tiêu chuẩn - xem RFC 2965.


Tuy nhiên, lưu ý rằng trình duyệt hiện đại thực hiện các tập tin cookie mà không phải truy cập từ javascript (xem httponly tùy chọn setcookie) - có nghĩa là, tùy thuộc vào trình duyệt, và cách một cookie được thiết lập, nó có thể không truy cập được từ Javascript.

Đây là một biện pháp an ninh - và không phải là một sự khác biệt giữa "js cookie" và "cookie php": nó chỉ là một tài sản của một số cookie.

+0

Và thuộc tính 'httponly' đó có thể được thay đổi rất dễ dàng bởi ứng dụng khách sử dụng một số tiện ích miễn phí như Tiện ích mở rộng _EditThisCookie_ Chrome. – Ankit

0

Cookie chỉ là một tệp được lưu trữ trên máy khách và thường chứa tên, giá trị và thời gian hết hạn. Cookie được gửi trong tiêu đề của yêu cầu trang HTTP, vì vậy chúng không có sẵn ngay lập tức (trừ khi bạn sử dụng bộ đệm đầu ra). Cookie rất tốt cho dữ liệu không nhạy cảm, vì chúng dễ dàng được tìm thấy thông qua cài đặt trình duyệt của khách hàng.

Cookie cũng có thể được sử dụng trong việc tạo biến phiên, được lưu trữ trên máy chủ. Trong trường hợp này, giá trị cookie là một chỉ mục mà máy chủ sử dụng để xác định các giá trị của nó. Đây là một cách tiếp cận tốt hơn cho các dữ liệu nhạy cảm hơn, vì chỉ có một giá trị "vô nghĩa" nằm trên máy khách. Với điều này, Cookie và dữ liệu phiên (cũng như dữ liệu GET và POST) là các biến Siêu toàn cầu, có nghĩa là chúng có thể được cả JavaScript và PHP sử dụng. Một lần nữa, bắt duy nhất là cookie có thể không có sẵn ngay lập tức, tùy thuộc vào cách hoạt động của tập lệnh và cài đặt bộ đệm đầu ra của bạn.