เบราว์เซอร์ของคุณจะส่งตัวแทนผู้ใช้ไปยังทุกเว็บไซต์ที่คุณเชื่อมต่อ เราได้เขียนเกี่ยวกับ เปลี่ยนตัวแทนผู้ใช้ของเบราว์เซอร์ของคุณ ก่อนหน้านี้ - แต่ตัวแทนผู้ใช้คืออะไรกันแน่?
ตัวแทนผู้ใช้คือ "สตริง" ซึ่งก็คือบรรทัดของข้อความที่ระบุเบราว์เซอร์และระบบปฏิบัติการไปยังเว็บเซิร์ฟเวอร์ ฟังดูง่าย แต่ตัวแทนผู้ใช้กลายเป็นเรื่องยุ่งเหยิงเมื่อเวลาผ่านไป
พื้นฐาน
เมื่อเบราว์เซอร์ของคุณเชื่อมต่อกับเว็บไซต์จะมีฟิลด์ User-Agent ในส่วนหัว HTTP เนื้อหาของฟิลด์ตัวแทนผู้ใช้แตกต่างกันไปในแต่ละเบราว์เซอร์ เบราว์เซอร์แต่ละตัวมีตัวแทนผู้ใช้เฉพาะของตัวเอง โดยพื้นฐานแล้วตัวแทนผู้ใช้คือวิธีที่เบราว์เซอร์พูดว่า“ สวัสดีฉันคือ Mozilla Firefox บน Windows” หรือ“ สวัสดีฉันคือ Safari บน iPhone” ไปยังเว็บเซิร์ฟเวอร์
เว็บเซิร์ฟเวอร์สามารถใช้ข้อมูลนี้เพื่อแสดงหน้าเว็บที่แตกต่างกันไปยังเว็บเบราว์เซอร์ต่างๆและระบบปฏิบัติการที่แตกต่างกัน ตัวอย่างเช่นเว็บไซต์สามารถส่งโมบายเพจไปยังเบราว์เซอร์บนมือถือเพจที่ทันสมัยไปยังเบราว์เซอร์รุ่นใหม่และข้อความ "โปรดอัปเกรดเบราว์เซอร์ของคุณ" เป็น Internet Explorer 6
การตรวจสอบตัวแทนผู้ใช้
ตัวอย่างเช่นนี่คือ user agent ของ Firefox ใน Windows 7:
Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0
ตัวแทนผู้ใช้รายนี้บอกเว็บเซิร์ฟเวอร์ไม่น้อย: ระบบปฏิบัติการคือ Windows 7 (ชื่อรหัส Windows NT 6.1) เป็น Windows รุ่น 64 บิต (WOW64) และเบราว์เซอร์เองคือ Firefox 12
ตอนนี้เรามาดู User Agent ของ Internet Explorer 9 ซึ่ง ได้แก่ :
Mozilla / 5.0 (เข้ากันได้; MSIE 9.0; Windows NT 6.1; WOW64; ตรีศูล / 5.0)
สตริงตัวแทนผู้ใช้ระบุเบราว์เซอร์เป็น IE 9 พร้อมเอ็นจิ้นการเรนเดอร์ Trident 5 อย่างไรก็ตามคุณอาจพบบางสิ่งที่สับสน - IE ระบุว่าตัวเองเป็น Mozilla
เราจะกลับมาดูในอีกสักครู่ ก่อนอื่นมาตรวจสอบ User Agent ของ Google Chrome ด้วยกัน:
Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 536.5 (KHTML เช่น Gecko) Chrome / 19.0.1084.52 Safari / 536.5
พล็อตหนาขึ้น: Chrome แกล้งทำเป็นทั้ง Mozilla และ Safari เพื่อให้เข้าใจว่าเหตุใดเราจึงต้องตรวจสอบประวัติของ User Agent และเบราว์เซอร์
สายอักขระตัวแทนผู้ใช้ยุ่ง
Mosaic เป็นหนึ่งในเบราว์เซอร์แรก ๆ สตริงตัวแทนผู้ใช้คือ NCSA_Mosaic / 2.0 ต่อมา Mozilla เข้ามา (ภายหลังเปลี่ยนชื่อเป็น Netscape) และตัวแทนผู้ใช้คือ Mozilla / 1.0 Mozilla เป็นเบราว์เซอร์ขั้นสูงกว่า Mosaic โดยเฉพาะอย่างยิ่งมันรองรับเฟรม เว็บเซิร์ฟเวอร์ตรวจสอบเพื่อดูว่าตัวแทนผู้ใช้มีคำว่า Mozilla และส่งหน้าที่มีเฟรมไปยังเบราว์เซอร์ Mozilla สำหรับเบราว์เซอร์อื่นเว็บเซิร์ฟเวอร์จะส่งหน้าเก่าโดยไม่มีเฟรม
ในที่สุด Internet Explorer ของ Microsoft ก็มาพร้อมกันและรองรับเฟรมด้วย อย่างไรก็ตาม IE ไม่ได้รับหน้าเว็บที่มีเฟรมเนื่องจากเว็บเซิร์ฟเวอร์เพิ่งส่งข้อมูลเหล่านั้นไปยังเบราว์เซอร์ Mozilla เพื่อแก้ไขปัญหานี้ Microsoft ได้เพิ่มคำว่า Mozilla ลงใน User agent ของตนและส่งข้อมูลเพิ่มเติม (คำว่า "Compatible" และการอ้างอิงถึง IE) เว็บเซิร์ฟเวอร์ยินดีที่จะเห็นคำว่า Mozilla และส่ง IE ไปยังหน้าเว็บที่ทันสมัย เบราว์เซอร์อื่น ๆ ที่มาในภายหลังก็ทำเช่นเดียวกัน
ในที่สุดเซิร์ฟเวอร์บางแห่งก็มองหาคำว่า Gecko ซึ่งเป็นเครื่องมือแสดงผลของ Firefox และให้บริการเบราว์เซอร์ Gecko ในหน้าเว็บที่แตกต่างจากเบราว์เซอร์รุ่นเก่า KHTML ซึ่งเดิมพัฒนาขึ้นสำหรับ Konquerer บนเดสก์ท็อป KDE ของ Linux เพิ่มคำว่า“ เช่น Gecko” เพื่อให้ได้หน้าเว็บที่ทันสมัยที่ออกแบบมาสำหรับ Gecko ด้วย WebKit ใช้ KHTML เมื่อได้รับการพัฒนาพวกเขาได้เพิ่มคำว่า WebKit และเก็บบรรทัด "KHTML เช่น Gecko" ดั้งเดิมไว้เพื่อความเข้ากันได้ ด้วยวิธีนี้นักพัฒนาเบราว์เซอร์ยังคงเพิ่มคำให้กับตัวแทนผู้ใช้ของตนอยู่ตลอดเวลา
เว็บเซิร์ฟเวอร์ไม่สนใจว่าสตริงตัวแทนผู้ใช้คืออะไร แต่เพียงตรวจสอบว่ามีคำเฉพาะหรือไม่
ใช้
เว็บเซิร์ฟเวอร์ใช้ตัวแทนผู้ใช้เพื่อวัตถุประสงค์ต่างๆ ได้แก่ :
- ให้บริการหน้าเว็บที่แตกต่างกันไปยังเว็บเบราว์เซอร์ต่างๆ สิ่งนี้สามารถใช้เพื่อประโยชน์ตัวอย่างเช่นเพื่อแสดงหน้าเว็บที่เรียบง่ายกว่าสำหรับเบราว์เซอร์รุ่นเก่าหรือชั่วร้ายตัวอย่างเช่นเพื่อแสดงข้อความ "ต้องดูหน้าเว็บนี้ใน Internet Explorer"
- การแสดงเนื้อหาที่แตกต่างกันไปยังระบบปฏิบัติการที่แตกต่างกันตัวอย่างเช่นโดยการแสดงหน้าลดขนาดลงบนอุปกรณ์มือถือ
- รวบรวมสถิติที่แสดงเบราว์เซอร์และระบบปฏิบัติการที่ผู้ใช้ใช้งานอยู่ หากคุณเคยเห็นสถิติส่วนแบ่งการตลาดของเบราว์เซอร์นี่คือวิธีที่ได้มา
บอทการรวบรวมข้อมูลเว็บก็ใช้ตัวแทนผู้ใช้เช่นกัน ตัวอย่างเช่นโปรแกรมรวบรวมข้อมูลเว็บของ Google ระบุตัวเองว่า:
Googlebot / 2.1 (+ http: //www.google.com/bot.html)
เว็บเซิร์ฟเวอร์สามารถให้การปฏิบัติพิเศษแก่บอทได้ตัวอย่างเช่นโดยการอนุญาตผ่านหน้าจอการลงทะเบียนที่จำเป็น (ใช่หมายความว่าบางครั้งคุณสามารถข้ามหน้าจอการลงทะเบียนได้โดยตั้งค่าตัวแทนผู้ใช้ของคุณเป็น Googlebot)
นอกจากนี้เว็บเซิร์ฟเวอร์ยังสามารถให้คำสั่งกับบ็อตเฉพาะ (หรือบอททั้งหมด) โดยใช้ไฟล์ robots.txt ตัวอย่างเช่นเว็บเซิร์ฟเวอร์สามารถบอกบอทบางตัวให้หายไปหรือบอกบอทอื่นให้ทำดัชนีเฉพาะบางพื้นที่ของเว็บไซต์ ในไฟล์ robots.txt บอทจะระบุโดยสตริงตัวแทนผู้ใช้
เบราว์เซอร์หลักทั้งหมดมีวิธีการ ตั้งค่าตัวแทนผู้ใช้ที่กำหนดเอง คุณจึงสามารถดูได้ว่าเว็บเซิร์ฟเวอร์ใดส่งไปยังเบราว์เซอร์ต่างๆ ตัวอย่างเช่นตั้งค่าเบราว์เซอร์บนเดสก์ท็อปของคุณเป็นสตริงตัวแทนผู้ใช้ของเบราว์เซอร์มือถือและคุณจะเห็นหน้าเว็บเวอร์ชันมือถือบนเดสก์ท็อป