HAR (HTTP Archive) Format

발생일: 2011.10.28

문제:
HttpWatch나 파이어버그, 크롬 개발자 도구 등 네트워크 모니터링 툴을 보면,
분석된 네트워크 정보를 파일로 저장할 수 있는 내보내기(export) 기능이 있다.

그 중 대표적인 포맷이 .har 확장자를 갖는 HAR 포맷이다.
HAR (HTTP Archive) 포맷은 뭘까~?
정리해봤다.

해결책:

간단하게 뭐?
HAR 포맷은 HTTP 로딩 정보에 대한 파일 표준이다.
HTTP 헤더, 파일 사이즈, 다운로드 타임 등을 포함한 HTTP 로딩 정보를 가지고 있으며,
HTTP 모니터링 툴에서 수집된 정보를 내보내는 용도로 사용된다.


어떻게 만들어졌나?
HAR 포맷이 탄생하게 된 배경에는, 구글에서 웹 성능을 담당하고 있고 YSlow의 개발자인 Steve Souders(이하 스티브)가 있다.(1)

오래 전부터 인터넷 성능 데이터 수집을 목표로 하고 있었던 스티브는, 성능 수집의 가장 중요한 재료는 페이지 로드 데이터라고 생각했다. 그리고 이 데이터를 수집할 수 있는 가장 기본적인 방법은, HTTP 모니터링 툴에서 수집된 정보를 저장하는 것이었다.
그는 HTTP 패킷 스니핑을 위해 주로 HttpWatch를 쓰고 있었는데, 그 이유 중의 하나는 수집된 정보를 파일로 저장할 수 있는 HTTP 정보의 내보내기(exporting) 기능을 HttpWatch에서 꽤 오래 전부터 지원하고 있던 기능이었다.

그러던 2009년 초, 스티브는 마침 파이어버그 팀에서도 새로 추가할 Net Panel에 내보내기 기능을 추가할 계획이라는 소식을 듣게 된다. 하여 스티브는 HttpWath를 개발한 Simon Perkins과 파이어버그의 Net Panel을 담당하는 Jan Odvarko와의 만남을 주선하고, HTTP 정보를 저장하기 위한 공통 포맷을 만들어보기를 제안한다. "그 포맷이 업계 표준이 될 거야!"라면서...

2009년 10월 경, 이들은 HTTP Archive의 약자를 딴 HAR 포맷을 만들어냈고, 이는 HttpWatch 6.2 버전에 최초로 탑재되었다. 이어서 Firebug의 Add-on인 NetExport로 내보내기 기능이 추가되고, 현재는 IE9과 Chrome 개발자 도구, Fiddler, Charlse, dynaTrace 등 다수의 어플리케이션에서 지원되고 있다.


어떤 데이터를 포함하나?
HAR는 JSON 기반으로 정의되어 있으며, 페이지에 대한 정보, 요청과 응답 헤더 및 데이터, 페이지와 리소스의 타이밍 정보 등을 가지고 있다. 현재 버전은 1.2이며 더욱 자세한 내용은 HAR 1.2 Spce을 참조한다.
(http://www.softwareishard.com/blog/har-12-spec/)


그럼 어디선가 성능 데이터를 수집하고 있긴 한건가?
웹 성능 정보를 수집하기 위해 httparchive.org가 조직되었고, 2010년 10월부터 웹 성능 정보를 수집하고 있다.
전 세계 상위 17,000여개의 페이지들이 정보 수집을 위해 한 달에 두 번씩 분석되고 있다.

페이지 로드 타임 뿐만 아니라, 플래시를 사용하고 있는지, 컨텐츠에서 각 타입이 차지하는 비율이라던지, 구글 라이브러리 API를 사용 여부, 캐시 유효 시간 등 웹 성능 파악에 필요한 여러 가지 타입의 데이터를 확인할 수 있다.
각 사이트에 대해서도 동일한 데이터를 조회할 수 있으며, 현패 페이지의 Filmstrip, 리소스 Stats 등의 정보를 온라인에서 바로 확인할 수 있다.
(10월 트렌드: http://httparchive.org/interesting.php?a=&l=Oct%2015%202011&s=Top1000,
네이버 분석 정보: http://httparchive.org/viewsite.php?pageid=417272)


# 참고
스티브 사우더스와 HAR format


=============================================
(1) Steve Souders: High Performance Web Sites와 Even Faster Web Site의 저자이기도 하다.









저작자 표시 비영리 변경 금지
신고

카테고리

분류 전체보기 (659)
About me. (6)
Daylogs (624)
비공개 (0)
영어공부 (0)
My works - 추억 (29)