ฉันจะตั้งค่าโดเมนที่ไม่ใช้คุกกี้ได้อย่างไร


24

ฉันอ่านแล้วว่าเป็นการดีที่สุดที่จะให้บริการเนื้อหาแบบคงที่ (css, javascript ฯลฯ ) จากโดเมนหรือโดเมนย่อยที่ไม่มีคุกกี้เพื่อประสิทธิภาพที่ดีขึ้น ฉันถือว่าโดเมนไม่ได้เป็นคุกกี้น้อยกว่าโดยค่าเริ่มต้น ฉันจะระบุว่าฉันไม่ต้องการใช้คุกกี้ได้อย่างไร


3
สิ่งนี้ไม่สำคัญเลยถ้าคุณไม่ให้บริการหลายพันหน้าต่อชั่วโมงหรือหลายพันหน้าต่อนาที

"แม้จะพยายามลดขนาดคุกกี้ลง แต่การใช้ Google Analytics ทำให้ขนาดคุกกี้ของผู้ใช้โดยเฉลี่ยอยู่ที่ประมาณ 1 กิโลไบต์" มีประโยชน์และเกี่ยวข้อง - chrishateswriting.com/post/68794699432/small-things-add-up
mvark

คำตอบ:


26

เมื่อสิ่งต่าง ๆ เช่นYSlowและPage Speedบอกให้คุณตั้งค่าโดเมนที่ไม่มีคุกกี้หมายความว่าพวกเขาหมายถึงการให้บริการสื่อจากโดเมนที่คุณจะไม่ได้ตั้งค่าใด ๆ หรือไม่ได้ตั้งค่าใด ๆ (ทั่วโลก) ในอดีต บางครั้งสิ่งนี้สามารถทำได้โดยใช้โดเมนย่อยเช่นmedia.domain.comหรือstatic.domain.comถ้าคุณตั้งค่าคุกกี้domain.comที่ใช้กับโดเมนโดยรวม - คุกกี้สำหรับ*.domain.com- จากนั้นไคลเอนต์คุกกี้นี้จะถูกส่งไปยังเซิร์ฟเวอร์บน ขอให้ทุกคนทุกdomain.comโดเมนที่เกี่ยวข้องกับ ซึ่งรวมถึงโดเมนย่อยทั้งหมด

คุกกี้ส่วนกลางกลายเป็นปัญหาหากคุณตัดสินใจสละการใช้งานwww.บนโดเมนของคุณ หากไม่มีโดเมนย่อยเฉพาะในการตั้งค่าคุกกี้คุณต้องตั้งค่าคุกกี้ทั้งหมด*.domain.comเพื่อให้สามารถใช้งานได้

ปัญหาคุกกี้ทั่วโลกนี้เป็นสาเหตุที่คุณจะเห็นสื่อคงที่แสดงจากสถานที่เช่นytimg.comใน YouTube ytimg.comจะไม่แสดงเนื้อหาแบบไดนามิกที่สามารถตั้งค่าคุกกี้ซึ่งหมายความว่าจะไม่มีการส่งคุกกี้จากไคลเอนต์กลับไปยังเซิร์ฟเวอร์เมื่อโดเมนเหล่านี้เป็นส่วนหนึ่งของคำขอ HTTP

หากคุณมั่นใจว่าจะไม่มีการตั้งค่าคุกกี้ไว้*.domain.comคุณสามารถใช้โดเมนย่อยสำหรับความต้องการของคุณได้ โปรดทราบว่าส่วนใหญ่หากคุณรวมเข้ากับเว็บไซต์หรือบริการอื่นผ่าน Javascript พวกเขาจะตั้งค่าคุกกี้โดเมนทั่วโลก

ใน Apache (และฉันแน่ใจว่าเว็บเซิร์ฟเวอร์อื่น ๆ ) คุณสามารถตั้งค่าหรือยกเลิกการตั้งค่าส่วนหัวก่อนที่จะตอบคำขอ สิ่งนี้จะไม่แก้ไขปัญหาของลูกค้าที่ส่งคุกกี้ไปยังเซิร์ฟเวอร์ของคุณ แต่จะป้องกันไม่ให้โดเมนของคุณส่งหรือตั้งค่าคุกกี้ตั้งแต่แรก เฉพาะปัญหาถ้าคุณแสดงเนื้อหาที่ไม่คงที่จากโดเมนที่ไม่มีคุกกี้ของคุณซึ่งเอาชนะวัตถุประสงค์ของพวกเขา

Header unset Cookie
Header unset Set-Cookie 

