Các trình duyệt dựa trên văn bản có làm giảm lưu lượng mạng không?


27

Các trình duyệt dựa trên văn bản như lynx , liên kếtelinks có tiêu tốn ít băng thông hơn trình duyệt dựa trên GUI (ví dụ: Firefox, Chrome, v.v.) không?

Tôi đoán không giảm lưu lượng.
Đặt vấn đề: Tôi nghĩ rằng một trình duyệt dựa trên văn bản tải xuống toàn bộ trang vì nó được cung cấp bởi máy chủ. Bất kỳ tinh giản hoặc giảm bớt widget phụ tùng trang được thực hiện cục bộ.

Có thể có một số giảm lưu lượng, vì hầu hết các trình duyệt dựa trên văn bản sẽ không thực thi tập lệnh trang hoặc SWF có thể gây ra lưu lượng truy cập nhiều hơn.


19
Hoặc thực sự tải xuống hình ảnh ..
Journeyman Geek

4
Hãy suy nghĩ về việc mong đợi giảm ba hoặc nhiều đơn hàng giảm cường độ .
user2338816

1
@ user2338816 Có, có thể có sự khác biệt của ba bậc độ lớn. Hãy dùng thử YouTube! [Thêm sau:] Rất tiếc, đó là ba!
Volker Siegel

3
@ user2338816 ba đơn đặt hàng độ lớn sẽ không thể xảy ra. Ví dụ, đối với trang cụ thể này, tài liệu html gốc chiếm khoảng 10% toàn bộ các nguồn có thể tải xuống, không quan tâm đến bộ đệm, do đó chỉ là một thứ tự cường độ; và nhiều mục nặng (thư viện javascript, hình ảnh lớn, v.v.) được lưu trữ thành công, thường được sử dụng lại trên nhiều trang và do đó rất hiếm khi được tải xuống, vì vậy kích thước của chúng không thực sự thể hiện tác động của chúng đối với tổng lưu lượng mạng.
Peteris

1
@Peteris 3 có thể hơi cao, nhưng 2 chắc chắn là không. Giả sử 10% bạn nhận thấy ở đây là giống nhau trên hầu hết các trang web thông thường. Sau đó, hãy tính đến lưu lượng video lên tới 78% tổng lưu lượng video. Điều này có nghĩa là đối với 22% lưu lượng còn lại, chúng ta có thể mong đợi 2,2% là văn bản. Bây giờ, đây là toán học khăn ăn, nhưng 2 bậc độ lớn dường như là nơi nó đang ở.
corsiKa

Câu trả lời:


53

Máy chủ web không gửi "toàn bộ trang web", nhưng tài liệu mà trình duyệt yêu cầu.

Ví dụ: khi bạn truy cập https://www.google.com/ máy chủ truy vấn trình duyệt cho tài liệu https://www.google.com/. Máy chủ xử lý yêu cầu và gửi lại một số mã HTML.

Sau đó trình duyệt kiểm tra những gì máy chủ đã gửi. Trong trường hợp này là trang web HTML, do đó, nó phân tích tài liệu và tìm kiếm các tập lệnh, biểu định kiểu, hình ảnh, phông chữ được tham chiếu, v.v.

Ở giai đoạn này, trình duyệt đã hoàn tất tải xuống tài liệu đó, nhưng vẫn không tải xuống các tài liệu tham chiếu. Nó có thể chọn làm như vậy hoặc bỏ qua chúng. Các trình duyệt thông thường sẽ cố gắng tải xuống tất cả các tài liệu được tham chiếu để có trải nghiệm xem tốt nhất. Nếu bạn có trình chặn quảng cáo (như Adblock) hoặc plugin riêng tư (Ghostery, NoScript), nó cũng có thể chặn một số tài nguyên.

Sau đó, trình duyệt tải xuống từng tài liệu tham chiếu, mỗi lần yêu cầu máy chủ rõ ràng cho một tài nguyên. Trong ví dụ Google của chúng tôi, trình duyệt sẽ tìm thấy các tài liệu tham khảo sau, chỉ để đặt tên cho một vài trong số chúng:

(các tệp thực tế có thể khác nhau đối với người dùng, trình duyệt và phiên khác nhau và có thể thay đổi theo thời gian)

Các trình duyệt dựa trên văn bản không tải xuống hình ảnh, tệp Flash, video HTML5, v.v. để chúng tải xuống ít dữ liệu hơn.


