Menamai cookie - praktik terbaik [ditutup]


107

Seperti apa seharusnya nama cookie itu?

Haruskah mereka:

  • huruf kecil
  • CamelCase
  • Underscore_Camel_Case
  • HURUF BESAR

Atau haruskah mereka menjadi sesuatu yang lain?


1
Pertanyaan bagus! Akan memberikan suara positif jika saya memiliki suara tersisa.
Pekka

1
@Pekka: Saya memberikan suara positif untuk Anda. Saya akan memberi suara positif juga, tetapi hanya dapat memberi suara positif sekali :(
Charlie Brown

2
@Bran, saya memberi suara positif untuk Anda karena saya mendapatkan suara baru dalam beberapa menit. Oh, tapi aku juga akan memilih ini ... astaga.
Tor Valamo

1
Terima kasih Jacob! Itu membawa kita selangkah lebih maju. Anda tidak berencana untuk memberi suara positif pada pertanyaan ini secara kebetulan, bukan? Karena jika Anda melakukannya, kami akan membutuhkan sukarelawan lagi!
Pekka

1
Untuk berjaga-jaga, saya tidak akan melakukannya. Jadi, ini +1 saya untuk kalian. :)
Hilton Perantunes

Jawaban:


66

appname_meaningfulname


10
@Emanuil: Untuk membedakannya dari semua cookie lain yang dibuat oleh aplikasi lain di domain yang sama.
Ignacio Vazquez-Abrams

2
@Emanuil Rusev, add-on browser terkadang menyetel cookie. Saya baru saja mempelajarinya dengan cara yang sulit ketika situs web saya mengambil cookie dan mendapatkan data yang ditetapkan oleh add-on pengguna, bukan data yang ditetapkan oleh situs saya.
lala

8

Ingatlah bahwa cookie ini dikirim dengan setiap permintaan, jadi imho, cukup gunakan nama terkecil yang Anda bisa, dan dokumentasikan kode Anda dengan baik.


4

Ini haruslah sesuatu yang menghindari konflik penamaan dengan parameter _GET dan _POST sewenang-wenang yang mungkin Anda gunakan, karena _REQUEST membungkus ketiga larik global (!), Dengan prioritas bergantung pada bagaimana pengaturan variable_order Anda disetel di php.ini. Dengan kata lain, jika Anda memiliki _COOKIE bernama "x" dan parameter querystring bernama "x", dan Anda meminta $ _REQUEST ["x"], Anda mendapatkan nilai cookie saat Anda mungkin menginginkan / mengharapkan parameter GET. Hal ini menjadi masalah terutama jika cookie Anda dicakup ke root situs "/" Anda, dan bukan ke folder tempat cookie digunakan.

Jadi saya katakan, dua praktik terbaik:

  1. pastikan Anda membatasi cakupan cookie Anda ke jalur di mana mereka membaca dan menulis, (argumen ketiga metode setcookie () melakukan ini)
  2. berikan cookie Anda semacam konvensi penamaan khusus cookie. Saya sarankan situs web terbalik, seperti namespace java, lalu ".". {Appname}. ".". {Friendly cookie name camel cased} Jadi, jika situs Anda adalah www.testsite.com, dan aplikasi Anda adalah foo, dan variabel Anda adalah "bar bar bar bar bar barann", itu akan menjadi "com.testsite.foo.barBarBarBarBarBarann"

3
Pernahkah Anda melihat beberapa praktik ini di situs web langsung?
Emanuil Rusev

0

Saya menggunakan gaya apa pun standar pengkodean untuk panggilan proyek.

Umumnya saya lebih suka camelCase untuk skema penamaan, tetapi siapa pun yang membayar tagihan adalah yang akan saya gunakan.


0

Mungkin Anda tidak akan menyukai jawaban saya:

Jangan gunakan cookie Anda sendiri, tetapi simpan data dalam sesi server. Jadi Anda hanya perlu satu cookie (untuk mereferensikan id sesi) dan bagaimana Anda memberi nama yang tidak berperan.


9
Itu menjadi berantakan dengan penyeimbang beban, karena sesi tersebut harus disimpan dalam database yang tidak berada di host yang sama (atau mungkin bahkan pusat data yang sama). Terkadang cookie baik-baik saja.
dotancohen

1
@dotancohen dapatkah Anda memberikan beberapa tautan terkait masalah yang Anda jelaskan? Terima kasih!
Sharky

1
"Jangan gunakan cookie" terdengar agak puritan; tapi saya suka upaya ini untuk menjaga kebersihan bagi pengguna.
Parapluie

securecookies dapat digunakan dengan aman tanpa penyimpanan sesi sisi server. Mereka tidak harus berukuran besar (sebenarnya ada batasan 4k yang cukup sederhana) dan menghindari penyeimbang beban dan / atau pencarian DB terpusat.
colm.anseo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.