เบราว์เซอร์ที่ใช้ข้อความลดปริมาณการใช้เครือข่ายหรือไม่


27

เบราว์เซอร์ทำตามข้อความเช่นแมวป่าชนิดหนึ่ง , การเชื่อมโยงและelinksใช้แบนด์วิธน้อยกว่า GUI เบราว์เซอร์ (เช่น Firefox, Chrome ฯลฯ )?

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

อาจจะมีบางส่วนที่ลดลงในการจราจรเป็นส่วนใหญ่เบราว์เซอร์ข้อความตามจะไม่รันสคริปต์หน้าหรือ SWF ซึ่งอาจทำให้เกิดการจราจรมากขึ้น


19
หรือดาวน์โหลดรูปภาพจริงๆ ..
Journeyman Geek

4
คิดในแง่ของการคาดหวังคำสั่งลดขนาดสามหรือมากกว่านั้น
user2338816

1
@ user2338816 ใช่อาจมีขนาดต่างกันสามออเดอร์ ลองใช้ YouTube! [เพิ่มในภายหลัง:] โอ๊ะนั่นคืออีกสามคน!
Volker Siegel

3
@ user2338816 สามคำสั่งของขนาดจะไม่น่า ตัวอย่างเช่นสำหรับหน้านี้โดยเฉพาะเอกสาร html ดั้งเดิมคือ 10% ของแหล่งดาวน์โหลดทั้งหมดโดยไม่คำนึงถึงการแคชดังนั้นเพียงลำดับเดียวของขนาด และรายการเฮฟวี่เวทหลายรายการ (ไลบรารี javascript, ภาพขนาดใหญ่, ฯลฯ ) ได้รับการแคชสำเร็จแล้วมักจะถูกนำกลับมาใช้ซ้ำในหลาย ๆ หน้าและทำให้ดาวน์โหลดได้น้อยมากดังนั้นขนาดของมันจึงไม่ได้เป็นตัวแทน
Peteris

1
@Peteris 3 อาจสูงนิดหน่อย แต่ 2 ไม่ใช่อย่างแน่นอน สมมติว่า 10% ที่คุณสังเกตเห็นที่นี่เหมือนกันในเว็บไซต์ทั่วไปส่วนใหญ่ จากนั้นคำนึงถึงปริมาณการรับส่งข้อมูลวิดีโอถึง 78% ของปริมาณการเข้าชมวิดีโอทั้งหมด ซึ่งหมายความว่าสำหรับส่วนที่เหลือ 22% ของปริมาณการใช้งานเราสามารถคาดหวัง 2.2% เป็นข้อความ ทีนี้นี่คือคณิตศาสตร์เช็ดปาก แต่ดูเหมือนว่าจะเป็นอันดับที่ 2
corsiKa

คำตอบ:


53

เว็บเซิร์ฟเวอร์ไม่ได้ส่ง "เว็บไซต์ทั้งหมด" แต่เป็นเอกสารที่เบราว์เซอร์ร้องขอ

ตัวอย่างเช่นเมื่อคุณเข้าถึงhttps://www.google.com/เบราว์เซอร์ queries https://www.google.com/เซิร์ฟเวอร์สำหรับเอกสารที่ เซิร์ฟเวอร์ดำเนินการตามคำขอและส่งกลับโค้ด HTML บางส่วน

จากนั้นเบราว์เซอร์จะตรวจสอบสิ่งที่เซิร์ฟเวอร์ส่ง ในกรณีนี้คือเว็บเพจ HTML ดังนั้นจึงแยกวิเคราะห์เอกสารและค้นหาสคริปต์ที่อ้างอิงสไตล์ชีตรูปภาพแบบอักษรและอื่น ๆ

