Dengan perkembangan Internet, kami semakin menggunakan penyemak imbas untuk menyemak imbas web, membeli-belah, log masuk dan operasi lain. Dalam proses ini, kita sering mendengar perkataan - cookie. Jadi apa sebenarnya cookies? Apakah fungsinya? Hari ini kami akan mendedahkan misteri penyimpanan kuki, menganalisis interaksi antara penyemak imbas dan pelayan secara terperinci, dan memberikan contoh kod khusus.
1. Apakah itu biskut?
Ringkasnya, kuki ialah sekeping kecil data yang dihantar oleh pelayan ke penyemak imbas dan disimpan secara setempat. Setiap kali penyemak imbas membuat permintaan ke pelayan yang sama, ia akan membawa data kuki yang disimpan sebelum ini. Dalam kes ini, pelayan boleh membaca data kuki dalam penyemak imbas dan melakukan operasi yang sepadan berdasarkan maklumat di dalamnya.
2. Peranan kuki
Melalui kuki, pelayan boleh mengenal pasti pengguna dan mengekalkan keadaan sesi pengguna apabila pengguna melawat laman web semula. Sebagai contoh, apabila kami log masuk, pelayan akan menghantar kuki yang mengandungi maklumat log masuk kami ke penyemak imbas, supaya apabila kami melawat laman web itu semula, pelayan boleh mengenali kami seperti kali terakhir dan log masuk secara automatik.
Melalui kuki, pelayan boleh mendapatkan beberapa tabiat dan keutamaan peribadi pengguna serta maklumat lain, dengan itu menyediakan pengguna dengan perkhidmatan dan cadangan yang lebih diperibadikan. Contohnya, apabila kami menyemak imbas tapak web beli-belah, pelayan akan mengesyorkan produk berkaitan berdasarkan rekod pembelian dan sejarah penyemakan imbas kami sebelum ini.
Melalui kuki, pelayan boleh menjejaki tabiat menyemak imbas pengguna untuk melakukan analisis dan statistik yang berkaitan. Sebagai contoh, syarikat pengiklanan boleh menggunakan kuki untuk menjejaki maklumat seperti masa dan kekerapan lawatan pengguna ke tapak web yang berbeza, untuk memahami minat pengguna dan keinginan membeli dan menyediakan pengiklan dengan perkhidmatan promosi pengiklanan yang lebih baik.
3. Interaksi antara penyemak imbas dan pelayan
Penyimpanan dan pemerolehan kuki dijalankan antara penyemak imbas dan pelayan Keseluruhan proses interaksi boleh dibahagikan kepada empat langkah berikut:
Untuk lebih memahami proses ini, mari lihat contoh khusus.
(1) Contoh kod pelayan
Berikut ialah kod pelayan yang ditulis menggunakan rangka kerja Node.js untuk menghantar respons yang mengandungi maklumat kuki kepada penyemak imbas.
const http = require('http'); http.createServer((req, res) => { //设置cookie res.writeHead(200, { 'Set-Cookie': 'name=cookie_test; max-age=60' }); //发送响应 res.end('Hello World! '); }).listen(8080); console.log('Server running at http://localhost:8080/');
Analisis kod:
(2) Contoh kod penyemak imbas
Berikut ialah kod penyemak imbas yang ditulis dalam JavaScript untuk menghantar permintaan ke pelayan di atas dan mengeluarkan maklumat kuki apabila respons diterima.
// 发送请求 fetch('http://localhost:8080') .then(response => { // 读取cookie console.log(response.headers.get('Set-Cookie')); return response.text(); }) .then(data => { console.log(data); }) .catch(error => console.error(error));
Analisis kod:
4. Atribut biasa kuki
Selain atribut umur maksimum yang digunakan dalam contoh di atas, kuki mempunyai banyak atribut lain. Atribut biasa adalah seperti berikut:
Atribut ini menentukan laluan kuki. Apabila penyemak imbas memulakan permintaan, kuki akan dibawa hanya jika laluan permintaan betul-betul sepadan dengan laluan kuki.
res.writeHead(200, { 'Set-Cookie': 'name=value; Path=/test' });
Atribut ini menentukan nama domain kuki. Apabila penyemak imbas memulakan permintaan, kuki akan dimasukkan hanya jika nama domain yang diminta betul-betul sepadan dengan nama domain kuki.
res.writeHead(200, { 'Set-Cookie': 'name=value; Domain=.example.com' });
Atribut ini menentukan tempoh sah kuki. Selepas atribut ini ditetapkan, kuki akan tamat tempoh secara automatik pada masa yang ditentukan dan dipadamkan oleh penyemak imbas.
res.writeHead(200, { 'Set-Cookie': 'name=value; Expires=Wed, 18 Nov 2020 08:51:29 GMT' });
Atribut ini menentukan sama ada kuki hanya boleh dihantar melalui protokol https. Selepas menetapkan atribut ini, kuki hanya akan dibawa apabila permintaan https dibuat.
res.writeHead(200, { 'Set-Cookie': 'name=value; Secure' });
Atribut ini menentukan sama ada kuki hanya boleh dihantar melalui protokol http. Selepas menetapkan atribut ini, penyemak imbas tidak boleh mendapatkan maklumat kuki melalui JavaScript, dengan itu meningkatkan keselamatan kuki.
res.writeHead(200, { 'Set-Cookie': 'name=value; HttpOnly' });
5. Ringkasan
Melalui pengenalan artikel ini, kami telah mempelajari tentang definisi, fungsi, kaedah penyimpanan dan atribut biasa kuki. Pada masa yang sama, kami juga mempelajari model interaksi kuki antara penyemak imbas dan pelayan, dan memperdalam pemahaman kami tentang kuki melalui contoh kod tertentu. Sebagai seorang jurutera hadapan, kita harus mempunyai pemahaman yang mendalam dan penguasaan pengetahuan berkaitan kuki untuk mengaplikasikannya dengan lebih fleksibel dan cekap dalam pembangunan sebenar.
Atas ialah kandungan terperinci Misteri storan kuki terbongkar: penjelasan terperinci tentang interaksi antara penyemak imbas dan pelayan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!