การตั้งชื่อคุกกี้ - แนวทางปฏิบัติที่ดีที่สุด [ปิด]


107

ชื่อคุกกี้ควรมีลักษณะอย่างไร?

ควรจะเป็น:

  • lower_case
  • CamelCase
  • Underscore_Camel_Case
  • UPPER_CASE

หรือควรเป็นอย่างอื่น?


1
คำถามที่ดี! จะเพิ่มคะแนนถ้าฉันมีคะแนนเหลือ
Pekka

1
@Pekka: ฉันโหวตให้คุณ ฉันก็อยากโหวตเหมือนกัน แต่โหวตได้ครั้งเดียวเท่านั้น :(
Charlie Brown

2
@ แบรนฉันโหวตให้คุณตั้งแต่ฉันได้รับการโหวตใหม่ในไม่กี่นาทีอย่างไรก็ตาม โอ้ แต่ฉันจะโหวตให้ด้วย ...
Tor Valamo

1
ขอบคุณเจคอบ! นั่นทำให้เราก้าวไปข้างหน้า คุณไม่ได้วางแผนที่จะโหวตคำถามนี้โดยบังเอิญใช่ไหม เพราะถ้าคุณทำเราต้องการอาสาสมัครอีกคน!
Pekka

1
ในกรณีที่ฉันจะไม่ นี่คือ +1 ของฉันสำหรับพวกคุณ :)
Hilton Perantunes

คำตอบ:


66

appname_meaningfulname


10
@Emanuil: เพื่อแยกความแตกต่างจากคุกกี้อื่น ๆ ทั้งหมดที่สร้างโดยแอปอื่นในโดเมนเดียวกัน
Ignacio Vazquez-Abrams

2
@Emanuil Rusev บางครั้งโปรแกรมเสริมของเบราว์เซอร์จะตั้งค่าคุกกี้ ฉันเพิ่งเรียนรู้วิธีนี้เป็นวิธีที่ยากเมื่อเว็บไซต์ของฉันหยิบคุกกี้ขึ้นมาและได้รับข้อมูลที่ตั้งค่าโดยส่วนเสริมของผู้ใช้แทนที่จะเป็นข้อมูลที่ไซต์ของฉันกำหนด
lala

8

โปรดทราบว่าคุกกี้นี้ถูกส่งไปพร้อมกับทุกคำขอดังนั้นฉันจึงใช้ชื่อที่เล็กที่สุดที่คุณสามารถทำได้และบันทึกรหัสของคุณให้ดี


4

ควรเป็นสิ่งที่หลีกเลี่ยงความขัดแย้งในการตั้งชื่อกับพารามิเตอร์ _GET และ _POST โดยพลการที่คุณอาจใช้เนื่องจาก _REQUEST จะรวมอาร์เรย์ส่วนกลาง (!) กล่าวอีกนัยหนึ่งคือถ้าคุณมี _COOKIE ชื่อ "x" และพารามิเตอร์ข้อความค้นหาชื่อ "x" และคุณขอ $ _REQUEST ["x"] คุณจะได้รับค่าคุกกี้เมื่อคุณอาจต้องการ / คาดหวัง GET พารามิเตอร์ นี่เป็นปัญหาโดยเฉพาะอย่างยิ่งหากคุกกี้ของคุณถูกกำหนดขอบเขตไว้ที่รูทเว็บไซต์ของคุณ "/" และไม่อยู่ในโฟลเดอร์ที่มีการใช้งาน

ดังนั้นฉันจึงพูดว่าแนวทางปฏิบัติที่ดีที่สุดสองประการ:

  1. ตรวจสอบให้แน่ใจว่าคุณ จำกัด ขอบเขตของคุกกี้ของคุณไปยังเส้นทางที่อ่านและเขียน (อาร์กิวเมนต์ที่สามของวิธี setcookie () ทำสิ่งนี้)
  2. ให้คุกกี้ของคุณมีรูปแบบการตั้งชื่อเฉพาะคุกกี้ ฉันขอแนะนำเว็บไซต์แบบย้อนกลับเช่น java namespaces ตามด้วย ".". {appname} ".". {friendly cookies name camel cased} ดังนั้นหากไซต์ของคุณคือ www.testsite.com และแอปของคุณเป็น foo และตัวแปรของคุณ คือ "bar bar bar bar bar bar bar barann" ก็จะเป็น "com.testsite.foo.barBarBarBarBarBarann"

3
คุณเคยเห็นแนวทางปฏิบัติเหล่านี้ในเว็บไซต์จริงหรือไม่?
Emanuil Rusev

0

ฉันใช้รูปแบบใดก็ได้ตามมาตรฐานการเข้ารหัสสำหรับโครงการเรียกร้อง

โดยทั่วไปแล้วฉันชอบ camelCase ในการตั้งชื่อแบบแผนการตั้งชื่อ แต่สิ่งที่ใครจ่ายค่าใช้จ่ายคือสิ่งที่ฉันจะไปด้วย


0

บางทีคุณอาจจะไม่ชอบคำตอบของฉัน:

อย่าใช้คุกกี้ของคุณเอง แต่เก็บข้อมูลไว้ในเซสชันเซิร์ฟเวอร์ ดังนั้นคุณต้องใช้คุกกี้เพียงตัวเดียว (เพื่ออ้างอิงรหัสเซสชัน) และวิธีการตั้งชื่อที่ไม่มีบทบาท


10
สิ่งนี้กลายเป็นเรื่องยุ่งกับตัวโหลดบาลานเซอร์เนื่องจากเซสชันควรถูกเก็บไว้ในฐานข้อมูลซึ่งไม่ได้อยู่บนโฮสต์เดียวกัน (หรืออาจเป็นดาต้าเซ็นเตอร์เดียวกันก็ได้) บางครั้งคุกกี้ก็ใช้ได้
dotancohen

1
@dotancohen คุณสามารถให้ลิงค์เกี่ยวกับปัญหาที่คุณอธิบายได้หรือไม่? ขอบคุณ!
Sharky

1
"อย่าใช้คุกกี้"ฟังดูเป็นคนเจ้าระเบียบเล็กน้อย แต่ฉันชอบความพยายามนี้เพื่อรักษาความสะอาดสำหรับผู้ใช้
Parapluie

Securecookies สามารถใช้งานได้อย่างปลอดภัยโดยไม่ต้องมีที่เก็บเซสชันฝั่งเซิร์ฟเวอร์ ไม่จำเป็นต้องมีขนาดใหญ่มาก (จริงๆแล้วมีขีด จำกัด 4k ซึ่งค่อนข้างเจียมเนื้อเจียมตัว) และหลีกเลี่ยงการโหลดบาลานเซอร์และ / หรือการค้นหาฐานข้อมูลจากส่วนกลาง
colm.anseo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.