ทำไม Google Map ถึงโหลดรูปเร็ว?

Google Map เป็น application ที่ต้องโหลดรูปทีละหลาย ๆ รูปเพื่อประกอบเป็นแผนที่
แต่ browser โหลดได้เร็วมาก ๆ เค้าทำได้อย่างไร?

ถ้าเราลองแกะ code ในการกำหนด URL ของรูปของ Google Map
จะพบว่า Google แบ่งรูปออกเป็น 4 server (mt0.google.com - mt3.google.com)

ทำไม Google ถึงทำอย่างนี้?
ก็เพราะว่า Browser ที่ได้รับความนิยมสูงสุดในขณะนี้ คงไม่ต้องบอกก็รู้ว่า IE
ทำตามมาตรฐาน RFC2616 ...อ่านไม่ผิดหรอกครับ คราวนี้ Microsoft ทำตามมาตรฐานจริง ๆ

ซึ่งมาตรฐานที่ว่าก็คือ client ที่จะเชื่อมต่อ (แบบ persistent)
ไปยัง server ใด ๆ ไม่ควรเปิดเกิน 2 connection ต่อ server

ทำให้ IE ไม่สามารถโหลดอะไรก็ตามได้เกิน 2 อย่างพร้อม ๆ กัน
สำหรับ internet สมัยก่อนที่ความเร็วไม่เท่าปัจจุบัน มาตรฐานนี้ก็น่าจะมีประโยชน์

แต่กับ internet สมัยนี้ กลับไม่เป็นเช่นนั้น ข้อจำกัดนี้ทำให้เกิดคอขวดที่ browser แทนที่จะเป็นที่
internet connection ผู้พัฒนาเวบทั้งหลายจึงใช้ช่องโหว่ของมาตรฐาน ^_^ (หรือเป็นความจงใจ
ของผู้พัฒนา browser ก็ไม่อาจทราบได้) นั่นคือ browser จะยึดตาม domain name ของ server
ไม่ได้ยึดตาม IP ดังนั้นเราจึงสามารถสร้าง virtual host เพื่อหลอก browser ว่าเป็น server คนละตัวกัน
ทั้ง ๆ ที่ใช้ IP เดียวกัน

ในกรณีของ Google ผมว่าคงไม่ใช่เครื่องเดียวกันหรอกครับ server มีตั้งไม่รู้กี่แสนเครื่อง
แต่อาจจะใช้ main IP เดียวแล้ว load balance ครับผม

สรุปได้ว่า ถ้าเรามีรูปมากมายที่จะให้ browser โหลดไปพร้อม ๆ กัน ก็ควรที่จะใช้ domain name
ต่างกัน เพื่อให้สามารถโหลดพร้อม ๆ กันได้ทีละหลาย ๆ file ครับ

Reference:
http://www.openajax.org/runtime/wiki/The_Two_HTTP_Connection_Limit_Issue
http://pages.cs.wisc.edu/~cao/papers/persistent-connection.html
http://cometdaily.com/2007/11/11/the-dreaded-2-connection-limit/
http://www.ajaxperformance.com/2006/12/18/circumventing-browser-connecti...
http://blogs.msdn.com/ie/archive/2005/04/11/407189.aspx