ในขั้นตอนนี้เบราว์เซอร์ดาวน์โหลดเอกสารดังกล่าวเสร็จแล้ว แต่ยังไม่ได้ดาวน์โหลดเอกสารอ้างอิง มันสามารถเลือกที่จะทำเช่นนั้นหรือข้ามพวกเขา เบราว์เซอร์ปกติจะพยายามดาวน์โหลดเอกสารที่อ้างอิงทั้งหมดเพื่อประสบการณ์การรับชมที่ดีที่สุด หากคุณมีตัวบล็อคโฆษณา (เช่น Adblock) หรือปลั๊กอินความเป็นส่วนตัว (Ghostery, NoScript) ก็อาจบล็อกทรัพยากรบางอย่างเช่นกัน

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

(ไฟล์จริงอาจแตกต่างกันสำหรับผู้ใช้เบราว์เซอร์และเซสชันที่แตกต่างกันและอาจเปลี่ยนแปลงตลอดเวลา)

เบราว์เซอร์ที่ใช้ข้อความจะไม่ดาวน์โหลดรูปภาพไฟล์ Flash วิดีโอ HTML5 และอื่น ๆ ดังนั้นพวกเขาจึงดาวน์โหลดข้อมูลน้อยลง


@NathanOsman ให้ความคิดเห็นที่ดี: บางครั้งรูปภาพขนาดเล็กจะถูกฝังลงในเอกสาร HTML โดยตรงและในกรณีเหล่านั้นไม่สามารถหลีกเลี่ยงการดาวน์โหลดได้ นี่เป็นอีกวิธีหนึ่งที่ใช้เพื่อลดจำนวนคำขอ พวกเขามีขนาดเล็กมากมิฉะนั้นค่าใช้จ่ายในการเข้ารหัสไฟล์ไบนารีใน base64 นั้นใหญ่เกินไป มีภาพดังกล่าวไม่กี่ภาพบน Google.com: ( ขนาดเข้ารหัส base64 / ขนาดถอดรหัส )

  • ไอคอนแป้นพิมพ์ขนาด 19 × 11 (106 B / 76 B)
  • ไอคอนไมโครโฟน 28 × 38 (334 B / 248 B)
  • 1 × 1 px โปร่งใส GIF (62 B / 43 B) ซึ่งแสดงในแท็บทรัพยากร Chrome Dev Tools แต่ฉันไม่พบในแหล่งที่มา - อาจเพิ่มในภายหลังด้วย JavaScript
  • ไฟล์ GIF เสียหาย 1 × 1 px ที่ปรากฏสองครั้ง (34 B / 23 B) จุดประสงค์ของมันคือความลึกลับสำหรับฉัน

1
ฉันชอบลิงค์รูปภาพที่รวมกัน - นั่นเป็นกลลวงที่เรียบร้อย
prateek61

12
@ prateek61 ทุกเว็บไซต์ที่สำคัญใช้; จริงๆแล้วมันเป็นเทคนิคที่ยืมมาจากวิดีโอเกม :) ที่จริงแล้วนักพัฒนาเว็บหลายคนเรียกมันว่า " CSS sprites " หรือคล้ายกัน (ที่Amazonมันถูกเรียกว่า "spriting" แต่ฉันไม่รู้ว่าการเปลี่ยนแปลงนั้นเป็นเรื่องธรรมดา)
ปุย

3
เกือบจะเป็นไปได้ที่จะฝังรูปภาพใน HTML โดยตรงโดยใช้ data URI ( data:)
นาธานออสมัน

ใช่ถ้าคุณเต็มใจเสียสละเนื้อหาส่วนใหญ่ของอินเทอร์เน็ตคุณสามารถลดแบนด์วิดท์ได้ ดูเหมือนจะเป็นเหตุผล ... อย่าลืมว่า78% ของอินเทอร์เน็ตคือวิดีโอ ...
corsiKa

25

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

ฉันทำการทดสอบขั้นพื้นฐานด้วย tcpdump พยายามรับหน้า IANA นี้ ( http://www.iana.org/domains/reserved ) ทั้ง lynx แล้ว wget และนี่คือผลลัพธ์ของฉัน (คำสั่ง HTTP เท่านั้นฉันสามารถให้ส่วนที่เหลือได้ หากมีความจำเป็น).

lynx http://www.iana.org/domains/reserved

  4   0.072774 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /domains/reserved HTTP/1.0
 10   0.146971   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/html)

