cari
Rumahpembangunan bahagian belakangtutorial php是不是现在的网站都用session了?不用了cookie了?

是吗 cookie没用了吗

回复内容:

是吗 cookie没用了吗

似乎没人说到重点。

简单来说,session在服务器端存储链接链接状态/数据的,cookie是在浏览器端记录链接状态/数据的。

HTTP协议是无状态的,就是说一个浏览器请求网页,接收完网页之后浏览器断开与服务器的链接,服务器不会再记住这个链接的,当浏览器再发送请求的时候服务器总是把这个请求当作新的请求,服务器不知道这个浏览器以前发送过什么东西。比如用户登录这个问题,当浏览器发送用户名密码登录成功之后,会断开与服务器的链接,那么再发送请求的时候就服务器其实是不知道这个浏览器登录过了。

所以为了解决这个问题,服务器就在 HTTP 头里加入了一个cookie,浏览器收到之后就会存储起来。浏览器每次发送请求的时候都会把这个cookie顺带发送给服务器,那么服务器就可以通过浏览器发送过来的 cookie 知道这个浏览器以前发送过什么请求(如果服务器记录过得话)。说到登录就是,浏览器发送 POST 请求登录之后,服务器返回一个登录成功,并且包含了随机生成的唯一cookie,那么浏览器以后的请求都会发送这个cookie,服务器读取这个cookie,那么服务器就知道以前这个用户登录过了。当然cookie也可以用来在浏览器端存储数据,在浏览器端js是可以读取cookie的,所以可以存储一些数据,等用户下次访问网页的时候就可以读取,比如,某些网页的游戏的你曾经获得的最高分,甚至是用户名和密码(不过HTML5支持其他的方式,存到cookie里的越来越少了),发送到服务器端,服务器不理会就是了。

刚才说道登录的时候,用户登录之后服务器会分配一个唯一的 cookie,那么服务器当然也需要存储这个cookie,另外为了记录这个浏览器以前做过什么,那么也必须记录在这个cookie下发送过的一些请求,比如用户登录之前的页面是某个页面下,登录后需要给人家跳转回去呀(就是一些用户曾经发送的请求,但有没有必要写入到数据库里的临时数据)。PHP,Java等通过这个唯一的cookie(不一定是cookie,下面解释)访问这些数据"接口"叫做session。基本上就是声明某些页面使用session,然后你在这些session里面存储数据,PHP等会自动帮你生成唯一的cookie和存储这个cookie对应的数据,而这些数据是不发送给浏览器端的。你不需要知道这个唯一的cookie是什么和对应的数据存储在哪里,PHP等服务器自动帮你处理这这些操作。所以说,其实session就相当于PHP等帮你实现了一个数据库,存储这个cookie及其对应的数据,只不过这些数据都是临时的,不需要像数据库那样的永久保存。(如果你想把这些数据存储在cookie里也是可以的,不过如果存储的数据太多的话也是浪费带宽什么的,而这样的实现的话每次多发送的数据只是这个唯一的cookie,另外每次都发送这些数据的话毕竟也不太安全。cookie可以在浏览器端伪造,所以所有重要数据都要加密存储在cookie里,但是如果使用唯一的密钥又怕破解,使用不同的密钥又不方便管理,而且加解密都要浪费计算资源,所以这些数据还是存储在服务器端吧)

刚才说的是,服务器考cookie实现session,其实还有 URL重写的方式实现 session。浏览器每次发送请求,其实还有一个地方可以存储数据,那就是URL,所以上面说道的唯一标识可以到网页中的url中。在网页中的URL的末尾添加这个唯一标识,浏览器发送请求的时候依旧会把这个唯一标识发送过去。比如把http://www.example.com/path/to/file.php变成http://www.example.com/path/to/file.php;PHPSESSIONID=唯一标识。但是这种方式有一个确定,那就是需要在服务器端代码的每一个网页的每一处链接手动的完成这个URL的转换,显然没有使用cookie的方式方便。

session也是靠cookie实现的

cookie可以长期保存一些数据
session则是短期维持会话数据
两者不冲突
大多数session都是用cookie实现的

两者各有用处,不能代替。

一般来说,session只存在于会话期,一旦结束会话就不存在了。就算不结束会话,一般也会在一定时间后被清除,所以只能用来缓存一些不需要持久化的数据。

cookie除了可以存在于会话期,还可以相对长时间的保存数据。比如你要保持登录,就要用cookie。session的session id也是用cookie保存的,不过这是php自己进行的不需要你干预。

cookie存在客户端。客户端可以读取cookie保存内容。
每次发起请求,客户端找出页面的cookie传给服务器。
cookie内容改变一般有两种:

  1. 每次请求时,服务器返回内容,设定cookie。

  2. 客户端的js脚本之类也可以改变cookie

session

基于cookie,用于保存session的id。
session存取都在服务器。客服端不知道session保存内容,但知道sessionID。
每次发起请求,sessionID随着cookie传给服务器。
session内容只能由服务器读取和改变。


