ประโยชน์ของการโฮสต์ทรัพยากรคงที่ในโดเมนแยกต่างหากคืออะไร


24

ฉันสังเกตเห็นว่ามีเว็บไซต์จำนวนมากที่โฮสต์ทรัพยากรของพวกเขาในโดเมนแยกต่างหากจากเว็บไซต์หลักเช่น StackExchange โดยใช้ sstatic.net, Barnes & Noble โดยใช้ imagesbn.com เป็นต้น

ฉันเข้าใจว่ามีประโยชน์ที่จะนำทรัพยากรสแตติกของคุณไปใช้กับโฮสต์อื่นอาจมีเว็บเซิร์ฟเวอร์ไฟล์แบบคงที่ที่มีประสิทธิภาพเช่น nginx ซึ่งช่วยให้เซิร์ฟเวอร์หลักเน้นการให้บริการเนื้อหาแบบไดนามิก ในทำนองเดียวกันการเอาท์ซอร์สไปยัง CDN ที่ใช้ร่วมกันเช่น cloudfront Akamai นั้นสมเหตุสมผล

การใช้โดเมนแยกต่างหากมีประโยชน์อย่างไร? ทำไม sstatic.net แทนที่จะเป็น static.stackexchange.com

อัปเดต : คำตอบหลายข้อพลาดคำถามหลัก เราเข้าใจว่ามีประโยชน์ที่จะแยกระหว่างหลายครอบครัว - ดาวน์โหลดขนานเว็บเซิร์ฟเวอร์ slimmer ฯลฯ แต่สิ่งที่เข้าใจยากมากขึ้นคือเหตุผลที่หลายโดเมน ทำไม sstatic.net มากกว่า static.stackexchange.com ในฐานะโฮสต์สำหรับทรัพยากรที่ใช้ร่วมกัน จนถึงตอนนี้มีคำตอบเดียวเท่านั้นที่ตอบว่า

คำตอบ:


22

เว็บไซต์หลายแห่งมีชุดคุกกี้ค่อนข้างมากคุกกี้เหล่านี้มีจุดประสงค์เพื่อสนับสนุนสถานะบางประเภท

โดยการใส่ทรัพยากรแบบคงที่ (ไร้รัฐ) ลงในโดเมนที่แตกต่างอย่างสิ้นเชิงคุณสามารถลดขนาดของคำขอ http ได้ ในบางกรณีมีคุกกี้จำนวนมากที่การร้องขอ HTTP หนึ่งครั้งใช้เวลาสองแพ็กเก็ต TCP ที่จะส่ง ดังนั้นการมีโดเมนแยกต่างหากจึงเป็นวิธีหนึ่งในการลดจำนวนแพ็คเก็ตเพื่อร้องขอส่วนต่างๆของหน้า

วิธีอื่น ๆ ที่มีเป้าหมายเดียวกันคือการรวมรูปภาพจำนวนมากเข้าไว้ใน Sprite เดียวและรวม Javascript ทั้งหมดเป็นไฟล์เดียว


23

นอกเหนือจากการใช้ CDNs การใช้โดเมนแยกต่างหากสำหรับข้อมูลคงที่ยังหมายถึง:

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

  2. การเพิ่มโดเมนย่อยพิเศษหมายความว่าคุณเพิ่มจำนวนการดาวน์โหลดแบบขนานที่เบราว์เซอร์สามารถทำได้

  3. หากตั้งค่าไว้อย่างถูกต้อง (เช่นไซต์ของคุณโฮสต์www.example.comแทนexample.com) คุณสามารถใช้ประโยชน์จากโดเมนย่อยที่ไม่ต้องทำอาหารลดปริมาณการเข้าชมและเวลาไปกลับ

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

แก้ไข:

ขออภัยฉันอ่านคำถามของคุณผิด หากคุณถามว่าเพราะเหตุใดบางคนจึงใช้ SLD แยกกันวงเล็บจะตอบในข้อที่ 3 มันยังอธิบายบนsstatic.net :

หากโดเมนของคุณคือ www.example.org คุณสามารถโฮสต์ส่วนประกอบแบบคงที่ของคุณใน static.example.org อย่างไรก็ตามหากคุณได้ตั้งค่าคุกกี้ไว้ในโดเมนระดับบนสุดของ example.org ซึ่งตรงข้ามกับ www.example.org ดังนั้นคำขอทั้งหมดไปที่ static.example.org จะรวมถึงคุกกี้ ในกรณีนี้คุณสามารถซื้อโดเมนใหม่ทั้งโฮสต์ส่วนประกอบคงที่ของคุณที่นั่นและทำให้โดเมนนี้ปราศจากคุกกี้ Yahoo! ใช้ yimg.com, YouTube ใช้ ytimg.com, Amazon ใช้ images-amazon.com เป็นต้น