wget -p http://www.iana.org/domains/reserved

  4   0.072139 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /domains/reserved HTTP/1.0
 22   0.145905   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/html)
 28   0.219381 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /robots.txt HTTP/1.0
 30   0.291877   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/plain)
 32   0.292550 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/screen.css HTTP/1.0
 94   0.440388   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/css)
100   0.514652 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/print.css HTTP/1.0
132   0.660071   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/css)
138   0.733546 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/bookmark_icon.ico HTTP/1.0
154   0.878227   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
160   0.950713 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_js/2013.1/jquery.js HTTP/1.0
277   1.172095   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/x-javascript)
283   1.244571 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_js/2013.1/iana.js HTTP/1.0
285   1.317059   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK
287   1.317609 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/iana-logo-header.svg HTTP/1.0
332   1.464356   192.0.32.8 -> xx.xx.xx.xx HTTP/XML HTTP/1.1 200 OK
337   1.536749 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/icann-logo.svg HTTP/1.0
348   1.610449   192.0.32.8 -> xx.xx.xx.xx HTTP/XML HTTP/1.1 200 OK
353   1.682727 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Light.ttf HTTP/1.0
658   2.552776   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
663   2.625015 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Regular.ttf HTTP/1.0
926   3.063537   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
932   3.135931 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Semibold.ttf HTTP/1.0
1216   3.573481   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1222   3.645984 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Bold.ttf HTTP/1.0
1500   4.012966   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1506   4.085693 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/Inconsolata.otf HTTP/1.0
1584   4.304016   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1589   4.376612 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2011.1/icons/icon_alert.png HTTP/1.0
1592   4.449311   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (PNG)
1594   4.449930 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/iana-logo-homepage.png HTTP/1.0
1627   4.596125   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (PNG)
1633   4.668596 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/iana-logo-homepage@2x.png HTTP/1.0
1704   4.895581   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (PNG)
1710   4.968097 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-Light.ttf HTTP/1.0
1982   5.364584   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1988   5.438091 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-Regular.ttf HTTP/1.0
2243   5.830353   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
2249   5.902861 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-SemiBold.ttf HTTP/1.0
2259   5.976674   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 404 NOT FOUND  (text/html)
2263   6.047876 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-Bold.ttf HTTP/1.0
2533   6.415590   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
2539   6.487909 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/Inconsolata.otf HTTP/1.0
2616   6.720477   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)

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


ฉันไม่คิดว่าwgetจะถือเป็นเบราว์เซอร์ ลองด้วยelinksหรือคล้ายกันดีกว่า
Darkhogg

ดังนั้นฉันจึงใช้wgetเพื่อแสดงคำขอ HTTP และการตอบกลับทั้งหมดที่จะทำ พารามิเตอร์ถูกกำหนดให้เป็นต่อไปนี้:-p -p, --page-requisites get all images, etc. needed to display HTML page.ฉันไม่ต้องการใช้เบราว์เซอร์ GUI จริงเนื่องจากพวกเขามักจะทำตามคำขออื่นซึ่งฉันไม่ต้องการกรองออก
prateek61

3
ฉันชอบคำตอบนี้ด้วย การตรวจสอบ wget นั้นน่าสนใจ
Paulb

1

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

ฉันขอแนะนำให้คุณทดสอบสิ่งนี้โดยการตั้งค่ากฎ IPtables ที่จะนับจำนวนการรับส่งข้อมูลที่ระบุกฎ IPtables

ตัวอย่างเช่นสร้างกฎสำหรับพอร์ต 80 + 443 ด้วยการนับทราฟฟิกและเรียกดูเว็บด้วยเบราว์เซอร์ปกติรีเซ็ต IPtables Counter และทำเช่นเดียวกันกับเบราว์เซอร์แบบข้อความ

โปรดทราบว่าคุณไม่สามารถเปรียบเทียบทั้งการทำงาน 100% เนื่องจากเนื้อหาเว็บแบบไดนามิก (โฆษณาและเนื้อหา) อาจแตกต่างกันไปในแต่ละการเข้าถึง

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