@NathanOsman đưa ra một quan điểm tốt trong các nhận xét: Đôi khi các hình ảnh nhỏ được nhúng trực tiếp vào các tài liệu HTML và trong các trường hợp đó, không thể tránh được việc tải xuống chúng. Đây là một mẹo khác được sử dụng để giảm số lượng yêu cầu. Tuy nhiên, chúng rất nhỏ, nếu không, chi phí mã hóa tệp nhị phân trong base64 là quá lớn. Có vài hình ảnh như vậy trên Google.com: ( base64 kích thước mã hóa / kích thước được giải mã )

  • Biểu tượng bàn phím 19 × 11 (106 B / 76 B)
  • Biểu tượng micrô 28 × 38 (334 B / 248 B)
  • GIF trong suốt 1 × 1 px (62 B / 43 B) hiển thị trong Chrome Dev Tools tab Tài nguyên , nhưng tôi không thể tìm thấy nó trong nguồn - có thể được thêm sau bằng JavaScript
  • Tệp GIF bị hỏng 1 × 1 px xuất hiện hai lần (34 B / 23 B). Mục đích của nó là một bí ẩn đối với tôi.

1
Tôi thích liên kết hình ảnh kết hợp - đó là một thủ thuật gọn gàng.
prateek61

12
@ prateek61 Tất cả các trang web lớn sử dụng nó; đó thực sự là một kỹ thuật mượn từ các trò chơi video. :) Trên thực tế, nhiều nhà phát triển web thậm chí còn gọi nó là " CSS spites " hoặc tương tự (tại Amazon, nó được gọi là "sprite" nhưng tôi không biết mức độ phổ biến của biến thể đó).
fluffy

3
Chà, gần như - có thể nhúng hình ảnh trực tiếp vào HTML bằng cách sử dụng lược đồ URI dữ liệu ( data:).
Nathan Osman

Vâng, nếu bạn sẵn sàng hy sinh hầu hết nội dung của internet, bạn có thể giảm băng thông. Có vẻ hợp lý ... Chúng ta đừng quên rằng 78% internet là lưu lượng video ...
corsiKa

25

Tôi sẽ nghi ngờ rằng họ làm. Tôi không tin rằng các trình duyệt dựa trên văn bản sẽ (theo mặc định) thậm chí tải xuống các tài nguyên như hình ảnh hoặc các thực thể bên ngoài, chẳng hạn như phông chữ (nếu cần), tập lệnh, v.v.

Tôi đã thực hiện một số thử nghiệm cơ bản với tcpdump khi cố gắng có được trang IANA này ( http://www.iana.org/domains/reserved ) với cả lynx và sau đó wget, và đây là kết quả của tôi (chỉ các lệnh HTTP, tôi có thể cung cấp phần còn lại Nếu cần thiết).

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)

Vì vậy, tôi nhận ra đây không phải là một thử nghiệm tuyệt vời vì wgetcó thể tải xuống các tài nguyên mà trình duyệt có thể không tải xuống, nhưng ví dụ tôi nghĩ là có - có nhiều yêu cầu cần thiết hơn để hiển thị nội dung trên trình duyệt GUI. Do đó, các trình duyệt GUI nói chung sẽ gây ra lưu lượng truy cập mạng nhiều hơn các trình duyệt dựa trên văn bản.


Tôi không nghĩ wgetcó thể được coi là một trình duyệt. Tốt hơn nên thử với elinkshoặc một cái gì đó tương tự.
Darkhogg

Vì vậy, tôi đã sử dụng wgetđơn giản để chứng minh tất cả các yêu cầu và phản hồi HTTP sẽ được thực hiện. Các -ptham số được định nghĩa như sau: -p, --page-requisites get all images, etc. needed to display HTML page.. Tôi không muốn sử dụng trình duyệt GUI thực tế vì họ có xu hướng thực hiện các yêu cầu khác mà tôi không muốn phải lọc ra.
prateek61

3
Tôi cũng thích câu trả lời này. Việc kiểm tra wget rất thú vị.
Paulb

1

Tôi nghĩ Trình duyệt dựa trên văn bản sẽ giảm đáng kể lượng dữ liệu được truyền vì chúng sẽ không yêu cầu tất cả những hình ảnh, Video và nội dung tương tác có độ phân giải cao trên web 2.0 (Flash và các thứ khác).

Tôi khuyên bạn chỉ nên kiểm tra điều này bằng cách Thiết lập Quy tắc IPtables sẽ Đếm lượng lưu lượng truy cập theo quy tắc IPtables cụ thể.

Ví dụ: tạo quy tắc cho cổng 80 + 443 với đếm lưu lượng truy cập và duyệt web bằng trình duyệt bình thường, đặt lại Bộ đếm IPtables và thực hiện tương tự với trình duyệt có văn bản.

Hãy nhớ rằng bạn không thể so sánh cả hai lần chạy 100% vì liên kết web động (quảng cáo và nội dung) có thể khác nhau trên mỗi Truy cập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.