텍스트 기반 브라우저가 네트워크 트래픽을 줄입니까?


27

lynx , 링크elink 와 같은 텍스트 기반 브라우저 는 GUI 기반 브라우저 (예 : Firefox, Chrome 등)보다 적은 대역폭을 사용합니까?

트래픽이 줄어드는 것 같지 않습니다 .
근거 : 텍스트 기반 브라우저가 서버에서 제공하는 전체 페이지를 다운로드한다고 생각합니다. 페이지 위젯의 간소화 또는 축소는 로컬에서 수행됩니다.

대부분의 텍스트 기반 브라우저는 더 많은 트래픽을 유발할 수있는 페이지 스크립트 나 SWF를 실행하지 않으므로 트래픽 이 약간 줄어들 수 있습니다.


19
또는 실제로 이미지를 다운로드하십시오.
Journeyman Geek

4
3 배 이상의 크기 감소 가 예상된다는 점에서 생각하십시오 .
user2338816 2018 년

1
@ user2338816 예, 세 자릿수 차이가있을 수 있습니다. YouTube를 사용해보십시오! [나중에 추가 :] 죄송합니다. 또 다른 세입니다!
Volker Siegel

3
@ user2338816 세 자릿수는 거의 없을 것입니다. 예를 들어,이 특정 페이지의 경우 원본 html 문서는 캐싱을 무시하고 다운로드 가능한 전체 소스의 약 10 %에 불과하므로 단일 크기 만 가능합니다. 많은 무거운 항목 (자바 스크립트 라이브러리, 큰 이미지 등)이 성공적으로 캐싱되어 많은 페이지에서 재사용되므로 매우 드물게 다운로드되므로 크기가 전체 네트워크 트래픽에 미치는 영향을 나타내지는 않습니다.
Peteris

1
@Peteris 3은 약간 높을 수 있지만 확실히 2는 아닙니다. 여기에 표시되는 10 %가 대부분의 일반 사이트에서 동일하다고 가정 해 봅시다. 그런 다음 비디오 트래픽이 모든 비디오 트래픽의 78 %임을 고려하십시오. 이는 나머지 22 %의 트래픽에서 2.2 %가 텍스트 일 ​​것으로 예상 할 수 있음을 의미합니다. 자, 이것은 냅킨 수학이지만, 2 배의 크기가 그 자리에있는 것 같습니다.
corsiKa

답변:


53

웹 서버는 "전체 웹 사이트"를 보내지 않지만 브라우저가 요청하는 문서를 보냅니다.

예를 들어, 당신은에 액세스 할 때 https://www.google.com/를 문서의 브라우저 쿼리 서버 https://www.google.com/. 서버는 요청을 처리하고 HTML 코드를 다시 보냅니다.

그런 다음 브라우저는 서버가 전송 한 내용을 확인합니다. 이 경우 HTML 웹 페이지이므로 문서를 구문 분석하고 참조 된 스크립트, 스타일 시트, 이미지, 글꼴 등을 찾습니다.

이 단계에서 브라우저는 해당 문서 다운로드를 완료했지만 여전히 참조 문서를 다운로드하지 않았습니다. 그렇게하거나 건너 뛰도록 선택할 수 있습니다. 일반 브라우저는 최상의 시청 경험을 위해 모든 참조 문서를 다운로드하려고 시도합니다. Adblock과 같은 광고 차단기 또는 개인 정보 플러그인 (Ghostery, NoScript)이있는 경우 일부 리소스도 차단 될 수 있습니다.

그런 다음 브라우저는 서버에 단일 리소스를 명시 적으로 요청할 때마다 참조 문서를 하나씩 다운로드합니다. Google 예제에서 브라우저는 다음 중 몇 가지를 언급하기 위해 다음과 같은 참조를 찾습니다.

(실제 파일은 사용자, 브라우저 및 세션마다 다를 수 있으며 시간이 지남에 따라 변경 될 수 있습니다)

텍스트 기반 브라우저는 이미지, 플래시 파일, HTML5 비디오 등을 다운로드하지 않으므로 더 적은 데이터를 다운로드합니다.


@NathanOsman은 주석에서 좋은 지적을합니다. 때로는 작은 이미지가 HTML 문서에 직접 삽입되어 다운로드하는 것을 피할 수 없습니다. 이것은 요청 수를 줄이는 데 사용되는 또 다른 트릭입니다. 그들은이다 매우 그렇지 base64로 이진 파일을 인코딩의 오버 헤드가 너무 큰,하지만, 작은. Google.com에는 이러한 이미지가 거의 없습니다. ( base64로 인코딩 된 크기 / 디코딩 된 크기 )

  • 19 × 11 키보드 아이콘 (106 B / 76 B)
  • 28 × 38 마이크 아이콘 (334 B / 248 B)
  • Chrome 개발자 도구 리소스 탭에 1x1 px 투명 GIF (62 B / 43 B)가 표시 되지만 소스에서 찾을 수 없습니다. 나중에 JavaScript로 추가 할 수 있습니다.
  • 1x1 px 손상된 GIF 파일이 두 번 나타납니다 (34 B / 23 B). 그 목적은 나에게 미스터리입니다.

1
결합 된 이미지 링크가 마음에 들었습니다.
prateek61

12
@ prateek61 모든 주요 웹 사이트에서 사용합니다. 실제로 비디오 게임에서 빌린 기술입니다. :) 사실, 많은 웹 개발자는 심지어 " CSS 스프라이트 "또는 이와 유사한 것으로 부르기도합니다 ( 아마존 에서는 "가려움증"이라고하지만 그 변형이 얼마나 흔한 지 모르겠습니다).
솜털

3
글쎄, 거의-데이터 URI 체계 ( data:)를 사용하여 HTML에 직접 이미지를 포함시킬 수 있습니다 .
Nathan Osman

네, 인터넷 콘텐츠의 대부분을 기꺼이 희생하려는 경우 대역폭을 줄일 수 있습니다. 논리적 인 것 같습니다 ... 인터넷의 78 %가 비디오 트래픽 이라는 것을 잊지 마십시오 ...
corsiKa

25

나는 그들이 의심합니다. 텍스트 기반 브라우저는 기본적으로 이미지 (필요한 경우), 스크립트 등과 같은 외부 엔티티와 같은 리소스를 다운로드한다고 믿지 않습니다.

lynx와 wget을 사용 하여이 IANA 페이지 ( http://www.iana.org/domains/reserved ) 를 얻으려고 tcpdump를 사용하여 몇 가지 기본 테스트를 수행했으며 결과는 다음과 같습니다 (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

텍스트 기반 브라우저는 부풀린 웹 2.0 고해상도 이미지, 비디오 및 대화 형 항목 (플래시 및 기타)을 모두 요청하지 않으므로 전송 된 데이터 양을 크게 줄일 것이라고 생각합니다.

특정 IPtables 규칙에 도달하는 트래픽의 양을 계산하는 IPtables 규칙을 설정하여이를 테스트하는 것이 좋습니다.

예를 들어 트래픽 계산 기능이있는 포트 80 + 443에 대한 규칙을 만들고 일반 브라우저로 웹을 탐색하고 IPtables 카운터를 재설정 한 다음 텍스트 기반 브라우저로 동일한 작업을 수행하십시오.

동적 웹 콘텐츠 (광고 및 콘텐츠)는 액세스마다 다를 수 있으므로 두 실행을 100 % 비교할 수는 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.