แต่กลับมาเกิดขึ้นกล่าวถึงจุดที่ดีเกี่ยวกับการใช้ SLD ทั่วไปแยกต่างหากแทนโดเมนย่อยของ SLD ที่มีอยู่เมื่อคุณใช้เครือข่ายเว็บไซต์ขนาดใหญ่ที่แบ่งปันเนื้อหาบางอย่าง

สุดท้ายดังที่ Niels Basjes ชี้ให้เห็นเหตุผลส่วนหนึ่งของการกำจัดคุกกี้คือการลดจำนวนแพ็คเก็ตที่ใช้ในการดำเนินการตามคำขอ ฉันคิดว่าแนวทาง YSlow ระบุว่าเครือข่ายส่วนใหญ่มีขนาดแพ็คเก็ตสูงสุดที่ 1500 ไบต์ดังนั้นการเก็บไว้ภายใต้ 1500 ไบต์จะช่วยลดค่าใช้จ่าย TCP นอกจากนี้ยังแสดงให้เห็นถึงประโยชน์ของการใช้อื่นแทนsstatic.netstatic.webmasters.stackexchange.com


ทำไมคุณต้องใช้ไอพีแยกต่างหาก
Mihalis Bagos

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

@Mihalis: เพียงแค่เพิ่มความคิดเห็นของ phihag คุณจะต้องยกเว้น Windows Mobile 6.5 และเก่ากว่า Android 2.x และเก่ากว่า, เบราว์เซอร์ Blackberry, Safari บน XP ... รายการซอฟต์แวร์ที่รองรับ / ไม่สนับสนุนทั้งหมดสามารถดูได้ที่นี่ : en.wikipedia.org/wiki/Server_Name_Indication#No_support
Lèsemajesté

3
ฉันไม่ได้ถามว่าทำไมต้องใช้หลายโดเมนย่อย - นั่นสมเหตุสมผลสำหรับฉัน ฉันกำลังถามเกี่ยวกับโดเมนเต็มแยก ทำไม sstatic.net มากกว่า static.stackexchange.com
Michael Ekstrand

5

หมิ่นพระบรมเดชานุภาพครอบคลุมประเด็นหลัก แต่เพื่อขยายเพิ่มเติมฉันต้องการเพิ่มว่ามีโดเมนเดียวสำหรับทุกเว็บไซต์ Stack Exchange หมายความว่าคนที่เรียกดูพวกเขาจะดาวน์โหลดเนื้อหาคงที่เช่น JavaScript ครั้งเดียวเท่านั้น ตัวอย่างเช่นไปที่ Superuser ผู้ใช้จะใช้เนื้อหาที่แคชเนื่องจากมาจากที่เดียวกัน

มีข้อมูลที่เป็นประโยชน์เพิ่มเติมเกี่ยวกับYahooและGoogleเกี่ยวกับเรื่องนี้


5

เหตุผลหลักคือคุกกี้ สิ่งที่ Niels แนะนำไว้ในคำตอบของเขาเป็นเพียงผลสืบเนื่องไม่ใช่เหตุผลจริง หากไม่มีคุกกี้ขนาดคำขอจะเล็กลงดังนั้นจึงเป็นการประหยัดแบนด์วิดท์

อย่างไรก็ตามความแตกต่างที่แท้จริงนั้นมาจากแคชของเบราว์เซอร์ เนื่องจากเนื้อหาเป็นแบบคงที่ (เช่นไม่เปลี่ยนแปลง) เบราว์เซอร์สามารถแคชในฮาร์ดดิสก์ภายในเครื่องและหลีกเลี่ยงการโหลดไฟล์จากอินเทอร์เน็ตในแต่ละครั้ง แทนที่จะส่งไฟล์ทั้งหมดเว็บเซิร์ฟเวอร์จะส่งการตอบกลับ 304 ครั้งซึ่งหมายความว่าเนื้อหาจะไม่เปลี่ยนแปลง

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

นี่คือเหตุผลหลักเนื่องจากช่วยเพิ่มเวลาในการโหลดและลดแบนด์วิดท์อย่างมาก


3

เบราว์เซอร์ที่เก่ากว่านั้น จำกัด การดาวน์โหลดแบบขนานเพียงสองครั้งต่อชื่อโฮสต์

การแยกองค์ประกอบของหน้าเว็บของหลายโดเมนจะเรียกว่าsharding โดเมน การทำเช่นนี้ช่วยให้สามารถดาวน์โหลดทรัพยากรเพิ่มเติมได้ในแบบคู่ขนานช่วยลดเวลาในการโหลดหน้าเว็บโดยรวม

จำนวนโดเมนที่เหมาะสมที่สุดที่จะตัดกันคือ 2-4 หลังจาก 4 โดเมน degrades

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