保存期限都是有对应设置的,不存在什么这个保存时间长、那个短。(但是有个安全性问题参见下文)
cookie由保存者(服务器或者客户端)指定,每个cookie内容有单独的有效期设定;
session在服务器有设定,有效期是对于整个session来说的。


cookie是可以伪造的,而session保存在服务器无法篡改。session保存内容更安全。
当然你看了上面可能会说:sessionID保存在cookie里,cookie可以伪造,所以可以伪造sessionID啊。
一般来说,伪造一个有效的sessionID还是有难度的。引出的另一个问题伪造session与题干无关不再赘述。


只需要服务端用到、客户端不需要 的数据,推荐用session。不想让客户端知道的敏感数据尤其适用。

需要客户端临时使用,不需要服务器保存 的 数据,推荐用cookie。比如页面统计里跟踪用户行为的临时数据

有些情况下用session或者纯cookie都可以,此时就要结合特点去衡量采用什么。
一般现在采用session比较多,现在网站也不缺那点空间资源

cookie:节省服务器资源,可以长期有效,不安全,适合存不重要的信息。
session:占用服务器资源,一般用户操作期间才有效,安全,适合存重要信息。

session是server端保存会话数据的,一般会画结束就会销毁,所以生命周期很短暂,不可以长期保存数据。
cookie是保存在client端的,可长期保存数据。

  • session 也需要 cookies 技术的支持

  • 不建议直接在 cookies 中存东西,首选 session

session需要用到cookie的呢

cookie肯定会用,例如网站登录后,生成一个key,key除了放缓存外,还会把相关的值保存到cookie,当要验证用户是否登录的时候,直接拿对应cookie的值,再在缓存比较

“网站登录状态保存7天”,这个就要靠COOKIE解决,如果用session,由于seesion是保存在服务端,服务器会有被塞暴内容的风险

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
PHP dan Python: Paradigma yang berbeza dijelaskanPHP dan Python: Paradigma yang berbeza dijelaskanApr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP dan Python: menyelam mendalam ke dalam sejarah merekaPHP dan Python: menyelam mendalam ke dalam sejarah merekaApr 18, 2025 am 12:25 AM

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Memilih antara php dan python: panduanMemilih antara php dan python: panduanApr 18, 2025 am 12:24 AM

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

PHP dan Rangka Kerja: Memodenkan bahasaPHP dan Rangka Kerja: Memodenkan bahasaApr 18, 2025 am 12:14 AM

PHP tetap penting dalam proses pemodenan kerana ia menyokong sejumlah besar laman web dan aplikasi dan menyesuaikan diri dengan keperluan pembangunan melalui rangka kerja. 1.Php7 meningkatkan prestasi dan memperkenalkan ciri -ciri baru. 2. Rangka kerja moden seperti Laravel, Symfony dan CodeIgniter memudahkan pembangunan dan meningkatkan kualiti kod. 3. Pengoptimuman prestasi dan amalan terbaik terus meningkatkan kecekapan aplikasi.

Impak PHP: Pembangunan Web dan seterusnyaImpak PHP: Pembangunan Web dan seterusnyaApr 18, 2025 am 12:10 AM

Phphassignificantelympactedwebdevelopmentandextendsbeyondit.1) itpowersmajorplatformslikeworderpressandexcelsindatabaseIntions.2) php'SadaptabilityAldoStoScaleforlargeapplicationFrameworksLikelara.3)

Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan?Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan?Apr 17, 2025 am 12:25 AM

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.

Bagaimanakah PHP mengendalikan pengklonan objek (kata kunci klon) dan kaedah sihir __clone?Bagaimanakah PHP mengendalikan pengklonan objek (kata kunci klon) dan kaedah sihir __clone?Apr 17, 2025 am 12:24 AM

Dalam PHP, gunakan kata kunci klon untuk membuat salinan objek dan menyesuaikan tingkah laku pengklonan melalui kaedah Magic \ _ _ _. 1. Gunakan kata kunci klon untuk membuat salinan cetek, mengkloning sifat objek tetapi bukan sifat objek. 2. Kaedah klon \ _ \ _ boleh menyalin objek bersarang untuk mengelakkan masalah menyalin cetek. 3. Beri perhatian untuk mengelakkan rujukan pekeliling dan masalah prestasi dalam pengklonan, dan mengoptimumkan operasi pengklonan untuk meningkatkan kecekapan.

PHP vs Python: Gunakan Kes dan AplikasiPHP vs Python: Gunakan Kes dan AplikasiApr 17, 2025 am 12:23 AM

PHP sesuai untuk pembangunan web dan sistem pengurusan kandungan, dan Python sesuai untuk sains data, pembelajaran mesin dan skrip automasi. 1.PHP berfungsi dengan baik dalam membina laman web dan aplikasi yang cepat dan berskala dan biasanya digunakan dalam CMS seperti WordPress. 2. Python telah melakukan yang luar biasa dalam bidang sains data dan pembelajaran mesin, dengan perpustakaan yang kaya seperti numpy dan tensorflow.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.