วิธีนี้จะเป็นการตั้งค่าส่วนหัวสำหรับคุกกี้ที่มีอยู่และสำหรับการสร้างคุกกี้ใหม่ อีกครั้งเฉพาะปัญหาถ้าคุณแสดงเนื้อหาจากโดเมนสแตติกของคุณที่อาจตั้งค่าคุกกี้ วางสิ่งนี้ไว้ในการกำหนดค่าของเว็บไซต์หรือ virtualhost ของคุณ (ซึ่งขึ้นอยู่กับระบบปฏิบัติการเซิร์ฟเวอร์และรุ่นของคุณซึ่งอาจมีจำนวนเท่าใดก็ได้)


"มีปัญหาเฉพาะถ้าคุณแสดงเนื้อหาที่ไม่คงที่จากโดเมนที่ไม่มีคุกกี้ของคุณซึ่งเอาชนะวัตถุประสงค์ของพวกเขา" - ทำไมล่ะ ไม่มีอะไรเกี่ยวกับเนื้อหาที่สร้างขึ้นแบบไดนามิกที่ต้องใช้คุกกี้โดยเนื้อแท้

1
ฉันไม่ได้บอกว่าการให้บริการเนื้อหาแบบไดนามิกจากโดเมนสแตติกของคุณนั้นเป็นการตั้งค่าอะไรก็ตาม ฉันบอกว่าคุกกี้จะเป็นปัญหาหากคุณแสดงเนื้อหาแบบไดนามิกที่ตั้งค่าคุกกี้จากโดเมนคงที่ของคุณ วัตถุประสงค์ของโดเมนสแตติกคือเพื่อให้บริการเนื้อหาที่ไม่ต้องมีการโต้ตอบ: รูปภาพ, css, js, ฯลฯ เนื้อหาแบบไดนามิก - ซึ่งเป็นที่ที่คุกกี้ของคุณควรตั้งค่า - ไม่ควรจัดการโดยโดเมนแบบคงที่
Bryson

6

ฉันจะระบุว่าฉันไม่ต้องการใช้คุกกี้ได้อย่างไร

มันไม่เกี่ยวกับสิ่งที่คุณต้องทำเพื่อให้มีโดเมนคุกกี้ - มันเพิ่มเติมเกี่ยวกับสิ่งที่คุณต้องไม่ทำ ... การมีโดเมนคุกกี้คุณต้องให้แน่ใจว่าใบสมัครของคุณทำงานบนโดเมนที่ไม่ได้ตั้งค่าคุกกี้ ซึ่งมักจะหมายถึงการไม่มีการเข้าสู่ระบบไม่มีการวิเคราะห์ของ Google ไม่มีเซสชัน - เพียงแค่ให้บริการสื่อและไม่มีอะไรอื่น เห็นได้ชัดว่าสิ่งนี้ขึ้นอยู่กับการตั้งค่าของคุณ

ความผิดพลาดอย่างหนึ่งที่ฉันทำเมื่อเร็ว ๆ นี้คือฉันไม่ได้แยกความแตกต่างระหว่างโดเมนและโดเมนย่อย ฉันเริ่มให้บริการสื่อทั้งหมดของฉันจากการhttp://media.example.comคิดว่ามันเป็นโดเมนที่ไม่ได้ทำอาหาร แต่จริงๆแล้วมันเป็นโดเมนย่อยและฉันพบคุกกี้ของฉันจำนวนมากจากเว็บไซต์หลักhttp://www.example.comที่ตั้งอยู่ในระดับโดเมนและทำให้สกปรกโดเมนย่อยที่น่ารังเกียจ นี่คือลิงค์สำหรับวิธีที่ฉันแก้ไขปัญหา: /server/160210/nginx-serve-static-content-from-a-cookieless-domain


2
คุกกี้จากwww.example.net จะไม่ถูกส่งไปstatic.example.netแต่example.netจะเป็นคุกกี้จาก การแก้ปัญหาคือการเปลี่ยนเส้นทางไปยังexample.net www.example.net
TRiG

3

ฉันจะระบุว่าฉันไม่ต้องการใช้คุกกี้ได้อย่างไร

คุณไม่จำเป็นต้องระบุว่าคุณไม่ต้องการใช้คุกกี้ แต่คุณไม่ได้ใช้


3
ไม่ใช่ตัวเลือกเสมอไป การรวมคุณสมบัติ Javascript จากเว็บไซต์อื่นมักจะตั้งค่าคุกกี้ส่วนกลางสำหรับโดเมนไม่ว่าคุณจะต้องการหรือไม่
Bryson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.