HAR文件是什么?

HAR(HTTP Archive HTTP档案规范),是一个用来储存HTTP请求/响应信息的通用文件格式,基于JSON。这种格式的数据可以使HTTP监测工具以一种通用的格式导出所收集的数据,这些数据可以被其他支持HAR的HTTP分析工具(包括Firebug、httpwatch、Fiddler等)所使用,来分析网站的性能瓶颈。

目前HAR规范最新版本为HAR 1.2。HAR文件必须是UTF-8编码,有无BOM无所谓。如下是一个HAR文件的详细介绍。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
{
"log": {
"version": "1.2",
"creator": {
"name": "shun.zheng",
"version": "1.1.8"
},
"pages": [
{
"startedDateTime": "2015-09-06T10:02:41.663Z", // 页面开始加载的时间(格式:ISO 8601)
"id": "http://www.ihorve.com/", // 页面唯一标示符,即页面url
"title": "Horve后花园", // 页面标题
"pageTimings": { // 关于页面加载时间的详细信息
"onContentLoad": 1720, // 可选,页面开始加载到页面内容加载完毕之间的毫秒数
"onLoad": 2500, // 可选,页面开始加载到页面onload之间的毫秒数
"comment": "" // 可选,由用户或应用程序提供的注释
}
}
],
"entries": [ // 包含全部请求的数组,数组的每一项是一条请求的数据构成的对象,根据startedDateTime排序
{
"startedDateTime": "2015-09-06T10:02:41.645Z", // 请求发出的时间(ISO 8601)
"time": 1221, // 该条请求花费的总的毫秒数
"request": { // 请求的详细情况
"method": "GET", // 请求方式
"url": "http://www.ihorve.com/", // 请求的url
"httpVersion": "HTTP/1.1", // http协议版本号
"cookies": [], // cookie对象列表
"headers": [ // header信息
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.8 Safari/534.34"
},
{
"name": "Accept",
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
}
],
"queryString": [], // 查询参数对象的列表
"headersSize": -1, // 从HTTP请求消息的开始,直到(且包括)的主体之前的双CRLF的总字节数,不可用设置为-1
"bodySize": -1 // 消息体的粽子节数,不可用设置为-1
},
"response": { // 响应的详细情况
"status": 200, // 状态码
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [], // cookie对象列表
"headers": [ // 响应头信息列表
{
"name": "Server",
"value": "nginx"
},
{
"name": "Date",
"value": "Sun, 06 Sep 2015 09:59:22 GMT"
},
{
"name": "Content-Type",
"value": "text/html; charset=UTF-8"
},
{
"name": "Transfer-Encoding",
"value": "chunked"
},
{
"name": "Connection",
"value": "keep-alive"
},
{
"name": "Keep-Alive",
"value": "timeout=60"
},
{
"name": "X-Pingback",
"value": "http://www.ihorve.com/xmlrpc.php"
},
{
"name": "Content-Encoding",
"value": "gzip"
}
],
"redirectURL": "", // 从响应头位置重定向目标URL
"headersSize": -1, // 从HTTP响应消息的开始,直到(且包括)的主体之前的双CRLF的总字节数,不可用设置为-1
"bodySize": 65047, // 响应体的字节数
"content": { // 响应体的详细信息
"size": 65047, // 响应体的字节数
"mimeType": "text/html; charset=UTF-8" // 响应体的mimeType
}
},
"cache": { // 请求从浏览器缓存的信息
"beforeRequest": {}, // 可选,请求前缓存条目的状态
"afterRequest": {}, // 可选,请求后缓存条目的状态
"comment": ""
},
"timings": { // 发送请求到收到响应各阶段的时间,单位均为毫秒
"blocked": 0, // 可选,等待网络连接的时间
"dns": -1, // 可选,dns解析时间,不可用设置为-1
"connect": -1, // 可选,创建TCP连接的时间,不可用设置为-1
"send": 0, // 发送HTTP请求到服务器的时间
"wait": 1126, // 等待响应的时间
"receive": 95, // 从服务器接收或从缓存读取的时间
"ssl": -1 // 可选,SSL/TLS协商需要的时间,不可用设置为-1
},
"pageref": "http://www.ihorve.com/" // 可选,唯一,参照的父页面,如果应用不支持页面分组,可忽略此项配置
}
]
}
}

HAR文件如何获取

图示


一篇翻了个开头的文章。 原文地址:https://blog.stackpath.com/glossary/har-file/

HAR文件式什么

图示

HAR文件格式是个正在不断演化的标准,其中包含的信息不仅灵活而且可扩展。您可以看到一个HAR文件中包含了下列过程所花的时长的分解:

  1. 获取DNS信息需要多长时间
  2. 每个对象请求需要多长时间
  3. 连接服务器需要多长时间
  4. 每个对象的资源文件从服务器传输到浏览器需要多长时间

数据存储为JSON文件格式,并且从底层数据中解析出有意义的信息不总是简单。但是通过实践,HAR文件可以帮助您迅速识别Web页面关键的性能问题,让您有效地完成站点的开发工作,从而获得最大的成果。

如何获得HAR文件

由于HAR文件仍然是个不断变化的格式,支持可能是补丁,获取HAR文件需要做些工作。高质量的监控服务将从它们拿到的样品中获得HAR数据。可以定制自动化测试工具以获得HAR文件。

可以使用Firefox, Firebug和NetExport使用来为一个特定的URL生成HAR文件。也就是说,如果你使用的是一个新式浏览器,它可以生成一个瀑布图,而不需捕获HAR文件作为临时表示,而这将提供您在即时可用视图中所需的大部分信息。

Visualizing A HAR FIleAs the file is in a JSON format, this is relatively easy to process with software, but it can be difficult for us humans to visualize. Here are three options that will create visualizations of HAR files:

  • softwareishard.com. With this site you can simply paste your HAR File into the field and it will generate a report.
  • Your monitoring service. This should provide a visualization of your page loads for each sample they take. Compare your load times from different geographic locations to get a broader view of your customers’ experience.
  • Developer tools for browsers. I developed my first pass of web pages in Chrome. The Network Tab of the developer tools shows the webpage waterfall. Its easy availability makes it a great tool to work with.

What To Look For In A HAR File

图示

更多内容查看原文。

–EOF–