HTTP 2.0 : The New Web Standard and Issue 허태성 saturn.twinfish@gmail.com
목차 I. HTTP 2.0 의등장배경 II. HTTP 2.0 특징 III. HTTP 2.0 기대효과 IV. 현황및이슈 KRnet 2015 2
I. HTTP 2.0 의등장배경 KRnet 2015 3
HTTP 2.0 등장배경 15 년간웹전송기술표준유지 KRnet 2015 4
HTTP 2.0 등장배경 웹페이지 @ 1996 년 3 Request 34 KB KRnet 2015 5
HTTP 2.0 등장배경 웹페이지 @ Today 54 Request 721 KB KRnet 2015 6
HTTP 2.0 등장배경 웹페이지 & 전송속도의변화 1996 2015 3 Request 34 KB Resource 20X 54 Request 721 KB 56 Kbps Speed 4 Mbps 100X 변화에따른새로운전송기술이필요 KRnet 2015 7
HTTP 2.0 등장배경 Google Let s make a web faster IETF SPDY Protocol 발표 (draft #1, 2009.11) SPDY 표준화시작 (draft #3, 2012.2) SPDY 개정 (draft #3.1, 2013.9) SPDY 보완 (draft #4 alpha2, 2013.11) httpbis WG 생성 기존문제점보완 (2007.10) HTTP 2.0 개발 천명 (2012.6) HTTP 2.0 drfat-00 (2012.11~) HTTP 2.0 작업완료 (2014.11) HTTP 2.0 표준승인 (2015.2) HTTP 2.0 표준발표 (RFC7540, 2015.5) KRnet 2015 8
II. HTTP 2.0 특징 KRnet 2015 9
HTTP 2.0 특징 바이너리프로토콜 텍스트가아닌 Binary 프레임으로구성 파싱이더빠르고, 오류발생가능성이낮음 Multiplexing 하나의 TCP Connection내에서다수의 Stream을생성 하나의요청이지연되면나머지응답이늦어지는 HTTP Pipelining과는달리각각의요청 / 응답을독립적으로처리 다수의요청 / 응답을동시에처리가능 헤더압축 반복적으로사용되는헤더를헤더테이블내의인덱스로표기 헤더크기를 80% 정도줄임 우선순위설정 Stream 별로우선순위를지정 중요한리소스의처리지연을방지 Server Push 클라이언트가요청하지않아도필요가예상되는리소스를서버가미 리전송 KRnet 2015 10
HTTP 2.0 특징 바이너리프로토콜 KRnet 2015 11
HTTP 2.0 특징 Multiplexing 프레임마다관련된요청순서번호 (Stream #) 를기재 요청순서에상관없이데이터전송가능 하나의 TCP 세션사용 HTTP 1.0 Keep-Alive HTTP 1.1 Pipelining HTTP 2.0 Multiplexing KRnet 2015 12
HTTP 2.0 특징 Header Compression 이전헤더내용을테이블에저장 다음 request 에서동일한헤더를사용할경우테이블의 Index 번호만을사용 KRnet 2015 13
HTTP 2.0 특징 Server Push Client 가요청하기전에필요가예상되는리소스를 Server 가먼저전송 Server 쪽에서의추가적인프로그래밍이필요 KRnet 2015 14
HTTP 2.0 특징 Client ~ Server 연결 (http) HTTP Request시, Upgrade 헤더필드에 h2c 를명시 HTTP/2.0 지원시, 101 Switching Protocols 응답 KRnet 2015 15
HTTP 2.0 특징 Client ~ Server 연결 (https) TLS-ALPN(Application Layer Protocol Negotiation) 사용 HTTP 2.0 지원시프로토콜리스트에 h2 를표기 KRnet 2015 16
III. HTTP 2.0 기대효과 KRnet 2015 17
HTTP 2.0 기대효과 3G / 무선랜환경 (https = h2) 3G에서는 10~60% 의로딩시간단축예상 무선랜환경에서는효과미미 KRnet 2015 18
HTTP 2.0 기대효과 3G 환경 (https = h2) 로딩시간다소증가 ( 최대 2 배 ) KRnet 2015 19
HTTP 2.0 기대효과 무선랜환경 (https = h2) 일부사이트에서는로딩시간이다소증가 (1~49%) KRnet 2015 20
HTTP 2.0 기대효과 LTE 환경 (https = h2) 전송데이터량은감소하나로딩시간은오히려증가 ( 약 50%) KRnet 2015 21
HTTP 2.0 기대효과 ADSL / 3G 환경 (http = h2c) 로딩시간단축 (20~48%) 웹페이지크기가작을경우효과미미 KRnet 2015 22
HTTP 2.0 기대효과 ADSL / 3G 환경 (http = h2c) Latency가큰네트워크에서성능개선효과 Packet Loss 발생시성능저하 KRnet 2015 23
IV. 현황및이슈 KRnet 2015 24
현황및이슈 HTTP 2.0 지원현황 ( Client / Server ) Client (Browser) Server 제품 제품버전 HTTP 2.0 버전 제품 제품버전 HTTP 2.0 버전 IE 11(Win10) Edge Chrome 41+ Firefox 34+ Safari h2-14 Apache h2-14 ~ h2 h2-14 ~ h2 Nginx 2015 년말 IIS 10 (Win10) h2-14 Varnish ( 위정보에는오류가있을수있습니다. 정확한현황은해당제조사를통해확인하세요.) https://github.com/http2/http2-spec/wiki/implementations http://caniuse.com/#feat=http2 KRnet 2015 25
현황및이슈 Middle Box Firewall, Proxy, CDN 등 Middle Box의 HTTP 2.0 트래픽처리 암호화된 h2 보다암호화되지않은 h2c에서오류가능성 KRnet 2015 26
현황및이슈 기존웹전송최적화기법재고 ( 再考 ) 1 Domain Sharding 서버당최대 TCP 연결개수제한 : IE11(13개 ) 을제외한대부분 6개 다른 FQDN을가지는서버여러개로분산처리 HTTP 2.0 은하나의 TCP 연결에서 Multiplexing 이가능하므로불필요 KRnet 2015 27
현황및이슈 기존웹전송최적화기법재고 ( 再考 ) 2 Concatenated Assets / Inline Image Request 오버헤드를줄이기위해작은리소스를하나로합침 HTTP 2.0 은하나의 TCP 연결에서 Multiplexing 이가능하여 Request 가많아도오버헤드가없으므로불필요 KRnet 2015 28
현황및이슈 https (h2)!!! 주요브라우저는 HTTP 2.0에서 http(h2c) 미지원 HTTP2.0 기반서비스를위해서는 https only 서비스로전환필요 KRnet 2015 29
현황및이슈 Ready to encrypt? 인증서, AJAX Mesh-up, 광고 모든요소들이동시에 https ready 상태가되어야함 VS? KRnet 2015 30
현황및이슈 주요브라우저가 h2 처리시엄격한정책을적용 Mixed Content Blocking h2(https) 기반페이지로딩시페이지내에 http 기반리소스가포함될경우해당리소스를로딩하지않음 KRnet 2015 31
현황및이슈 인증서비용및관리 페이지내에포함된리소스관련모든호스트가인증서를필요 페이지당평균 17개도메인 1) 17 개의인증서 2) n 개의멀티도메인 3) n 개의와일드카드인증서 개당약 1.7 배가격 약 7 배가격 NO Domain Sharding!!! KRnet 2015 32
현황및이슈 사설인증서사용? 주요브라우저가 h2 처리시엄격한정책을적용 사설인증서유효성확인이안될경우접속차단 사설 Root 인증서를클라이언트마다설치해야함 KRnet 2015 33
현황및이슈 Let s Encrypt (letsencrypt.org) Free, Automated, and Open Certificate Authority $ sudo apt-get install lets-encrypt $ lets-encrypt example.com 1 2 3 KRnet 2015 34
현황및이슈 웹페이지수정 (http https) Find & Replace ( http:// https:// ) grep -rli 'http:'./ xargs sed -i 's/http:/https:/g 자바스크립트내동적생성 URL 처리 Protocol Relative URL src= //example.com/image.jpg CMS(Content management system) HSTS (HTTP Strict Transport Security) http, https 모두제공되지만 https 로만접속하도록브라우저에통보 웹서버의응답에서 HSTS 관련헤더를포함하여수신하면다음부터는 https 로만접속 Strict-Transport-Security: max-age=16070400; includesubdomains KRnet 2015 35
현황및이슈 암호화트래픽모니터링 멀웨어, 해킹, 기밀유출을어떻게모니터링할것인가? KRnet 2015 36
요약 변화된웹서비스및네트워크환경에맞게 15년여만에 HTTP 표준개정 HTTP 2.0을통해웹서비스성능향상을기대가능 환경에따라서는오히려성능저하가올수있음 웹서비스최적화기법의재검토가필요하며 주요브라우저의 h2(https) only 정책으로인해 기존웹서비스에대한수정 / 보완작업이필요 KRnet 2015 37