Performance
mobile browser pipelining
ShineWithMe
2011. 8. 1. 10:49
모바일은 RTT(Round Trip Time)과 Latency가 유난히 길다. 한번 왕복에 보통 60~100ms라고 보면된다.
Pipelining은 주고받는 확인절차 없이 그냥 한꺼번에 (한번에 보내는 양은 브라우저마다 지원하는 Pipeling Spec에 따라 다르다.) 보냄으로써 RTT를 대폭 개선한다.
모바일 Pipelining을 지원하는 안드로이드, 오페라 성능을 보면 아 쫌 도움이 되는구나.. 느껴 볼 수 있다.
http://gs.statcounter.com/#mobile_browser-ww-monthly-201006-201106
PC야 머...모바일에 비해 RTT, latency 월등하니.. pipelining이 급히 필요한건 아니다.
Windows Desktop Browsers | Supports Pipelining? | Server Support Detection | Max pipelined requests | Max connections per host |
---|---|---|---|---|
IE 9 | No | - | - | 6 |
Chrome 12 | No* | - | - | 6 |
Safari 5.1 | No | - | - | 6 |
Opera 11.5 | Yes | Per Host | 5 | 6 |
Firefox 5 | Yes (Off by default) | Per Connection | 4 | 6 |
* Logged as an enhancement request since March, 2009
우리는 모바일 쪽 pipelining 지원을 유심히 보아야할 필요가 있다.
아... 사파리 배신...
Mobile Browsers | Supports Pipelining? | Server Support Detection | Max pipelined requests | Max connections per host |
---|---|---|---|---|
MobileSafari | No | - | - | 6 |
Blackberry | No | - | - | 5 |
Android | Yes* | Per Connection | 3* | 4* |
Opera Mobile | Yes | Per Host | 11 | 4 |
Opera Mini | Yes** | Per Host | 4** | 10** |
* Details are for “stock” Android. Specific devices varied greatly.
** The stats are for the Opera Mini proxy, as the browser makes very few requests itself
서버에선 KA on, 문서는 HTTP1.1로
- Use of HTTP/1.1
- An explicit “Connection: Keep-Alive” header (required by Android)
안드로이드가 pipelining을 다 지원하는 건 아니고, 기기마다 다르다. 그래도 거의다 지원하는 편
Android Device | OS Version | Supports Pipelining? | Max Connections Per Host | Max Connections | Max pipelined requests |
---|---|---|---|---|---|
Nexus S | 2.3 | Yes | 4 | 4 | 3 |
Galaxy S | 2.2 | Yes | 12 | 12 | 6 |
XOOM | 3.0 | No | 6 | 35 | - |
Simulator | 3.1 | Yes | 4 | 4 | 3 |
출처(source) :
http://www.blaze.io/mobile/http-pipelining-big-in-mobile/
http://www.brianp.net/2011/07/19/will-http-pipelining-help-a-study-based-on-the-httparchive-org-data-set/