summaryrefslogtreecommitdiff
path: root/benchmarks/json/http
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/json/http')
-rw-r--r--benchmarks/json/http/http_6over4_single_trans.json34
-rw-r--r--benchmarks/json/http/http_chn_encode_url.json42
-rw-r--r--benchmarks/json/http/http_chunked_res_gzip.json46
-rw-r--r--benchmarks/json/http/http_connect_flood.json686
-rw-r--r--benchmarks/json/http/http_get_encoded_uri.json81
-rw-r--r--benchmarks/json/http/http_get_long_cookie.json24
-rw-r--r--benchmarks/json/http/http_get_malformed.json2
-rw-r--r--benchmarks/json/http/http_get_multi_trans.json149
-rw-r--r--benchmarks/json/http/http_get_req_pipeline.json68
-rw-r--r--benchmarks/json/http/http_get_single_trans.json34
-rw-r--r--benchmarks/json/http/http_gzip_out_of_order.json39
-rw-r--r--benchmarks/json/http/http_hdr_truncated_after_kv.json311
-rw-r--r--benchmarks/json/http/http_hdr_truncated_in_kv.json53
-rw-r--r--benchmarks/json/http/http_hdr_value_empty.json36
-rw-r--r--benchmarks/json/http/http_hdrs_exceed_maximum.json51
-rw-r--r--benchmarks/json/http/http_inner_tunnel_for_http.json15
-rw-r--r--benchmarks/json/http/http_inner_tunnel_for_pop3.json15
-rw-r--r--benchmarks/json/http/http_msg_type_state.json20
-rw-r--r--benchmarks/json/http/http_msg_type_state_c2s.json13
-rw-r--r--benchmarks/json/http/http_msg_type_state_exception_c2s.json13
-rw-r--r--benchmarks/json/http/http_msg_type_state_exception_s2c.json16
-rw-r--r--benchmarks/json/http/http_msg_type_state_pipeline.json61
-rw-r--r--benchmarks/json/http/http_msg_type_state_s2c.json13
-rw-r--r--benchmarks/json/http/http_msg_type_state_tunnel.json26
-rw-r--r--benchmarks/json/http/http_msg_type_state_tunnel_c2s.json15
-rw-r--r--benchmarks/json/http/http_msg_type_state_tunnel_s2c.json19
-rw-r--r--benchmarks/json/http/http_multi_parse_error.json38
-rw-r--r--benchmarks/json/http/http_no_content_length.json46
-rw-r--r--benchmarks/json/http/http_out_of_order.json44
-rw-r--r--benchmarks/json/http/http_over_pppoe.json36
-rw-r--r--benchmarks/json/http/http_over_tcp_keepalive.json45
-rw-r--r--benchmarks/json/http/http_over_tls.json2
-rw-r--r--benchmarks/json/http/http_post_multipart_form_data.json108
-rw-r--r--benchmarks/json/http/http_post_single_trans.json38
-rw-r--r--benchmarks/json/http/http_req_1byte_sliding_window.json35
-rw-r--r--benchmarks/json/http/http_res_1byte_sliding_window.json35
-rw-r--r--benchmarks/json/http/http_res_gzip.json45
-rw-r--r--benchmarks/json/http/http_trans_pipeline.json389
-rw-r--r--benchmarks/json/http/http_tunnel_for_http.json62
-rw-r--r--benchmarks/json/http/http_tunnel_for_http_c2s.json31
-rw-r--r--benchmarks/json/http/http_tunnel_for_http_s2c.json36
-rw-r--r--benchmarks/json/http/http_tunnel_for_pop3.json32
-rw-r--r--benchmarks/json/http/http_tunnel_s2c_only_hdr.json15
-rw-r--r--benchmarks/json/http/http_upgrade_http2.json41
-rw-r--r--benchmarks/json/http/http_upgrade_websocket.json41
-rw-r--r--benchmarks/json/http/http_url_test_with_host.json35
-rw-r--r--benchmarks/json/http/http_url_test_without_host.json30
-rw-r--r--benchmarks/json/http/http_url_test_without_host_v6.json42
-rw-r--r--benchmarks/json/http/http_zlib_deadlock.json43
-rw-r--r--benchmarks/json/http/non_http.json1
50 files changed, 3152 insertions, 0 deletions
diff --git a/benchmarks/json/http/http_6over4_single_trans.json b/benchmarks/json/http/http_6over4_single_trans.json
new file mode 100644
index 0000000..34d999d
--- /dev/null
+++ b/benchmarks/json/http/http_6over4_single_trans.json
@@ -0,0 +1,34 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "2001:da8:200:900e:200:5efe:d24d:58a3.52556>2600:140e:6::1702:1058.80"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/ncsi.txt",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Connection": "Close",
+ "User-Agent": "Microsoft NCSI",
+ "Host": "www.msftncsi.com",
+ "__X_HTTP_URL": "www.msftncsi.com/ncsi.txt"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Content-Length": "14",
+ "Date": "Tue, 01 Dec 2015 03:41:27 GMT",
+ "Connection": "close",
+ "Content-Type": "text/plain",
+ "Cache-Control": "max-age=30, must-revalidate",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "cd5a4d3fdd5bffc16bf959ef75cf37bc",
+ "__X_HTTP_PAYLOAD": "TWljcm9zb2Z0IE5DU0k="
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_chn_encode_url.json b/benchmarks/json/http/http_chn_encode_url.json
new file mode 100644
index 0000000..5453415
--- /dev/null
+++ b/benchmarks/json/http/http_chn_encode_url.json
@@ -0,0 +1,42 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "2607:5d00:2:2::38:2:56343-240e:928:101:80::80:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87URL%E7%BC%96%E8%A7%A3%E7%A0%81",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "www.airchina.com.cn",
+ "Connection": "keep-alive",
+ "DNT": "1",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
+ "Cookie": "_gcl_au=1.1.240068387.1720059437; _ga_CGYVD7S4G4=GS1.1.1720059448.3.0.1720059453.0.0.0; HMF_CI=7967e38cc3874dbbefa260b8dcbee31fa827a01fc2b7073105a5e05f4a1ea361c74f6d4c37fb199bfc9470036f06fb537da2a74e96450b7949e0b686f0569f9680; HMY_JC=84f9c8a99e076ee2dda5ba48cd953f61c4dc2707823205d8171c8818eea9d60fda,; _ga=GA1.3.822493162.1711101509; _gid=GA1.3.304369429.1721120134; arialoadData=true; ariawapChangeViewPort=false; C3VK=be8842; HBB_HC=faa7f3e2477e14525534a5560ed6a307b29ae2c324e1f631a428e53fb74c9d72575c155d682554ba15cc9e52afe31218b1; mbox=check#true#1721120252|session#1721120133635-517642#1721122052; s_pers=%20s_fid%3D52863027521849CD-3A72894997C48527%7C1878886591105%3B; s_sess=%20s_cc%3Dtrue%3B",
+ "__X_HTTP_URL": "www.airchina.com.cn/%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87URL%E7%BC%96%E8%A7%A3%E7%A0%81",
+ "__X_HTTP_DECODED_URL": "www.airchina.com.cn/测试中文URL编解码"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Moved Temporarily",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 302,
+ "Date": "Tue, 16 Jul 2024 08:57:32 GMT",
+ "Content-Length": "0",
+ "Connection": "keep-alive",
+ "Server": "waf/4.39.0-0.el7",
+ "Location": "https://www.airchina.com.cn/%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87URL%E7%BC%96%E8%A7%A3%E7%A0%81",
+ "x-ws-origin-error": "-",
+ "X-Via": "1.1 PSjsczBGPiv194:0 (Cdn Cache Server V2.0), 1.1 PStjdxpn34:6 (Cdn Cache Server V2.0)",
+ "X-Ws-Request-Id": "669635fc_PStjdxks32_7630-15285"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_chunked_res_gzip.json b/benchmarks/json/http/http_chunked_res_gzip.json
new file mode 100644
index 0000000..370b4a7
--- /dev/null
+++ b/benchmarks/json/http/http_chunked_res_gzip.json
@@ -0,0 +1,46 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "127.0.0.1:33412-127.0.0.1:8080-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "www.wireshark.org:8080",
+ "User-Agent": "curl/7.46.0",
+ "Accept": "*/*",
+ "Connection": "close",
+ "Accept-Encoding": "chunked, gzip",
+ "__X_HTTP_URL": "www.wireshark.org:8080/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "cloudflare-nginx",
+ "Date": "Wed, 06 Jan 2016 20:42:10 GMT",
+ "Content-Type": "text/html",
+ "Transfer-Encoding": "chunked",
+ "Connection": "close",
+ "Set-Cookie": "__cfduid=d8d37b52eaa3137bdfd7fd67a4ffc8a7a1452112929; expires=Thu, 05-Jan-17 20:42:09 GMT; path=/; domain=.wireshark.org; HttpOnly",
+ "X-Frame-Options": "SAMEORIGIN",
+ "Strict-Transport-Security": "max-age=31536000;",
+ "X-Slogan": "It's a great product with a great story to tell. I'm pumped!",
+ "X-Mod-Pagespeed": "1.9.32.11-7550",
+ "Vary": "Accept-Encoding",
+ "Cache-control": "max-age=0, no-cache, no-store",
+ "X-Slogan1": "Go deep.",
+ "CF-RAY": "260a3f709d7b0761-AMS",
+ "Content-Encoding": "gzip",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "5387fc115327b819ba920ad6ce8f3e3a",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "855f8310be999de806e89a420a95435d"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_connect_flood.json b/benchmarks/json/http/http_connect_flood.json
new file mode 100644
index 0000000..199c038
--- /dev/null
+++ b/benchmarks/json/http/http_connect_flood.json
@@ -0,0 +1,686 @@
+[
+ {
+ "Tuple4": "10.128.0.2.18762>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110929 Iceweasel/3.5.16",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_1"
+ },
+ {
+ "Tuple4": "10.128.0.2.18746>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_2"
+ },
+ {
+ "Tuple4": "10.128.0.2.18744>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_3"
+ },
+ {
+ "Tuple4": "10.128.0.2.18748>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_4"
+ },
+ {
+ "Tuple4": "10.128.0.2.18750>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_5"
+ },
+ {
+ "Tuple4": "10.128.0.2.18752>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_6"
+ },
+ {
+ "Tuple4": "10.128.0.2.18754>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_7"
+ },
+ {
+ "Tuple4": "10.128.0.2.18756>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_8"
+ },
+ {
+ "Tuple4": "10.128.0.2.18758>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_9"
+ },
+ {
+ "Tuple4": "10.128.0.2.18760>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_10"
+ },
+ {
+ "Tuple4": "10.128.0.2.18762>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:38 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_11"
+ },
+ {
+ "Tuple4": "10.128.0.2.18768>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Safari/5.00 (Macintosh; U; en)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_12"
+ },
+ {
+ "Tuple4": "10.128.0.2.18766>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_13"
+ },
+ {
+ "Tuple4": "10.128.0.2.18770>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Opera/9.00 (Windows NT 5.1; U; en)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_14"
+ },
+ {
+ "Tuple4": "10.128.0.2.18772>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Opera/9.00 (Windows NT 5.1; U; en)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_15"
+ },
+ {
+ "Tuple4": "10.128.0.2.18776>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "GooglePocket/2.1 ( http://www.googlePocket.com/Pocket.html)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_16"
+ },
+ {
+ "Tuple4": "10.128.0.2.18774>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.4.0",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_17"
+ },
+ {
+ "Tuple4": "10.128.0.2.18780>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030505 Mozilla Firebird/0.6",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_18"
+ },
+ {
+ "Tuple4": "10.128.0.2.18778>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "DoCoMo/2.0 SH902i (compatible; Y!J-SRD/1.0; http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_19"
+ },
+ {
+ "Tuple4": "10.128.0.2.18782>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "IE/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322;)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_20"
+ },
+ {
+ "Tuple4": "10.128.0.2.18784>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110929 Iceweasel/3.5.16",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_21"
+ },
+ {
+ "Tuple4": "10.128.0.2.18768>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_22"
+ },
+ {
+ "Tuple4": "10.128.0.2.18766>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_23"
+ },
+ {
+ "Tuple4": "10.128.0.2.18770>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_24"
+ },
+ {
+ "Tuple4": "10.128.0.2.18772>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_25"
+ },
+ {
+ "Tuple4": "10.128.0.2.18776>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_26"
+ },
+ {
+ "Tuple4": "10.128.0.2.18780>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_27"
+ },
+ {
+ "Tuple4": "10.128.0.2.18774>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_28"
+ },
+ {
+ "Tuple4": "10.128.0.2.18778>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_29"
+ },
+ {
+ "Tuple4": "10.128.0.2.18782>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_30"
+ },
+ {
+ "Tuple4": "10.128.0.2.18784>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:39 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_31"
+ },
+ {
+ "Tuple4": "10.128.0.2.18790>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Safari/5.00 (Macintosh; U; en)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_32"
+ },
+ {
+ "Tuple4": "10.128.0.2.18792>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_33"
+ },
+ {
+ "Tuple4": "10.128.0.2.18796>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Opera/9.00 (Windows NT 5.1; U; en)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_34"
+ },
+ {
+ "Tuple4": "10.128.0.2.18794>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Opera/9.00 (Windows NT 5.1; U; en)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_35"
+ },
+ {
+ "Tuple4": "10.128.0.2.18798>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "GooglePocket/2.1 ( http://www.googlePocket.com/Pocket.html)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_36"
+ },
+ {
+ "Tuple4": "10.128.0.2.18800>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030505 Mozilla Firebird/0.6",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_37"
+ },
+ {
+ "Tuple4": "10.128.0.2.18804>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "DoCoMo/2.0 SH902i (compatible; Y!J-SRD/1.0; http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_38"
+ },
+ {
+ "Tuple4": "10.128.0.2.18802>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.4.0",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_39"
+ },
+ {
+ "Tuple4": "10.128.0.2.18806>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "IE/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322;)",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_40"
+ },
+ {
+ "Tuple4": "10.128.0.2.18808>10.0.0.2.80",
+ "method": "CONNECT",
+ "uri": "test.mazebolt.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.mazebolt.com",
+ "User-Agent": "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110929 Iceweasel/3.5.16",
+ "Accept": "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Content-Length": "0",
+ "name": "HTTP_DECODER_RESULT_41"
+ },
+ {
+ "Tuple4": "10.128.0.2.18790>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_42"
+ },
+ {
+ "Tuple4": "10.128.0.2.18792>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_43"
+ },
+ {
+ "Tuple4": "10.128.0.2.18796>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_44"
+ },
+ {
+ "Tuple4": "10.128.0.2.18798>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_45"
+ },
+ {
+ "Tuple4": "10.128.0.2.18794>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_46"
+ },
+ {
+ "Tuple4": "10.128.0.2.18800>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_47"
+ },
+ {
+ "Tuple4": "10.128.0.2.18804>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_48"
+ },
+ {
+ "Tuple4": "10.128.0.2.18802>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_49"
+ },
+ {
+ "Tuple4": "10.128.0.2.18806>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_50"
+ },
+ {
+ "Tuple4": "10.128.0.2.18808>10.0.0.2.80",
+ "res_version": "1.1",
+ "res_status": "Forbidden",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 403,
+ "Date": "Thu, 03 Sep 2020 10:26:41 GMT",
+ "Server": "Apache",
+ "Content-Length": "199",
+ "Content-Type": "text/html; charset=iso-8859-1",
+ "name": "HTTP_DECODER_RESULT_51"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_get_encoded_uri.json b/benchmarks/json/http/http_get_encoded_uri.json
new file mode 100644
index 0000000..de1419a
--- /dev/null
+++ b/benchmarks/json/http/http_get_encoded_uri.json
@@ -0,0 +1,81 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.117.60:39655-58.16.70.122:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "POST",
+ "uri": "/disAll/tcCertType.html",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
+ "Accept": "*/*",
+ "Accept-Language": "en-US,en;q=0.8,en-us,en;q=0.5",
+ "Origin": "http://58.16.70.122",
+ "X-Requested-With": "XMLHttpRequest",
+ "Referer": "http://58.16.70.122/register.jsp?redirect:http://58.16.70.122.r87.com/?",
+ "Cache-Control": "no-cache",
+ "X-Scanner": "Netsparker",
+ "Cookie": "JSESSIONID=385C79E211D561C0CA13D90F150F603D",
+ "Host": "58.16.70.122",
+ "Content-Length": "0",
+ "Accept-Encoding": "gzip, deflate",
+ "__X_HTTP_URL": "58.16.70.122/disAll/tcCertType.html"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "Apache-Coyote/1.1",
+ "Pragma": "No-cache",
+ "Expires": "Thu, 01 Jan 1970 00:00:00 GMT",
+ "Content-Type": "text/html;charset=UTF-8",
+ "Transfer-Encoding": "chunked",
+ "Date": "Sat, 18 May 2019 01:36:57 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "d545e0faf20f7ffe90e31cfc1aef1782",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "d545e0faf20f7ffe90e31cfc1aef1782"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/upload/%E6%B3%95%E5%BE%8B%E6%B3%95%E8%A7%84/%E5%B8%82%E4%BA%BA%E6%B0%91%E6%94%BF%E5%BA%9C%E5%8A%9E%E5%85%AC%E5%8E%85%E5%8D%B0%E5%8F%91%E8%B4%B5%E9%98%B3%E5%B8%82%E5%85%B3%E4%BA%8E%E6%8E%A8%E8%BF%9B%E5%B7%A5%E5%95%86%E8%90%A5%E4%B8%9A%E6%89%A7%E7%85%A7%E3%80%81%E7%BB%84%E7%BB%87%E6%9C%BA%E6%9E%84%E4%BB%A3%E7%A0%81%E8%AF%81%E5%92%8C%E7%A8%8E%E5%8A%A1%E7%99%BB%E8%AE%B0%E8%AF%81%E2%80%9C%E4%B8%89%E8%AF%81%E5%90%88%E4%B8%80%E2%80%9D%E7%99%BB%E8%AE%B0%E5%88%B6%E5%BA%A6%E6%94%B9%E9%9D%A9%E5%AE%9E%E6%96%BD%E6%96%B9%E6%A1%88%E7%9A%84%E9%80%9A%E7%9F%A5%EF%BC%88%E7%AD%91%E5%BA%9C%E5%8A%9E%E5%87%BD%E3%80%902015%E3%80%91162%E5%8F%B7%EF%BC%89.docx?nsextt=N3TSP4RKE2",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
+ "Cache-Control": "no-cache",
+ "Accept-Language": "en-us,en;q=0.5",
+ "X-Scanner": "Netsparker",
+ "Cookie": "JSESSIONID=385C79E211D561C0CA13D90F150F603D",
+ "Host": "58.16.70.122",
+ "Accept-Encoding": "gzip, deflate",
+ "__X_HTTP_URL": "58.16.70.122/upload/%E6%B3%95%E5%BE%8B%E6%B3%95%E8%A7%84/%E5%B8%82%E4%BA%BA%E6%B0%91%E6%94%BF%E5%BA%9C%E5%8A%9E%E5%85%AC%E5%8E%85%E5%8D%B0%E5%8F%91%E8%B4%B5%E9%98%B3%E5%B8%82%E5%85%B3%E4%BA%8E%E6%8E%A8%E8%BF%9B%E5%B7%A5%E5%95%86%E8%90%A5%E4%B8%9A%E6%89%A7%E7%85%A7%E3%80%81%E7%BB%84%E7%BB%87%E6%9C%BA%E6%9E%84%E4%BB%A3%E7%A0%81%E8%AF%81%E5%92%8C%E7%A8%8E%E5%8A%A1%E7%99%BB%E8%AE%B0%E8%AF%81%E2%80%9C%E4%B8%89%E8%AF%81%E5%90%88%E4%B8%80%E2%80%9D%E7%99%BB%E8%AE%B0%E5%88%B6%E5%BA%A6%E6%94%B9%E9%9D%A9%E5%AE%9E%E6%96%BD%E6%96%B9%E6%A1%88%E7%9A%84%E9%80%9A%E7%9F%A5%EF%BC%88%E7%AD%91%E5%BA%9C%E5%8A%9E%E5%87%BD%E3%80%902015%E3%80%91162%E5%8F%B7%EF%BC%89.docx?nsextt=N3TSP4RKE2",
+ "__X_HTTP_DECODED_URL": "58.16.70.122/upload/法律法规/市人民政府办公厅印发贵阳市关于推进工商营业执照、组织机构代码证和税务登记证“三证合一”登记制度改革实施方案的通知(筑府办函【2015】162号).docx?nsextt=N3TSP4RKE2"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "Apache-Coyote/1.1",
+ "Accept-Ranges": "bytes",
+ "ETag": "W/\"1703517-1546572172000\"",
+ "Last-Modified": "Fri, 04 Jan 2019 03:22:52 GMT",
+ "Content-Type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8",
+ "Content-Length": "1703517",
+ "Date": "Sat, 18 May 2019 01:37:00 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "3598c468910611a3128d068e20ae0e82",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "3598c468910611a3128d068e20ae0e82"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_get_long_cookie.json b/benchmarks/json/http/http_get_long_cookie.json
new file mode 100644
index 0000000..118022d
--- /dev/null
+++ b/benchmarks/json/http/http_get_long_cookie.json
@@ -0,0 +1,24 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "202.127.156.91:27282-14.17.32.203:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/livemsg?imagemd5=02f5efd8a349c50280f8540b2735bd54&tailroll=1&plugin=1.3.8&pf=out&si=3766845706&url=http%3A%2F%2Fsports.qq.com%2Fa%2F20160106%2F008987.htm&soid=CA7F9C5B0120568CDC2F68726300&chid=0&ping_data=dXNlcl9pbmZvPXVCWDluVDg5SFJhOUFQK0JQVGdKRUxVYi9Kdz0&t=0&iptype=0&vptag=&pid=7F993E38C0E676ACC07DE764D1F3DEF56AA8F90A&adtype=LD&oadid=6012&ev=3236&l=4020&ufc_filter=0&imagelog=1&pid2=7F993E38C0E676ACC07DE764D1F3DEF56AA8F90A&mt=15000&coverid=&reqtime=1452071981&requestl=4020&isthirdip=0&cid=0&isfloatindex=0&o=100654557&lcount=2&refluence=4020&from=0&vid=m01794rm5ej&cip=202.127.156.91&aver=0&ip_filter=0&adlength=30000&tagid=&v=TencentPlayerOutV3.2.19.346&live=0&dura=105",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "livep.l.qq.com",
+ "Connection": "keep-alive",
+ "User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36",
+ "Accept": "*/*",
+ "Referer": "http://imgcache.qq.com/tencentvideo_v1/player/TPout.swf?max_age=86400&v=20140714",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "zh-CN,zh;q=0.8",
+ "__X_HTTP_URL": "livep.l.qq.com/livemsg?imagemd5=02f5efd8a349c50280f8540b2735bd54&tailroll=1&plugin=1.3.8&pf=out&si=3766845706&url=http%3A%2F%2Fsports.qq.com%2Fa%2F20160106%2F008987.htm&soid=CA7F9C5B0120568CDC2F68726300&chid=0&ping_data=dXNlcl9pbmZvPXVCWDluVDg5SFJhOUFQK0JQVGdKRUxVYi9Kdz0&t=0&iptype=0&vptag=&pid=7F993E38C0E676ACC07DE764D1F3DEF56AA8F90A&adtype=LD&oadid=6012&ev=3236&l=4020&ufc_filter=0&imagelog=1&pid2=7F993E38C0E676ACC07DE764D1F3DEF56AA8F90A&mt=15000&coverid=&reqtime=1452071981&requestl=4020&isthirdip=0&cid=0&isfloatindex=0&o=100654557&lcount=2&refluence=4020&from=0&vid=m01794rm5ej&cip=202.127.156.91&aver=0&ip_filter=0&adlength=30000&tagid=&v=TencentPlayerOutV3.2.19.346&live=0&dura=105",
+ "__X_HTTP_DECODED_URL": "livep.l.qq.com/livemsg?imagemd5=02f5efd8a349c50280f8540b2735bd54&tailroll=1&plugin=1.3.8&pf=out&si=3766845706&url=http://sports.qq.com/a/20160106/008987.htm&soid=CA7F9C5B0120568CDC2F68726300&chid=0&ping_data=dXNlcl9pbmZvPXVCWDluVDg5SFJhOUFQK0JQVGdKRUxVYi9Kdz0&t=0&iptype=0&vptag=&pid=7F993E38C0E676ACC07DE764D1F3DEF56AA8F90A&adtype=LD&oadid=6012&ev=3236&l=4020&ufc_filter=0&imagelog=1&pid2=7F993E38C0E676ACC07DE764D1F3DEF56AA8F90A&mt=15000&coverid=&reqtime=1452071981&requestl=4020&isthirdip=0&cid=0&isfloatindex=0&o=100654557&lcount=2&refluence=4020&from=0&vid=m01794rm5ej&cip=202.127.156.91&aver=0&ip_filter=0&adlength=30000&tagid=&v=TencentPlayerOutV3.2.19.346&live=0&dura=105",
+ "Cookie": "flashuser=95621BA8CB862E09; piao_city=179; lv_irt_id=3628e1bbe25a6c941da9fac02ec2df8b; cm_cookie=V1,10017&-EP5mRruXhQarsCl5LD-2YzgjVTvyr2K&AQEBh7uoLMUB9lnaB5Tz9XdYnGIWflXmsDrU&150723&150723,10035&7t-tEmfJ076VAsM9&AQEBh7uoLMUB9lnc4tpW7vbazqdrRdBYOUCi&150724&150807,110054&ucO0Z0gctNn3&AQEBh7uoLMUB9llxMNl45F3RAIsKK0iMOJAG&150716&151008,10040&ACZ1r0A70NaEFcGT&AQEBh7uoLMUB9lmVgSoTwuuXZi896zSVsXIF&150818&151014,110015&1&AQEBh7uoLMUB9lkt2LUHO6ARwODHLI_Y51rj&150928&151103,10037&1433388364186289251984&AQEBh7uoLMUB9llIBencOqTAEh2aQ2SURSSQ&150909&151110,10011&jL40Z03uUFI0&AQEBh7uoLMUB9lkfw2sJVNx9g12Fzs12rPSN&150717&151125,10016&F64E6LFZs0W&AQEBh7uoLMUB9llE4yoPFNUykSj7WKaRK5lH&150805&151127,10019&WQAO-C1K9qI5OP8W_t2pSw&AQEBh7uoLMUB9llhpZE87GmOk3XGo_MJgV6K&150826&151130,10015&820490997316506147&AQEBh7uoLMUB9llXiynsGYRhMO3XuPnkuHUt&150715&151201,10012&x3X1yY6b&AQEBh7uoLMUB9ll9mraU_LJCDBYsE0Sbk_V9&151202&151202,110065&ucO0Z0gctNn3&AQEBh7uoLMUB9lkJcK3KDBQTKF0YfZ5wB7r5&150716&151203,110066&jL40Z03uUFI0&AQEBh7uoLMUB9lnyvKSYhcJD1X_rSs_DLVWx&150916&151221,10013&ePyYB2MSKa0TCbebpxKjmU&AQEBh7uoLMUB9ln6_6nGNidqml4nFKXhtE58&151221&151221,110061&d9cfa518d82abee&AQEBh7uoLMUB9llj2NYzmCjxaLWXALTcAGIH&150818&151224,10038&CAESEPZbUhToZJ39CS9MlgXGUSQ&AQEBh7uoLMUB9lmhnrDM5lIGtl6vc1NxMD6F&151110&151224,10077&820490997316506147&AQEBh7uoLMUB9lmkUdUe2xSHGkvM0IRu9Jt9&151214&151228,10008&0yPSvk92ie1nhB8wTUlTq&AQEBh7uoLMUB9lnL5ZCYvXJNvlv53G0CKEkj&150817&151228,10045&0&AQEBh7uoLMUB9llW3v1Vh7W72lv14RlAjUXn&151023&151228,110064&jL40Z03uUFI0&AQEBh7uoLMUB9lkBYuCUDLDrOcGURJcilogv&151016&160104,110069&26d49ecc&AQEBh7uoLMUB9lmlBLTxQY9BkCmimkMFqTo5&151204&160105,10079&B8hGto5y1e3uDXwCMsIun3rjk--dVCof&AQEBh7uoLMUB9llxnFrhDtdNMjZ1hs1il5J4&151214&160105; LHTturn=24; ptisp=ctc; RK=hRWyd82Gd8; pgv_pvi=7567882240; image_md5=bd21d5fb2f401b37cf3a02724dc06545; LTPturn=27; pt2gguin=o0583115900; uin=o0583115900; skey=@Mp9aCinaO; ptcz=10d4b1b7bde835d64663338a8008fd4f81e2c6b5f0ba81a90da3627ee617c7ee; pgv_info=ssid=s4768939310; pgv_pvid=6872592818; o_cookie=583115900; lv_play_index_textAd=47; lv_play_indexl.=32; dc_vplaying=1; LKBturn=29; Lturn=29; adid=583115900; appuser=95621BA8CB862E09; o_minduid=phhdxyNLkxBWMa74VTm5zU4y5EbUv5vR; appuser_95621BA8CB862E09_0=2b7gwp=1453219199_6&2btemv=1455551999_1&2c8311=1453305599_3&2cfx4j=1453651199_3&2cfx9l=1453651199_1&2d49y9=1453823999_2&2d67kl=1454255999_2&2d69mf=1454255999_3&2dxv8l=1455465599_6&2dzhfl=1452614399_1&f_pogvwp=1452095999_1&f_pogvwv=1452095999_2&f_pogw0m=1452095999_1&fd_15bm2t7=1452095999_1&fd_1h2pbsd=1452095999_2&fd_1k6so62=1452095999_1&fd_rhmjmq=1452095999_2&m_roiw0t=1452095999_3&m_xty8wl=1452095999_1&pogree=1452095999_2; TX.boid=100655474=1452072582_1&701041365=1452072585_1; appuser_95621BA8CB862E09_effect_0=fd_1ez2rcc=1452095999_1&fd_qdh7zw=1452095999_1&fd_ul215j=1452095999_1; psessionid=ca7f9c5b_1452071982_583115900_30754; psessiontime=1452071990"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_get_malformed.json b/benchmarks/json/http/http_get_malformed.json
new file mode 100644
index 0000000..3a04d38
--- /dev/null
+++ b/benchmarks/json/http/http_get_malformed.json
@@ -0,0 +1,2 @@
+ [
+ ] \ No newline at end of file
diff --git a/benchmarks/json/http/http_get_multi_trans.json b/benchmarks/json/http/http_get_multi_trans.json
new file mode 100644
index 0000000..917b1c7
--- /dev/null
+++ b/benchmarks/json/http/http_get_multi_trans.json
@@ -0,0 +1,149 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.50.18:60400-192.168.42.1:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/account/login.htm",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.pro.testin.cn",
+ "Connection": "keep-alive",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9",
+ "Cookie": "Hm_lvt_1b8c1194303ef64e02f003f0cb8a1906=1653898514; _gcl_au=1.1.1010551181.1653898515; _ga=GA1.2.1419569885.1653898515; _gid=GA1.2.2007113907.1653898515; authtoken_pro=tea83b3beef07488bb8571811385db42; userId_pro=1160; pid_pro=1; eid_pro=1; pname_pro=name; Hm_lpvt_1b8c1194303ef64e02f003f0cb8a1906=1653961741; JSESSIONID=531AACA879469EDAB825E28113490E10",
+ "__X_HTTP_URL": "test.pro.testin.cn/account/login.htm"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 302,
+ "Server": "nginx/1.16.1",
+ "Date": "Tue, 31 May 2022 06:41:23 GMT",
+ "Content-Length": "0",
+ "Connection": "keep-alive",
+ "Set-Cookie": "JSESSIONID=CFAB9C0C3F4D9D6C2837E3BA9425AFCA; Path=/; HttpOnly",
+ "Set-Cookie1": "authtoken_pro=tea83b3beef07488bb8571811385db42; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Set-Cookie2": "userId_pro=1160; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Location": "http://test.pro.testin.cn/enterprise/index.htm",
+ "Content-Language": "zh-CN"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/enterprise/index.htm",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.pro.testin.cn",
+ "Connection": "keep-alive",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9",
+ "Cookie": "Hm_lvt_1b8c1194303ef64e02f003f0cb8a1906=1653898514; _gcl_au=1.1.1010551181.1653898515; _ga=GA1.2.1419569885.1653898515; _gid=GA1.2.2007113907.1653898515; authtoken_pro=tea83b3beef07488bb8571811385db42; userId_pro=1160; pid_pro=1; eid_pro=1; pname_pro=name; Hm_lpvt_1b8c1194303ef64e02f003f0cb8a1906=1653961741; JSESSIONID=CFAB9C0C3F4D9D6C2837E3BA9425AFCA",
+ "__X_HTTP_URL": "test.pro.testin.cn/enterprise/index.htm"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "res_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 302,
+ "Server": "nginx/1.16.1",
+ "Date": "Tue, 31 May 2022 06:41:23 GMT",
+ "Content-Length": "0",
+ "Connection": "keep-alive",
+ "Set-Cookie": "authtoken_pro=tea83b3beef07488bb8571811385db42; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Set-Cookie1": "userId_pro=1160; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Location": "http://test.pro.testin.cn/enterprise/into.htm?eid=1",
+ "Content-Language": "zh-CN"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "method": "GET",
+ "uri": "/enterprise/into.htm?eid=1",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.pro.testin.cn",
+ "Connection": "keep-alive",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9",
+ "Cookie": "Hm_lvt_1b8c1194303ef64e02f003f0cb8a1906=1653898514; _gcl_au=1.1.1010551181.1653898515; _ga=GA1.2.1419569885.1653898515; _gid=GA1.2.2007113907.1653898515; authtoken_pro=tea83b3beef07488bb8571811385db42; userId_pro=1160; pid_pro=1; eid_pro=1; pname_pro=name; Hm_lpvt_1b8c1194303ef64e02f003f0cb8a1906=1653961741; JSESSIONID=CFAB9C0C3F4D9D6C2837E3BA9425AFCA",
+ "__X_HTTP_URL": "test.pro.testin.cn/enterprise/into.htm?eid=1"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "res_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 302,
+ "Server": "nginx/1.16.1",
+ "Date": "Tue, 31 May 2022 06:41:23 GMT",
+ "Content-Length": "0",
+ "Connection": "keep-alive",
+ "Set-Cookie": "authtoken_pro=tea83b3beef07488bb8571811385db42; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Set-Cookie1": "userId_pro=1160; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Location": "http://test.pro.testin.cn/realmachine/index.htm",
+ "Content-Language": "zh-CN"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 3,
+ "method": "GET",
+ "uri": "/realmachine/index.htm",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "test.pro.testin.cn",
+ "Connection": "keep-alive",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9",
+ "Cookie": "Hm_lvt_1b8c1194303ef64e02f003f0cb8a1906=1653898514; _gcl_au=1.1.1010551181.1653898515; _ga=GA1.2.1419569885.1653898515; _gid=GA1.2.2007113907.1653898515; authtoken_pro=tea83b3beef07488bb8571811385db42; userId_pro=1160; pid_pro=1; eid_pro=1; pname_pro=name; Hm_lpvt_1b8c1194303ef64e02f003f0cb8a1906=1653961741; JSESSIONID=CFAB9C0C3F4D9D6C2837E3BA9425AFCA",
+ "__X_HTTP_URL": "test.pro.testin.cn/realmachine/index.htm"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 3,
+ "res_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx/1.16.1",
+ "Date": "Tue, 31 May 2022 06:41:23 GMT",
+ "Content-Type": "text/html;charset=UTF-8",
+ "Transfer-Encoding": "chunked",
+ "Connection": "keep-alive",
+ "Vary": "Accept-Encoding",
+ "Set-Cookie": "authtoken_pro=tea83b3beef07488bb8571811385db42; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Set-Cookie1": "userId_pro=1160; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Set-Cookie2": "pid_pro=1; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Set-Cookie3": "eid_pro=1; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Set-Cookie4": "pname_pro=name; Max-Age=28800; Expires=Tue, 31-May-2022 14:41:23 GMT; Domain=testin.cn; Path=/; HttpOnly",
+ "Content-Language": "zh-CN",
+ "Content-Encoding": "gzip",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "5d761720e42f13d01ba981fb19b850ca",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "39cb5f3a9cbcfbd16f66e040ec49b8c4"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_get_req_pipeline.json b/benchmarks/json/http/http_get_req_pipeline.json
new file mode 100644
index 0000000..af8ff75
--- /dev/null
+++ b/benchmarks/json/http/http_get_req_pipeline.json
@@ -0,0 +1,68 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.40.81:52802-192.168.40.137:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/aa.mp4?asf=sdaf",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "113.31.27.226",
+ "Connection": "keep-alive",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1636.2 Safari/537.36",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "zh-CN,zh;q=0.8",
+ "__X_HTTP_URL": "113.31.27.226/aa.mp4?asf=sdaf"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/fetch_ldns.png",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "ns.pb.cachecn.net",
+ "Connection": "keep-alive",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1636.2 Safari/537.36",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "zh-CN,zh;q=0.8",
+ "__X_HTTP_URL": "ns.pb.cachecn.net/fetch_ldns.png"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "method": "GET",
+ "uri": "/40x.jpg",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "ns.pb.cachecn.net",
+ "Connection": "keep-alive",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1636.2 Safari/537.36",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "zh-CN,zh;q=0.8",
+ "__X_HTTP_URL": "ns.pb.cachecn.net/40x.jpg"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "File not found",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 404,
+ "Server": "SimpleHTTP/0.6 Python/2.7.5",
+ "Date": "Wed, 25 Oct 2023 06:43:35 GMT",
+ "Content-Type": "text/html",
+ "Connection": "close",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "6fb335f443cfc8a9d952d27cf3dc1059",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "6fb335f443cfc8a9d952d27cf3dc1059"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_get_single_trans.json b/benchmarks/json/http/http_get_single_trans.json
new file mode 100644
index 0000000..165bb65
--- /dev/null
+++ b/benchmarks/json/http/http_get_single_trans.json
@@ -0,0 +1,34 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.38.73:50806-192.168.40.137:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/index.html",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "192.168.40.137",
+ "User-Agent": "curl/7.79.1",
+ "Accept": "*/*",
+ "__X_HTTP_URL": "192.168.40.137/index.html"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Server": "SimpleHTTP/0.6 Python/2.7.5",
+ "Date": "Thu, 30 Nov 2023 08:42:24 GMT",
+ "Content-type": "text/html",
+ "Content-Length": "144",
+ "Last-Modified": "Thu, 30 Nov 2023 08:38:54 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "3e11876cd3a234541ae37d833c088a76",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "3e11876cd3a234541ae37d833c088a76"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_gzip_out_of_order.json b/benchmarks/json/http/http_gzip_out_of_order.json
new file mode 100644
index 0000000..1952b9d
--- /dev/null
+++ b/benchmarks/json/http/http_gzip_out_of_order.json
@@ -0,0 +1,39 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.61.10:2064-192.168.40.139:8088-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "192.168.40.139:8088",
+ "Connection": "keep-alive",
+ "DNT": "1",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9",
+ "__X_HTTP_URL": "192.168.40.139:8088/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Server": "BaseHTTP/0.6 Python/3.6.8",
+ "Date": "Tue, 13 Aug 2024 14:21:42 GMT",
+ "Content-type": "text/html; charset=utf-8",
+ "Content-Encoding": "gzip",
+ "Content-length": "28425",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "873ed9c8c691a5f9f144fbf0fbfca011",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "7047cf4ae8ce6fd7bcd363e2b626f338"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_hdr_truncated_after_kv.json b/benchmarks/json/http/http_hdr_truncated_after_kv.json
new file mode 100644
index 0000000..01ec6bd
--- /dev/null
+++ b/benchmarks/json/http/http_hdr_truncated_after_kv.json
@@ -0,0 +1,311 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "196.188.112.76.51494>23.246.50.149.80"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABQSwLpJi-yDFZ7k9eqarY3x3-b99vNxxOt5xDeIOapZB6Y5QXPSa54b7cbWYTXYdFimDKCeJ4s7ngqpqByvtt0aLh85nSucLTcR3-OKleuNwVltHUscQhSgVfHc.jpg?r=392",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABQSwLpJi-yDFZ7k9eqarY3x3-b99vNxxOt5xDeIOapZB6Y5QXPSa54b7cbWYTXYdFimDKCeJ4s7ngqpqByvtt0aLh85nSucLTcR3-OKleuNwVltHUscQhSgVfHc.jpg?r=392",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABQSwLpJi-yDFZ7k9eqarY3x3-b99vNxxOt5xDeIOapZB6Y5QXPSa54b7cbWYTXYdFimDKCeJ4s7ngqpqByvtt0aLh85nSucLTcR3-OKleuNwVltHUscQhSgVfHc.jpg?r=392"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABUWN8S1k3yM2coX2bwxbP699Jdr0BUqBRzIfiAJXKC5Ywt7DXqJOCjrBSYs36Tny8277IXm2BF_cgTmY18NJlocglKjhaoJhFeGoIg1cwntFduyxyRPP2EJQL5Y.jpg?r=e0e",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABUWN8S1k3yM2coX2bwxbP699Jdr0BUqBRzIfiAJXKC5Ywt7DXqJOCjrBSYs36Tny8277IXm2BF_cgTmY18NJlocglKjhaoJhFeGoIg1cwntFduyxyRPP2EJQL5Y.jpg?r=e0e",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABUWN8S1k3yM2coX2bwxbP699Jdr0BUqBRzIfiAJXKC5Ywt7DXqJOCjrBSYs36Tny8277IXm2BF_cgTmY18NJlocglKjhaoJhFeGoIg1cwntFduyxyRPP2EJQL5Y.jpg?r=e0e"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABR1YQS01SaHGzoxgWBJF1Gas0Gv9_DPebb4irdCTRjcQ_FUaVbXFTTrJ68_bvJds1sb28VMq22Qn3oSSKKJ7DdLN8ybgkJooYlCD3gAntrqgIFugqv5Z3kV8rRE.jpg?r=ec7",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABR1YQS01SaHGzoxgWBJF1Gas0Gv9_DPebb4irdCTRjcQ_FUaVbXFTTrJ68_bvJds1sb28VMq22Qn3oSSKKJ7DdLN8ybgkJooYlCD3gAntrqgIFugqv5Z3kV8rRE.jpg?r=ec7",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABR1YQS01SaHGzoxgWBJF1Gas0Gv9_DPebb4irdCTRjcQ_FUaVbXFTTrJ68_bvJds1sb28VMq22Qn3oSSKKJ7DdLN8ybgkJooYlCD3gAntrqgIFugqv5Z3kV8rRE.jpg?r=ec7"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "18377",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Wed, 10 Nov 2021 08:00:14 GMT",
+ "ETag": "\"c289a42885b30107ad119e2a6e405e4d\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "c289a42885b30107ad119e2a6e405e4d"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 3,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABYo5IGwDn1LaWbeaa7amS0JhH3bU5MEVlcBsC4OK0mGbea97_xoi8EbqJt8_Zp0bMuuKPE80qUUjb4wq5po_lBtulA.jpg?r=c83",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABYo5IGwDn1LaWbeaa7amS0JhH3bU5MEVlcBsC4OK0mGbea97_xoi8EbqJt8_Zp0bMuuKPE80qUUjb4wq5po_lBtulA.jpg?r=c83",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABYo5IGwDn1LaWbeaa7amS0JhH3bU5MEVlcBsC4OK0mGbea97_xoi8EbqJt8_Zp0bMuuKPE80qUUjb4wq5po_lBtulA.jpg?r=c83"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 4,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABaYF3Rmi954cg6Afu9jOtirnvF3iIMHPZCCnP34eDeYQXfRGG9Vg0qgn7hHpMVV4jOr8OZmcD2Nb7MhQv6gl-fNmVQ.jpg?r=257",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABaYF3Rmi954cg6Afu9jOtirnvF3iIMHPZCCnP34eDeYQXfRGG9Vg0qgn7hHpMVV4jOr8OZmcD2Nb7MhQv6gl-fNmVQ.jpg?r=257",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABaYF3Rmi954cg6Afu9jOtirnvF3iIMHPZCCnP34eDeYQXfRGG9Vg0qgn7hHpMVV4jOr8OZmcD2Nb7MhQv6gl-fNmVQ.jpg?r=257"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 5,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABfC-ByjFJSfWZf7MFtjVl3ONnaQ69824xWP1l-cpAFGgAfaNFk4XR9uoHNWwnbG8N2UVDctVKz0a4Uyv0mEnC2kI9Q.jpg?r=532",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABfC-ByjFJSfWZf7MFtjVl3ONnaQ69824xWP1l-cpAFGgAfaNFk4XR9uoHNWwnbG8N2UVDctVKz0a4Uyv0mEnC2kI9Q.jpg?r=532",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABfC-ByjFJSfWZf7MFtjVl3ONnaQ69824xWP1l-cpAFGgAfaNFk4XR9uoHNWwnbG8N2UVDctVKz0a4Uyv0mEnC2kI9Q.jpg?r=532"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 6,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABSyGFXaB0IqQ6VR92uKMi38mNtoz7eeWxDziAf9VYKfauhh5Qo7FnnCRb31ff6Ez9yTXsqRszsGuz0GA9FVDf_NLn-9F60IcUHm59J73eYX6BD0h4wLLK0Da6YM.jpg?r=aaa",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABSyGFXaB0IqQ6VR92uKMi38mNtoz7eeWxDziAf9VYKfauhh5Qo7FnnCRb31ff6Ez9yTXsqRszsGuz0GA9FVDf_NLn-9F60IcUHm59J73eYX6BD0h4wLLK0Da6YM.jpg?r=aaa",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABSyGFXaB0IqQ6VR92uKMi38mNtoz7eeWxDziAf9VYKfauhh5Qo7FnnCRb31ff6Ez9yTXsqRszsGuz0GA9FVDf_NLn-9F60IcUHm59J73eYX6BD0h4wLLK0Da6YM.jpg?r=aaa"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 7,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABZbHXQr7bRUpSQ2vQe8F8p3xODTJjUbSjEcLgQrFVyGsPgQT1GVhqGWFetJhebcGrVeZGOTmQ3qvHTe9eBRJdjFsVg.jpg?r=723",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABZbHXQr7bRUpSQ2vQe8F8p3xODTJjUbSjEcLgQrFVyGsPgQT1GVhqGWFetJhebcGrVeZGOTmQ3qvHTe9eBRJdjFsVg.jpg?r=723",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABZbHXQr7bRUpSQ2vQe8F8p3xODTJjUbSjEcLgQrFVyGsPgQT1GVhqGWFetJhebcGrVeZGOTmQ3qvHTe9eBRJdjFsVg.jpg?r=723"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "13488",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Mon, 08 Nov 2021 19:50:54 GMT",
+ "ETag": "\"35d56b6a0ef3b5857013f44620bd8888\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "35d56b6a0ef3b5857013f44620bd8888"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "14129",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Tue, 26 Oct 2021 15:12:58 GMT",
+ "ETag": "\"bb83961ad5fe366dcbb5240ead69f650\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "bb83961ad5fe366dcbb5240ead69f650"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 3,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "11493",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Thu, 04 Nov 2021 20:44:22 GMT",
+ "ETag": "\"c5be6a7137482da270bb2adc8d44a28d\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "c5be6a7137482da270bb2adc8d44a28d"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 4,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "14219",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Sat, 25 Sep 2021 05:02:49 GMT",
+ "ETag": "\"61bec96775876749bb57139f86f6b0ca\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "61bec96775876749bb57139f86f6b0ca"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 5,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "21967",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Fri, 02 Jul 2021 10:15:04 GMT",
+ "ETag": "\"841065529f1e89eabd0ef235a3d3291c\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "841065529f1e89eabd0ef235a3d3291c"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 6,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "21670",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Tue, 19 Oct 2021 14:00:02 GMT",
+ "ETag": "\"21d4b2c21a3a2f26ba665670e8513940\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "21d4b2c21a3a2f26ba665670e8513940"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 8,
+ "method": "GET",
+ "uri": "/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABSFXjTUaVrddq_nehO4yuLziSjuekxJuv3oEsyUpmt3oK3InJcXjtZUHrBBuu0EP05WRC8wFVe78VtxtW_ZuZQ65MIcApb0oZF4JoFlHHnv363RbgJn898Q4tQc.jpg?r=590",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Accept": "image/*",
+ "Accept-Encoding": "deflate, gzip",
+ "Connection": "Keep-Alive",
+ "Host": "occ-0-778-360.1.nflxso.net",
+ "Language": "en-ET,en",
+ "Referer": "https://secure.netflix.com/us/tvui/ql/patch/20211109_18752/2/release/darwinBootstrap.js?getMainUrlFromCodex=true&taskDefaultTimeoutV2=120000&bootloader_trace=apiusernotnull__false&nq=true&nq_control_tag=tvui-main&startup_key=e38d3c70814421931b0189d91d872546326f05d8f470150d07340df9e9d72275&device_type=TCL-TVS88L&e=TCL-TVS88L0000000000000000342914&env=prod&fromNM=true&nm_prefetch=true&nrdapp_version=2015.1.1&plain=true&dh=720&dw=1280&dar=16_9&reg=undefined&authType=login&authclid=845becf0-992c-46f7-a938-1bc22b097c58&q=source_type%3D1%26additionalDataUrl%3Dhttp%253A%252F%252Flocalhost%253A56789%252Fapps%252FNetflix%252Fdial_data%26source_type_payload%3D",
+ "User-Agent": "Gibbon/2015.1.1/2015.1.1: Netflix/2015.1.1 (DEVTYPE=TCL-TVS88L; CERTVER=1)",
+ "__X_HTTP_URL": "occ-0-778-360.1.nflxso.net/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABSFXjTUaVrddq_nehO4yuLziSjuekxJuv3oEsyUpmt3oK3InJcXjtZUHrBBuu0EP05WRC8wFVe78VtxtW_ZuZQ65MIcApb0oZF4JoFlHHnv363RbgJn898Q4tQc.jpg?r=590",
+ "X-Gibbon-Cache-Control": "max-age=2592000, priority=4, key=/dnm/api/v6/Da_vleYcahiCE7JMYt8LJRyoenc/AAAABSFXjTUaVrddq_nehO4yuLziSjuekxJuv3oEsyUpmt3oK3InJcXjtZUHrBBuu0EP05WRC8wFVe78VtxtW_ZuZQ65MIcApb0oZF4JoFlHHnv363RbgJn898Q4tQc.jpg?r=590"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 7,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 14:15:58 GMT",
+ "Content-Type": "image/jpeg",
+ "Content-Length": "14215",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=2592000",
+ "Last-Modified": "Thu, 11 Nov 2021 17:32:01 GMT",
+ "ETag": "\"837a2051f7d0f2899baf54ff20b3d9ad\"",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "f18a76ecf35648cb46ea6f42e4391cb8"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_hdr_truncated_in_kv.json b/benchmarks/json/http/http_hdr_truncated_in_kv.json
new file mode 100644
index 0000000..66edef3
--- /dev/null
+++ b/benchmarks/json/http/http_hdr_truncated_in_kv.json
@@ -0,0 +1,53 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "196.190.248.93.32727>94.130.141.49.80"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/iframes2/e38f4959d33f4fa390045b0d7123997d.html?subid=65843620",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "tsyndicate.com",
+ "Connection": "keep-alive",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Linux; Android 11; SM-A217F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
+ "Referer": "http://the-sexy-tube.com/",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8",
+ "__X_HTTP_URL": "tsyndicate.com/iframes2/e38f4959d33f4fa390045b0d7123997d.html?subid=65843620"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "nginx",
+ "Date": "Sat, 13 Nov 2021 13:58:01 GMT",
+ "Content-Type": "text/html; charset=utf-8",
+ "Transfer-Encoding": "chunked",
+ "Connection": "keep-alive",
+ "Vary": "Accept-Encoding",
+ "Cache-Control": "no-cache, no-store, no-transform, must-revalidate",
+ "Pragma": "no-cache",
+ "Expires": "0",
+ "Vary1": "*",
+ "X-Api-Version": "2",
+ "Link": "<http://lcdn.tsyndicate.com/sdk/v1/b.b.js>; rel=preload; as=script",
+ "X-Request-Id": "2ceed9968bf8c648",
+ "Set-Cookie": "ts_uid=6ec96511-9fa6-4e10-86b8-31fdb4531864; expires=Fri, 13 May 2022 13:58:01 GMT; domain=.tsyndicate.com; path=/; HttpOnly; secure; SameSite=None",
+ "Set-Cookie2": "bfq=e0SIEaFjiwwZNWjkkDGjCwsRYwpuifFQRJmJMWzMsIEjBw4ZOCr2URAQ; expires=Sun, 14 Nov 2021 13:58:01 GMT; domain=.tsyndicate.com; path=/; secure; SameSite=None",
+ "X-Robots-Tag": "none",
+ "Cache-Control3": "no-transform",
+ "X-Robots-Tag4": "noindex, nofollow",
+ "Report-To": "{ \"url\": \"https://pxl.tsyndicate.com/api/v1/heavy-ad/report\", \"max_age\": 86401 }",
+ "Content-Encoding": "gzip",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "075802aa31b42d465d56b213915fb0a2"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_hdr_value_empty.json b/benchmarks/json/http/http_hdr_value_empty.json
new file mode 100644
index 0000000..86ac4a5
--- /dev/null
+++ b/benchmarks/json/http/http_hdr_value_empty.json
@@ -0,0 +1,36 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.131.33.47164>192.168.204.67.4445"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "POST",
+ "uri": "http://:4445/RPC2",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "ulxmlrpcpp/1.7.5",
+ "Connection": "Close",
+ "Content-Type": "text/xml",
+ "Date": "Sat Sep 7 10:04:57 2019",
+ "Content-Length": "468",
+ "__X_HTTP_URL": ":4445/RPC2",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "033e27f72bc41b4a7e222df464749420"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Connection": "Close",
+ "Content-Type": "text/xml",
+ "Transfer-Encoding": "chunked",
+ "X-Powered-By": "ulxmlrpcpp/1.7.4",
+ "Date": "Sat Sep 7 01:09:08 2019",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "69db29507d10b0d57fcaa5afffd81934"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_hdrs_exceed_maximum.json b/benchmarks/json/http/http_hdrs_exceed_maximum.json
new file mode 100644
index 0000000..9bc751b
--- /dev/null
+++ b/benchmarks/json/http/http_hdrs_exceed_maximum.json
@@ -0,0 +1,51 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "10.0.0.1:61462-10.0.0.2:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/x/xx/xxxxxxxxxxxxxxxxxxx/x/xxxxxx/xxxxxxxxxxxxxxx?xxx=1&xxx=1&x=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&vmf=xxxxxxxxxx.xxx.xxx.xxx&ce=UTF-8&ns=xxxxxxxxxx&pageName=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&g=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.jsp&r=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&events=xxxxxxxxxxxxxxxxxxxxxxxxxxx&products=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&v1=xxxxxxxxxxxxxxx&v2=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&v17=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&c49=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&AQE=1",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "xxxxx.xxxxxxxx.xxxxxxxxxx.xxx",
+ "Connection": "keep-alive",
+ "Accept": "image/webp,*/*;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",
+ "Referer": "http://www.xxxxxxxxxx.xxx/xx/xxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx.jsp",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "en-US,en;q=0.8,en-GB;q=0.6",
+ "__X_HTTP_URL": "xxxxx.xxxxxxxx.xxxxxxxxxx.xxx/x/xx/xxxxxxxxxxxxxxxxxxx/x/xxxxxx/xxxxxxxxxxxxxxx?xxx=1&xxx=1&x=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&vmf=xxxxxxxxxx.xxx.xxx.xxx&ce=UTF-8&ns=xxxxxxxxxx&pageName=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&g=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.jsp&r=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&events=xxxxxxxxxxxxxxxxxxxxxxxxxxx&products=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&v1=xxxxxxxxxxxxxxx&v2=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&v17=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&c49=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&AQE=1",
+ "Cookie": "xxxxxxxxxxxxxxxxxxx=ie; xxxxxxxxxxxxxxxxxxxxxx=true; lp=xxxxxx; rememberUn=false; xxx.xxxxxxxxxx.xxxxxxxxxx=xx; xxxxx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; autocomplete=1; xxxx=xxxx; xxxx=xxxxv1|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; xxxxxx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Date": "Mon, 30 Jun 2014 13:35:21 GMT",
+ "Server": "xxxxxxxxxxxxxxxxx",
+ "Access-Control-Allow-Origin": "*",
+ "Set-Cookie": "xxxx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; Expires=Wed, 29 Jun 2016 13:35:21 GMT; Domain=.xxxxxxxxxx.xxx; Path=/",
+ "X-C": "ms-4.9",
+ "Expires": "Sun, 29 Jun 2014 13:35:21 GMT",
+ "Last-Modified": "Tue, 01 Jul 2014 13:35:21 GMT",
+ "Cache-Control": "no-cache, no-store, max-age=0, no-transform, private",
+ "Pragma": "no-cache",
+ "ETag": "\"xxxxxxxxxxxxxxxxxxxxxx\"",
+ "Vary": "*",
+ "P3P": "policyref=\"/w3c/p3p.xml\", CP=\"NOI DSP COR NID PSA OUR IND COM NAV STA\"",
+ "xserver": "xxxxxx",
+ "Content-Length": "43",
+ "Keep-Alive": "timeout=15",
+ "Connection": "Keep-Alive",
+ "Content-Type": "image/gif",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "ad480fd0732d0f6f1a8b06359e3a42bb",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "ad480fd0732d0f6f1a8b06359e3a42bb"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_inner_tunnel_for_http.json b/benchmarks/json/http/http_inner_tunnel_for_http.json
new file mode 100644
index 0000000..973556a
--- /dev/null
+++ b/benchmarks/json/http/http_inner_tunnel_for_http.json
@@ -0,0 +1,15 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.40.139.59234>192.168.38.83.8080"
+ },
+ {
+ "flow": "C2S",
+ "payload_block": 1,
+ "payload_size": 77
+ },
+ {
+ "flow": "S2C",
+ "payload_block": 3,
+ "payload_size": 2781
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_inner_tunnel_for_pop3.json b/benchmarks/json/http/http_inner_tunnel_for_pop3.json
new file mode 100644
index 0000000..b4f9784
--- /dev/null
+++ b/benchmarks/json/http/http_inner_tunnel_for_pop3.json
@@ -0,0 +1,15 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.10.58.51798>192.168.10.144.808"
+ },
+ {
+ "flow": "C2S",
+ "payload_block": 6,
+ "payload_size": 68
+ },
+ {
+ "flow": "S2C",
+ "payload_block": 7,
+ "payload_size": 1737
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state.json b/benchmarks/json/http/http_msg_type_state.json
new file mode 100644
index 0000000..5dc0564
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state.json
@@ -0,0 +1,20 @@
+[
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_REQ_LINE",
+ "msg_2": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_3": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_4": "HTTP_MESSAGE_REQ_BODY_START",
+ "msg_5": "HTTP_MESSAGE_REQ_BODY",
+ "msg_6": "HTTP_MESSAGE_REQ_BODY_END"
+ },
+ {
+ "msg_7": "HTTP_MESSAGE_RES_LINE",
+ "msg_8": "HTTP_MESSAGE_RES_HEADER",
+ "msg_9": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_10": "HTTP_MESSAGE_RES_BODY_START",
+ "msg_11": "HTTP_MESSAGE_RES_BODY",
+ "msg_12": "HTTP_MESSAGE_RES_BODY_END",
+ "msg_13": "HTTP_TRANSACTION_END_transaction_0"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_c2s.json b/benchmarks/json/http/http_msg_type_state_c2s.json
new file mode 100644
index 0000000..8533bb9
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_c2s.json
@@ -0,0 +1,13 @@
+[
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_REQ_LINE",
+ "msg_2": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_3": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_4": "HTTP_MESSAGE_REQ_BODY_START",
+ "msg_5": "HTTP_MESSAGE_REQ_BODY",
+ "msg_6": "HTTP_MESSAGE_REQ_BODY_END",
+ "msg_7": "HTTP_TRANSACTION_END_transaction_0"
+ },
+ {}
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_exception_c2s.json b/benchmarks/json/http/http_msg_type_state_exception_c2s.json
new file mode 100644
index 0000000..e694238
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_exception_c2s.json
@@ -0,0 +1,13 @@
+[
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_REQ_LINE",
+ "msg_2": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_3": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_4": "HTTP_MESSAGE_REQ_BODY_START",
+ "msg_5": "HTTP_MESSAGE_REQ_BODY"
+ },
+ {
+ "msg_6": "HTTP_TRANSACTION_END_transaction_0"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_exception_s2c.json b/benchmarks/json/http/http_msg_type_state_exception_s2c.json
new file mode 100644
index 0000000..cf03270
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_exception_s2c.json
@@ -0,0 +1,16 @@
+[
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_REQ_LINE",
+ "msg_2": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_3": "HTTP_MESSAGE_REQ_HEADER_END"
+ },
+ {
+ "msg_4": "HTTP_MESSAGE_RES_LINE",
+ "msg_5": "HTTP_MESSAGE_RES_HEADER",
+ "msg_6": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_7": "HTTP_MESSAGE_RES_BODY_START",
+ "msg_8": "HTTP_MESSAGE_RES_BODY",
+ "msg_9": "HTTP_TRANSACTION_END_transaction_0"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_pipeline.json b/benchmarks/json/http/http_msg_type_state_pipeline.json
new file mode 100644
index 0000000..d50f4ac
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_pipeline.json
@@ -0,0 +1,61 @@
+[
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_REQ_LINE",
+ "msg_2": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_3": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_8": "HTTP_TRANSACTION_START_transaction_1",
+ "msg_9": "HTTP_MESSAGE_REQ_LINE",
+ "msg_10": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_11": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_16": "HTTP_TRANSACTION_START_transaction_2",
+ "msg_17": "HTTP_MESSAGE_REQ_LINE",
+ "msg_18": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_19": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_24": "HTTP_TRANSACTION_START_transaction_3",
+ "msg_25": "HTTP_MESSAGE_REQ_LINE",
+ "msg_26": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_27": "HTTP_MESSAGE_REQ_HEADER_END"
+ },
+ {
+ "msg_4": "HTTP_MESSAGE_RES_LINE",
+ "msg_5": "HTTP_MESSAGE_RES_HEADER",
+ "msg_6": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_7": "HTTP_TRANSACTION_END_transaction_0",
+ "msg_12": "HTTP_MESSAGE_RES_LINE",
+ "msg_13": "HTTP_MESSAGE_RES_HEADER",
+ "msg_14": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_15": "HTTP_TRANSACTION_END_transaction_1",
+ "msg_20": "HTTP_MESSAGE_RES_LINE",
+ "msg_21": "HTTP_MESSAGE_RES_HEADER",
+ "msg_22": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_23": "HTTP_TRANSACTION_END_transaction_2",
+ "msg_28": "HTTP_MESSAGE_RES_LINE",
+ "msg_29": "HTTP_MESSAGE_RES_HEADER",
+ "msg_30": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_31": "HTTP_MESSAGE_RES_BODY_START",
+ "msg_32": "HTTP_MESSAGE_RES_BODY",
+ "msg_33": "HTTP_MESSAGE_RES_BODY",
+ "msg_34": "HTTP_MESSAGE_RES_BODY",
+ "msg_35": "HTTP_MESSAGE_RES_BODY",
+ "msg_36": "HTTP_MESSAGE_RES_BODY",
+ "msg_37": "HTTP_MESSAGE_RES_BODY",
+ "msg_38": "HTTP_MESSAGE_RES_BODY",
+ "msg_39": "HTTP_MESSAGE_RES_BODY",
+ "msg_40": "HTTP_MESSAGE_RES_BODY",
+ "msg_41": "HTTP_MESSAGE_RES_BODY",
+ "msg_42": "HTTP_MESSAGE_RES_BODY",
+ "msg_43": "HTTP_MESSAGE_RES_BODY",
+ "msg_44": "HTTP_MESSAGE_RES_BODY",
+ "msg_45": "HTTP_MESSAGE_RES_BODY",
+ "msg_46": "HTTP_MESSAGE_RES_BODY",
+ "msg_47": "HTTP_MESSAGE_RES_BODY",
+ "msg_48": "HTTP_MESSAGE_RES_BODY",
+ "msg_49": "HTTP_MESSAGE_RES_BODY",
+ "msg_50": "HTTP_MESSAGE_RES_BODY",
+ "msg_51": "HTTP_MESSAGE_RES_BODY",
+ "msg_52": "HTTP_MESSAGE_RES_BODY",
+ "msg_53": "HTTP_MESSAGE_RES_BODY_END",
+ "msg_54": "HTTP_TRANSACTION_END_transaction_3"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_s2c.json b/benchmarks/json/http/http_msg_type_state_s2c.json
new file mode 100644
index 0000000..c59d0bb
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_s2c.json
@@ -0,0 +1,13 @@
+[
+ {},
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_RES_LINE",
+ "msg_2": "HTTP_MESSAGE_RES_HEADER",
+ "msg_3": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_4": "HTTP_MESSAGE_RES_BODY_START",
+ "msg_5": "HTTP_MESSAGE_RES_BODY",
+ "msg_6": "HTTP_MESSAGE_RES_BODY_END",
+ "msg_7": "HTTP_TRANSACTION_END_transaction_0"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_tunnel.json b/benchmarks/json/http/http_msg_type_state_tunnel.json
new file mode 100644
index 0000000..4a66f37
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_tunnel.json
@@ -0,0 +1,26 @@
+[
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_REQ_LINE",
+ "msg_2": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_3": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_8": "HTTP_TRANSACTION_START_transaction_1",
+ "msg_9": "HTTP_MESSAGE_REQ_LINE",
+ "msg_10": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_11": "HTTP_MESSAGE_REQ_HEADER_END"
+ },
+ {
+ "msg_4": "HTTP_MESSAGE_RES_LINE",
+ "msg_5": "HTTP_MESSAGE_RES_HEADER",
+ "msg_6": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_7": "HTTP_TRANSACTION_END_transaction_0",
+ "msg_12": "HTTP_MESSAGE_RES_LINE",
+ "msg_13": "HTTP_MESSAGE_RES_HEADER",
+ "msg_14": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_15": "HTTP_MESSAGE_RES_BODY",
+ "msg_16": "HTTP_MESSAGE_RES_BODY",
+ "msg_17": "HTTP_MESSAGE_RES_BODY",
+ "msg_18": "HTTP_MESSAGE_RES_BODY_END",
+ "msg_19": "HTTP_TRANSACTION_END_transaction_1"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_tunnel_c2s.json b/benchmarks/json/http/http_msg_type_state_tunnel_c2s.json
new file mode 100644
index 0000000..5b7e588
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_tunnel_c2s.json
@@ -0,0 +1,15 @@
+[
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_REQ_LINE",
+ "msg_2": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_3": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_4": "HTTP_TRANSACTION_END_transaction_0",
+ "msg_5": "HTTP_TRANSACTION_START_transaction_1",
+ "msg_6": "HTTP_MESSAGE_REQ_LINE",
+ "msg_7": "HTTP_MESSAGE_REQ_HEADER",
+ "msg_8": "HTTP_MESSAGE_REQ_HEADER_END",
+ "msg_9": "HTTP_TRANSACTION_END_transaction_1"
+ },
+ {}
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_msg_type_state_tunnel_s2c.json b/benchmarks/json/http/http_msg_type_state_tunnel_s2c.json
new file mode 100644
index 0000000..07a1451
--- /dev/null
+++ b/benchmarks/json/http/http_msg_type_state_tunnel_s2c.json
@@ -0,0 +1,19 @@
+[
+ {},
+ {
+ "msg_0": "HTTP_TRANSACTION_START_transaction_0",
+ "msg_1": "HTTP_MESSAGE_RES_LINE",
+ "msg_2": "HTTP_MESSAGE_RES_HEADER",
+ "msg_3": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_4": "HTTP_TRANSACTION_END_transaction_0",
+ "msg_5": "HTTP_TRANSACTION_START_transaction_1",
+ "msg_6": "HTTP_MESSAGE_RES_LINE",
+ "msg_7": "HTTP_MESSAGE_RES_HEADER",
+ "msg_8": "HTTP_MESSAGE_RES_HEADER_END",
+ "msg_9": "HTTP_MESSAGE_RES_BODY",
+ "msg_10": "HTTP_MESSAGE_RES_BODY",
+ "msg_11": "HTTP_MESSAGE_RES_BODY",
+ "msg_12": "HTTP_MESSAGE_RES_BODY_END",
+ "msg_13": "HTTP_TRANSACTION_END_transaction_1"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_multi_parse_error.json b/benchmarks/json/http/http_multi_parse_error.json
new file mode 100644
index 0000000..c49d41e
--- /dev/null
+++ b/benchmarks/json/http/http_multi_parse_error.json
@@ -0,0 +1,38 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.131.33:47172-192.168.204.67:4445-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "POST",
+ "uri": "http://:4445/RPC2",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "ulxmlrpcpp/1.7.5",
+ "Connection": "Close",
+ "Content-Type": "text/xml",
+ "Date": "Sat Sep 7 10:05:13 2019",
+ "Content-Length": "468",
+ "__X_HTTP_URL": ":4445/RPC2",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "6eccbcf261f04aabfa69884aa283f4f3",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "6eccbcf261f04aabfa69884aa283f4f3"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Connection": "Close",
+ "Content-Type": "text/xml",
+ "Transfer-Encoding": "chunked",
+ "X-Powered-By": "ulxmlrpcpp/1.7.4",
+ "Date": "Sat Sep 7 01:09:24 2019",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "5cf8a4aa9a54e7f2d05b55ed05bf9071",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "5cf8a4aa9a54e7f2d05b55ed05bf9071"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_no_content_length.json b/benchmarks/json/http/http_no_content_length.json
new file mode 100644
index 0000000..9310d04
--- /dev/null
+++ b/benchmarks/json/http/http_no_content_length.json
@@ -0,0 +1,46 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "10.0.0.1:50384-10.0.0.2:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/js/xxxxxx.js",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "xxxxxxx.xxxxxx.xx",
+ "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3",
+ "Accept": "*/*",
+ "Accept-Language": "en-us,en;q=0.5",
+ "Accept-Encoding": "gzip,deflate",
+ "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
+ "Keep-Alive": "115",
+ "Connection": "keep-alive",
+ "Referer": "http://www.xxxxxxxx.com/xxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxx.html",
+ "Cookie": "trafic_ranking=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+ "__X_HTTP_URL": "xxxxxxx.xxxxxx.xx/js/xxxxxx.js"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Date": "Mon, 10 May 2010 08:31:02 GMT",
+ "Server": "Apache",
+ "Content-type": "application/x-javascript",
+ "Expires": "Thu, 11 Jan 1973 16:00:00 GMT",
+ "Last-Modified": "Mon, 10 May 2010 08:31:02 GMT",
+ "Cache-Control": "no-store, no-cache, must-revalidate, post-check=0, pre-check=0",
+ "Pragma": "no-cache",
+ "P3P": "policyref=\"/w3c/p3p.xml\", CP=\"ALL IND DSP COR ADM CONo CUR IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI\"",
+ "Set-Cookie": "trafic_ranking=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; expires=Sun, 11-Jan-2037 14:00:00 GMT; path=/; domain=.xxxxxx.xx",
+ "connection": "close",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "9fb54a2726ca3cf54a82804d0e66d08a",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "9fb54a2726ca3cf54a82804d0e66d08a"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_out_of_order.json b/benchmarks/json/http/http_out_of_order.json
new file mode 100644
index 0000000..489b7c1
--- /dev/null
+++ b/benchmarks/json/http/http_out_of_order.json
@@ -0,0 +1,44 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.38.2:49243-202.96.17.37:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/cn/images/globesite/airchina.jpg",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "www.airchina.com",
+ "Connection": "keep-alive",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
+ "DNT": "1",
+ "Accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
+ "Referer": "http://www.airchina.com/website/ip2.jsp?v=20230128",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
+ "Cookie": "_ga=GA1.2.1223391296.1710844147; _ga_CGYVD7S4G4=GS1.1.1711101500.1.1.1711101524.0.0.0; _gcl_au=1.1.45985360.1720059434; arialoadData=true; ariawapChangeViewPort=false; JSESSIONID=ZoFJbBlIeHCsA5414j6JC-vO6jvcBw7_xphcV3qerj5Q8htV6XH8!-1677015109",
+ "__X_HTTP_URL": "www.airchina.com/cn/images/globesite/airchina.jpg"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Date": "Tue, 13 Aug 2024 01:48:28 GMT",
+ "Server": "Apache",
+ "X-Frame-Options": "SAMEORIGIN",
+ "Last-Modified": "Tue, 06 Aug 2019 02:10:09 GMT",
+ "Accept-Ranges": "bytes",
+ "Content-Length": "67424",
+ "Keep-Alive": "timeout=120, max=1000",
+ "Connection": "Keep-Alive",
+ "Content-Type": "image/jpeg",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "c4c9d459415e922f877a2af6afd9d316",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "c4c9d459415e922f877a2af6afd9d316"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_over_pppoe.json b/benchmarks/json/http/http_over_pppoe.json
new file mode 100644
index 0000000..b4b4bfb
--- /dev/null
+++ b/benchmarks/json/http/http_over_pppoe.json
@@ -0,0 +1,36 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "2a00:5e80:101:212d:504:7b1:2572:db22:37034-2606:f200:0:7:bad:f00d:d00d:1:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "curl/7.34.0",
+ "Host": "ipv6.icanhazip.com",
+ "Accept": "*/*",
+ "__X_HTTP_URL": "ipv6.icanhazip.com/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Date": "Thu, 02 Jan 2014 08:38:06 GMT",
+ "Server": "Apache",
+ "Content-Length": "38",
+ "Content-Type": "text/plain; charset=UTF-8",
+ "X-RTFM": "Learn about this site at http://bit.ly/14DAh2o and don't abuse the service",
+ "X-YOU-SHOULD-APPLY-FOR-A-JOB": "If you're reading this, apply here: http://rackertalent.com/",
+ "X-ICANHAZNODE": "icanhazip1.nugget",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "624520ac54235ac2284ed2dd2b17e1ad",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "624520ac54235ac2284ed2dd2b17e1ad"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_over_tcp_keepalive.json b/benchmarks/json/http/http_over_tcp_keepalive.json
new file mode 100644
index 0000000..2754249
--- /dev/null
+++ b/benchmarks/json/http/http_over_tcp_keepalive.json
@@ -0,0 +1,45 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.56.66:55356-60.190.243.167:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "www.yumi.com",
+ "Connection": "keep-alive",
+ "Cache-Control": "max-age=0",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9",
+ "Cookie": "UM_distinctid=17d37645f9c1a1-0281befa480414-b7a1a38-144000-17d37645f9d336; CNZZDATA1258295942=1778021578-1637307701-%7C1637307701; Hm_lvt_a6dc86f6e27435039966e994bd7f0792=1637311872; yumi_sid=JaMlFyTA07ikpZjTHZsRTWyGdMqFyFy%2B4hXGj%2FSoQRJYbrfBUQuOTIMZ8jUGmugDC594AYcbeRhg75xidhRxCW4zq9Y0gPwTmkhq4LQuprp4DrtDMLI3L5wLMqkG%2FuAX1aVFPfud5GRNxNFTSp%2Bos%2FKhfCFKhfN5%2BuT2xyVYSAjy2ftiSOGDi7FN13icuuyPhFCoWqOxWVu1CZ3AiYPJssv6kXqiR6paf75icdeROZY2bkFCDKkcIQcPy7o9EKpkL1Mbimeb40JMg9hUsWdmyhDkzVjSHJmC4z2ujpzSDTsjRIQOnxTy1PHZi%2FMwg3uyGLCusDwqbagpO4pcgEJ5ONDy%2BGwO7FmHXU3mFfR56c9HxxiiuLPnBt9ErpqqWKsxH6lUrlHaUp6AzyrgX7PFdksiMfPSk6%2F3%2FWOYr%2FkYuI4fopw7z8%2FLhxC9AiLr9Czz3MngFUGzkmaMVvAhZOSPzg%3D%3D; Hm_lpvt_a6dc86f6e27435039966e994bd7f0792=1637313847",
+ "__X_HTTP_URL": "www.yumi.com/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "Tengine",
+ "Date": "Fri, 19 Nov 2021 09:57:40 GMT",
+ "Content-Type": "text/html",
+ "Transfer-Encoding": "chunked",
+ "Connection": "keep-alive",
+ "Vary": "Accept-Encoding",
+ "Set-Cookie": "yumi_sid=V6EhlyovLp46BBzQWLVOBg%2F73RUD5E%2FfaRlkR8RLa8aKhGrPVdVHvHfFWRKKd9wZ%2BfFF4Tb2wnVOOn%2F9iXbBpyHsbxjmUqnbFSoAX7QIJjt%2BEEjAL3M7O7VSpAyMnrFKt7qu46oXV%2B6teyyTUY7Ucy285v6otvZcu8bN%2B5YxKZ1gYh56iJ0bHxnrnQ0vvAx3l%2BLwfw2y0c5IaF2tjrL%2Fn83nrHsPoYYRWAR2zLIXD%2FEMKRtyerwsM5LKhZZteFGWD2w%2B15alKF5T65i0lPvPcAdaqpceL5xz23twQULhs1tIJsOfJZ8JudLlRy6x3DvxQYqRe2xTCex5c77zJqfq%2FdryNbBycIq9gf6C2hXDRwDqRqVgXDMadwGnooKFkv%2ByCbohjHyBCZJypBcYFmglYhin23UC9i%2B%2BOA%2FxhlxcnU8kT8udpTNCktSmF950SQLOmvdvYuXGydKs8v05cxe5fg%3D%3D; expires=Fri, 19-Nov-2021 11:57:38 GMT; Max-Age=7200; path=/; domain=.yumi.com",
+ "Pragma": "no-cache",
+ "Cache-Control": "no-store",
+ "Content-Encoding": "gzip",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "3f80dc84438b2f2d6b5e58084e31671c",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "af9b1a0118edd2920db355f9eee4ab75"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_over_tls.json b/benchmarks/json/http/http_over_tls.json
new file mode 100644
index 0000000..32960f8
--- /dev/null
+++ b/benchmarks/json/http/http_over_tls.json
@@ -0,0 +1,2 @@
+[
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_post_multipart_form_data.json b/benchmarks/json/http/http_post_multipart_form_data.json
new file mode 100644
index 0000000..ac524f6
--- /dev/null
+++ b/benchmarks/json/http/http_post_multipart_form_data.json
@@ -0,0 +1,108 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.8.97:11371-192.168.57.14:8080-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/fileupload/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "192.168.57.14:8080",
+ "Connection": "keep-alive",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "zh-CN,zh;q=0.8",
+ "Cookie": "JSESSIONID=969AC5FBD069EE6218EB10513726B244; JSESSIONID=400CC78DF5784F303702CC7F02C6122C",
+ "__X_HTTP_URL": "192.168.57.14:8080/fileupload/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "Apache-Coyote/1.1",
+ "Content-Type": "text/html;charset=UTF-8",
+ "Content-Length": "468",
+ "Date": "Thu, 28 Mar 2019 08:13:33 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "2b8cd757ab5ffba85acac26c008a1ffc",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "2b8cd757ab5ffba85acac26c008a1ffc"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/fileupload/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "192.168.57.14:8080",
+ "Connection": "keep-alive",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+ "User-Agent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "zh-CN,zh;q=0.8",
+ "Cookie": "JSESSIONID=969AC5FBD069EE6218EB10513726B244; JSESSIONID=400CC78DF5784F303702CC7F02C6122C",
+ "__X_HTTP_URL": "192.168.57.14:8080/fileupload/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "Apache-Coyote/1.1",
+ "Content-Type": "text/html;charset=UTF-8",
+ "Content-Length": "468",
+ "Date": "Thu, 28 Mar 2019 08:13:33 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "2b8cd757ab5ffba85acac26c008a1ffc",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "2b8cd757ab5ffba85acac26c008a1ffc"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "method": "POST",
+ "uri": "/fileupload/servlet/UploadHandleServlet",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "192.168.57.14:8080",
+ "Connection": "keep-alive",
+ "Content-Length": "449",
+ "Cache-Control": "max-age=0",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+ "Origin": "http://192.168.57.14:8080",
+ "User-Agent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36",
+ "Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryAe47vGj7ybAe6RwO",
+ "Referer": "http://192.168.57.14:8080/fileupload/",
+ "Accept-Encoding": "gzip,deflate,sdch",
+ "Accept-Language": "zh-CN,zh;q=0.8",
+ "Cookie": "JSESSIONID=969AC5FBD069EE6218EB10513726B244; JSESSIONID=400CC78DF5784F303702CC7F02C6122C",
+ "__X_HTTP_URL": "192.168.57.14:8080/fileupload/servlet/UploadHandleServlet",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "550be33bf0ac01b6f7ac175bb8f4522a",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "550be33bf0ac01b6f7ac175bb8f4522a"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "Apache-Coyote/1.1",
+ "Content-Type": "text/html;charset=UTF-8",
+ "Content-Length": "144",
+ "Date": "Thu, 28 Mar 2019 08:13:37 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "3fa07f3ec9f9fefed96e9886f80760bb",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "3fa07f3ec9f9fefed96e9886f80760bb"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_post_single_trans.json b/benchmarks/json/http/http_post_single_trans.json
new file mode 100644
index 0000000..823c310
--- /dev/null
+++ b/benchmarks/json/http/http_post_single_trans.json
@@ -0,0 +1,38 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.38.83.55186>192.168.40.139.8080"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "POST",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Content-Type": "application/json",
+ "User-Agent": "PostmanRuntime/7.37.3",
+ "Accept": "*/*",
+ "Cache-Control": "no-cache",
+ "Postman-Token": "71a004ad-901b-4461-ac3c-db9adb303c47",
+ "Host": "192.168.40.139:8080",
+ "Accept-Encoding": "gzip, deflate, br",
+ "Connection": "keep-alive",
+ "Content-Length": "26",
+ "__X_HTTP_URL": "192.168.40.139:8080/",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "5ffe2871e6d5f6ee25ad7c1bfdd9f7b3"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Server": "BaseHTTP/0.6 Python/3.6.8",
+ "Date": "Mon, 08 Apr 2024 07:19:16 GMT",
+ "Content-length": "84",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "cd8a54dd3e915946c4df262111e5aa05"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_req_1byte_sliding_window.json b/benchmarks/json/http/http_req_1byte_sliding_window.json
new file mode 100644
index 0000000..13b360d
--- /dev/null
+++ b/benchmarks/json/http/http_req_1byte_sliding_window.json
@@ -0,0 +1,35 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.40.137:46180-192.168.42.40:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/index.html",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "Wget/1.14 (linux-gnu)",
+ "Accept": "*/*",
+ "Host": "192.168.42.40",
+ "__X_HTTP_URL": "192.168.42.40/index.html",
+ "Connection": "Keep-Alive"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Server": "SimpleHTTP/0.6 Python/2.7.5",
+ "Date": "Fri, 29 Dec 2023 09:11:12 GMT",
+ "Content-type": "text/html",
+ "Content-Length": "144",
+ "Last-Modified": "Fri, 29 Dec 2023 08:50:53 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "3e11876cd3a234541ae37d833c088a76",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "3e11876cd3a234541ae37d833c088a76"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_res_1byte_sliding_window.json b/benchmarks/json/http/http_res_1byte_sliding_window.json
new file mode 100644
index 0000000..f527839
--- /dev/null
+++ b/benchmarks/json/http/http_res_1byte_sliding_window.json
@@ -0,0 +1,35 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.42.40:36338-192.168.40.137:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/index.html",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "Wget/1.14 (linux-gnu)",
+ "Accept": "*/*",
+ "Host": "192.168.40.137",
+ "Connection": "Keep-Alive",
+ "__X_HTTP_URL": "192.168.40.137/index.html"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Server": "SimpleHTTP/0.6 Python/2.7.5",
+ "Date": "Fri, 29 Dec 2023 09:32:21 GMT",
+ "Content-type": "text/html",
+ "Content-Length": "144",
+ "Last-Modified": "Fri, 29 Dec 2023 08:50:53 GMT",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "3e11876cd3a234541ae37d833c088a76",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "3e11876cd3a234541ae37d833c088a76"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_res_gzip.json b/benchmarks/json/http/http_res_gzip.json
new file mode 100644
index 0000000..9d3e9c7
--- /dev/null
+++ b/benchmarks/json/http/http_res_gzip.json
@@ -0,0 +1,45 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.69.2:34059-192.168.69.1:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/test/ethereal.html",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "cerberus",
+ "User-Agent": "Mozilla/5.0 (X11; U; Linux ppc; rv:1.7.3) Gecko/20041004 Firefox/0.10.1",
+ "Accept": "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
+ "Accept-Language": "en-us,en;q=0.5",
+ "Accept-Encoding": "gzip,deflate",
+ "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
+ "Keep-Alive": "300",
+ "Connection": "keep-alive",
+ "Cookie": "FGNCLIID=05c04axp1yaqynldtcdiwis0ag1",
+ "__X_HTTP_URL": "cerberus/test/ethereal.html"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Date": "Fri, 29 Oct 2004 05:21:00 GMT",
+ "Server": "Apache/2.0.50 (Fedora)",
+ "Last-Modified": "Fri, 29 Oct 2004 05:20:21 GMT",
+ "ETag": "\"126e1f-6d-371b2f40\"",
+ "Accept-Ranges": "bytes",
+ "Vary": "Accept-Encoding",
+ "Content-Encoding": "gzip",
+ "Content-Length": "92",
+ "Connection": "close",
+ "Content-Type": "text/html; charset=UTF-8",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "dc2c0aff94148ca24acb516113a4d018",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "61b9e97f96045587bb55db781f7543ad"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_trans_pipeline.json b/benchmarks/json/http/http_trans_pipeline.json
new file mode 100644
index 0000000..4bd0879
--- /dev/null
+++ b/benchmarks/json/http/http_trans_pipeline.json
@@ -0,0 +1,389 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "223.72.39.14:2545-192.168.182.147:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/postinfo.html",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/postinfo.html"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/_vti_bin/_vti_aut/author.dll",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/_vti_aut/author.dll"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "method": "GET",
+ "uri": "/_vti_bin/_vti_aut/author.exe",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/_vti_aut/author.exe"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 3,
+ "method": "GET",
+ "uri": "/_vti_bin/_vti_aut/dvwssr.dll",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/_vti_aut/dvwssr.dll"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 4,
+ "method": "GET",
+ "uri": "/_vti_bin/_vti_adm/admin.dll",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/_vti_adm/admin.dll"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 5,
+ "method": "GET",
+ "uri": "/_vti_bin/_vti_adm/admin.exe",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/_vti_adm/admin.exe"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 6,
+ "method": "GET",
+ "uri": "/_vti_bin/fpcount.exe?Page=default.asp|Image=3",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/fpcount.exe?Page=default.asp|Image=3"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:01 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "32dc0b2772bd73a952abba009291a399",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "32dc0b2772bd73a952abba009291a399"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:02 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "db2ff8008149d8e70d8a2929acbb0f56",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "db2ff8008149d8e70d8a2929acbb0f56"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 2,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:03 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "f5df152f7d8f34c630f298d2fcb46ed3",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "f5df152f7d8f34c630f298d2fcb46ed3"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 3,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:04 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "73e98ca7b62764869357b3e3c40dcd68",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "73e98ca7b62764869357b3e3c40dcd68"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 4,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:05 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "a5733c8989bde7f08506fa68c20f0c62",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "a5733c8989bde7f08506fa68c20f0c62"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 7,
+ "method": "GET",
+ "uri": "/_vti_bin/shtml.dll",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/shtml.dll",
+ "Connection": "keep-alive"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 8,
+ "method": "GET",
+ "uri": "/_vti_bin/shtml.exe",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_bin/shtml.exe"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 9,
+ "method": "GET",
+ "uri": "/_vti_pvt/_x_todo.htm",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_pvt/_x_todo.htm"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 10,
+ "method": "GET",
+ "uri": "/_vti_pvt/_x_todoh.htm",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_pvt/_x_todoh.htm"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 11,
+ "method": "GET",
+ "uri": "/_vti_pvt/access.cnf",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_pvt/access.cnf"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 12,
+ "method": "GET",
+ "uri": "/_vti_pvt/administrator.pwd",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_pvt/administrator.pwd"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 13,
+ "method": "GET",
+ "uri": "/_vti_pvt/administrators.pwd",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_pvt/administrators.pwd"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 14,
+ "method": "GET",
+ "uri": "/_vti_pvt/authors.pwd",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_pvt/authors.pwd"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 5,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:06 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "4bc0dde3722f76d60fef6f1d878cbb14",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "4bc0dde3722f76d60fef6f1d878cbb14"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 6,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:07 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "728dc2eafd49c9be8149add7c6aff207",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "728dc2eafd49c9be8149add7c6aff207"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 7,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:08 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "0cde98e33181ee0ded49e8d0a3178d55",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "0cde98e33181ee0ded49e8d0a3178d55"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 8,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:09 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "d627268e0aba817d818b6e2b7e41aa11",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "d627268e0aba817d818b6e2b7e41aa11"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 9,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:10 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "e99d9829d50bd94b3497b91011f6e349",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "e99d9829d50bd94b3497b91011f6e349"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 15,
+ "method": "GET",
+ "uri": "/_vti_pvt/bots.cnf",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "116.181.2.152",
+ "User-Agent": "Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)",
+ "Connection": "keep-alive",
+ "__X_HTTP_URL": "116.181.2.152/_vti_pvt/bots.cnf"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 10,
+ "res_version": "1.1",
+ "res_status": "Not Found",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 404,
+ "Server": "nginx",
+ "Date": "Thu, 29 Oct 2020 09:59:11 GMT",
+ "Content-Type": "text/html",
+ "Content-Length": "146",
+ "Connection": "keep-alive",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "99a813d29c5da4e6f7269be4c1a31c8e",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "99a813d29c5da4e6f7269be4c1a31c8e"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_tunnel_for_http.json b/benchmarks/json/http/http_tunnel_for_http.json
new file mode 100644
index 0000000..ad653d5
--- /dev/null
+++ b/benchmarks/json/http/http_tunnel_for_http.json
@@ -0,0 +1,62 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.40.139.59234>192.168.38.83.8080"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "CONNECT",
+ "uri": "www.baidu.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "www.baidu.com:80",
+ "User-Agent": "curl/7.29.0",
+ "Proxy-Connection": "Keep-Alive",
+ "__X_HTTP_URL": "www.baidu.com:80"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Connection established",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Proxy-agent": "CCProxy"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "curl/7.29.0",
+ "Host": "www.baidu.com",
+ "Accept": "*/*",
+ "__X_HTTP_URL": "www.baidu.com/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Accept-Ranges": "bytes",
+ "Cache-Control": "private, no-cache, no-store, proxy-revalidate, no-transform",
+ "Connection": "keep-alive",
+ "Content-Length": "2381",
+ "Content-Type": "text/html",
+ "Date": "Mon, 08 Apr 2024 09:45:51 GMT",
+ "Etag": "\"588604c1-94d\"",
+ "Last-Modified": "Mon, 23 Jan 2017 13:27:29 GMT",
+ "Pragma": "no-cache",
+ "Server": "bfe/1.0.8.18",
+ "Set-Cookie": "BDORZ=27315; max-age=86400; domain=.baidu.com; path=/",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "090fe607a5be1228362614ccaa088577"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_tunnel_for_http_c2s.json b/benchmarks/json/http/http_tunnel_for_http_c2s.json
new file mode 100644
index 0000000..5e17067
--- /dev/null
+++ b/benchmarks/json/http/http_tunnel_for_http_c2s.json
@@ -0,0 +1,31 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.40.139.59234>192.168.38.83.8080"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "CONNECT",
+ "uri": "www.baidu.com:80",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "www.baidu.com:80",
+ "User-Agent": "curl/7.29.0",
+ "Proxy-Connection": "Keep-Alive",
+ "__X_HTTP_URL": "www.baidu.com:80"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "GET",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "curl/7.29.0",
+ "Host": "www.baidu.com",
+ "Accept": "*/*",
+ "__X_HTTP_URL": "www.baidu.com/"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_tunnel_for_http_s2c.json b/benchmarks/json/http/http_tunnel_for_http_s2c.json
new file mode 100644
index 0000000..851d652
--- /dev/null
+++ b/benchmarks/json/http/http_tunnel_for_http_s2c.json
@@ -0,0 +1,36 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.40.139.59234>192.168.38.83.8080"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Connection established",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Proxy-agent": "CCProxy"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Accept-Ranges": "bytes",
+ "Cache-Control": "private, no-cache, no-store, proxy-revalidate, no-transform",
+ "Connection": "keep-alive",
+ "Content-Length": "2381",
+ "Content-Type": "text/html",
+ "Date": "Mon, 08 Apr 2024 09:45:51 GMT",
+ "Etag": "\"588604c1-94d\"",
+ "Last-Modified": "Mon, 23 Jan 2017 13:27:29 GMT",
+ "Pragma": "no-cache",
+ "Server": "bfe/1.0.8.18",
+ "Set-Cookie": "BDORZ=27315; max-age=86400; domain=.baidu.com; path=/",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "090fe607a5be1228362614ccaa088577"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_tunnel_for_pop3.json b/benchmarks/json/http/http_tunnel_for_pop3.json
new file mode 100644
index 0000000..a69ac7b
--- /dev/null
+++ b/benchmarks/json/http/http_tunnel_for_pop3.json
@@ -0,0 +1,32 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.10.58.51798>192.168.10.144.808"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "CONNECT",
+ "uri": "pop.163.com:110",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Content-Length": "0",
+ "Accept": "*/*",
+ "User-Agent": "Foxmail 7, 1, 3, 48[cn]",
+ "Accept-Encoding": "gzip, deflate",
+ "Proxy-Connection": "Keep-Alive",
+ "Connection": "Keep-Alive",
+ "Host": "192.168.10.144",
+ "__X_HTTP_URL": "pop.163.com:110"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Connection established",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Proxy-agent": "CCProxy"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_tunnel_s2c_only_hdr.json b/benchmarks/json/http/http_tunnel_s2c_only_hdr.json
new file mode 100644
index 0000000..4f11604
--- /dev/null
+++ b/benchmarks/json/http/http_tunnel_s2c_only_hdr.json
@@ -0,0 +1,15 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "36.255.45.61.29079>68.28.1.153.80"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "Connection Established",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Proxy-agent": "Apache/2.0.55 (Unix) proxy_html/2.5"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_upgrade_http2.json b/benchmarks/json/http/http_upgrade_http2.json
new file mode 100644
index 0000000..5d05db4
--- /dev/null
+++ b/benchmarks/json/http/http_upgrade_http2.json
@@ -0,0 +1,41 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "10.9.0.2.58038>139.162.123.134.80"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/robots.txt",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "nghttp2.org",
+ "User-Agent": "curl/7.61.0",
+ "Accept": "*/*",
+ "Connection": "Upgrade, HTTP2-Settings",
+ "Upgrade": "h2c",
+ "HTTP2-Settings": "AAMAAABkAARAAAAAAAIAAAAA",
+ "__X_HTTP_URL": "nghttp2.org/robots.txt"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 1,
+ "method": "PRI",
+ "uri": "*",
+ "req_version": "2.0",
+ "major_version": 2,
+ "minor_version": 0
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Switching Protocols",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 101,
+ "Connection": "Upgrade",
+ "Upgrade": "h2c"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_upgrade_websocket.json b/benchmarks/json/http/http_upgrade_websocket.json
new file mode 100644
index 0000000..6a7dfc3
--- /dev/null
+++ b/benchmarks/json/http/http_upgrade_websocket.json
@@ -0,0 +1,41 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "131.179.196.220:59631-131.179.196.46:9696-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "spurs.cs.ucla.edu:9696",
+ "Connection": "Upgrade",
+ "Pragma": "no-cache",
+ "Cache-Control": "no-cache",
+ "Upgrade": "websocket",
+ "Origin": "null",
+ "Sec-WebSocket-Version": "13",
+ "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36",
+ "Accept-Encoding": "gzip, deflate, sdch",
+ "Accept-Language": "en-US,en;q=0.8,lv;q=0.6,ru;q=0.4",
+ "Cookie": "s_cc=true; s_sq=%5B%5BB%5D%5D; iwe_user_noticecount_urn%3amace%3aucla.edu%3appid%3aperson%3a1223EF7211FC4EC1965579D0B8D85FBA=2; __utma=125574670.1759122974.1407127284.1407127284.1415755402.2; __utmc=125574670; __utma=126236063.2139843507.1390525421.1433785187.1435706244.46; __utmc=126236063; __utmz=126236063.1427934389.33.5.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); _ucla_sso=2015-07-02T11%3A34%3A30-07%3A00; _ga=GA1.2.1759122974.1407127284",
+ "Sec-WebSocket-Key": "sgD1adxQ3mk6BbBqab7owA==",
+ "Sec-WebSocket-Extensions": "permessage-deflate; client_max_window_bits",
+ "__X_HTTP_URL": "spurs.cs.ucla.edu:9696/"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Switching Protocols",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 101,
+ "Connection": "upgrade",
+ "Sec-WebSocket-Accept": "FRh9fmH0UaoLdY5BSFO4hP2Pcjw=",
+ "Server": "WebSocket++/0.5.1",
+ "Upgrade": "websocket"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_url_test_with_host.json b/benchmarks/json/http/http_url_test_with_host.json
new file mode 100644
index 0000000..ab91ded
--- /dev/null
+++ b/benchmarks/json/http/http_url_test_with_host.json
@@ -0,0 +1,35 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.244.1.52412>192.168.244.128.8080"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/urltest/ttt",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Host": "192.168.244.128:8080",
+ "Connection": "keep-alive",
+ "Upgrade-Insecure-Requests": "1",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
+ "__X_HTTP_URL": "192.168.244.128:8080/urltest/ttt"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Server": "BaseHTTP/0.6 Python/3.6.8",
+ "Date": "Thu, 14 Mar 2024 07:37:43 GMT",
+ "Content-type": "application/json",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "49dfdd54b01cbcd2d2ab5e9e5ee6b9b9"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_url_test_without_host.json b/benchmarks/json/http/http_url_test_without_host.json
new file mode 100644
index 0000000..09427a7
--- /dev/null
+++ b/benchmarks/json/http/http_url_test_without_host.json
@@ -0,0 +1,30 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "192.168.244.128:44868-192.168.244.128:8080-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/urltest/ttt",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "User-Agent": "no h",
+ "__X_HTTP_URL": "192.168.244.128:8080/urltest/ttt"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.0",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 0,
+ "status_code": 200,
+ "Server": "BaseHTTP/0.6 Python/3.6.8",
+ "Date": "Thu, 14 Mar 2024 06:15:20 GMT",
+ "Content-type": "application/json",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "49dfdd54b01cbcd2d2ab5e9e5ee6b9b9",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "49dfdd54b01cbcd2d2ab5e9e5ee6b9b9"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_url_test_without_host_v6.json b/benchmarks/json/http/http_url_test_without_host_v6.json
new file mode 100644
index 0000000..2bc3934
--- /dev/null
+++ b/benchmarks/json/http/http_url_test_without_host_v6.json
@@ -0,0 +1,42 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "2607:5d00:2:2::38:2:54676-2408:8722:840:f8::83:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/dist/aria.js?appid=1cea560ed256bea7ae52761bd9042164",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "_HOT": "ent.govwza.cn",
+ "Connection": "keep-alive",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
+ "DNT": "1",
+ "Accept": "*/*",
+ "Referer": "http://www.airchina.com/",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
+ "If-Modified-Since": "Mon, 05 Aug 2024 00:26:26 GMT",
+ "__X_HTTP_URL": "2408:8722:840:f8::83:80/dist/aria.js?appid=1cea560ed256bea7ae52761bd9042164"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "Not Modified",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 304,
+ "Date": "Mon, 05 Aug 2024 07:51:04 GMT",
+ "Content-Type": "application/javascript;charset=UTF-8",
+ "Vary": "origin,access-control-request-method,access-control-request-headers,accept-encoding",
+ "Server": "SLT-MID",
+ "X-NWS-LOG-UUID": "1242198743243161630",
+ "Connection": "close",
+ "X-Cache-Lookup": "Cache Hit",
+ "Access-Control-Allow-Origin": "*",
+ "Cache-Control": "max-age=86400"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/http_zlib_deadlock.json b/benchmarks/json/http/http_zlib_deadlock.json
new file mode 100644
index 0000000..0ea9b7f
--- /dev/null
+++ b/benchmarks/json/http/http_zlib_deadlock.json
@@ -0,0 +1,43 @@
+[
+ {
+ "__X_HTTP_TUPLE4": "100.107.59.2:47242-106.122.255.251:80-6-0"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "request",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "method": "GET",
+ "uri": "/xmlymain-login-web/login/ts-1657244122966?appId=mainApp&appStatus=2&clientType=android&isFirstReq=false&lastSuccessIp=180.153.250.247:3814&userId=175776850",
+ "req_version": "1.1",
+ "major_version": 1,
+ "minor_version": 1,
+ "Cookie2": "$version=1",
+ "Accept": "*/*",
+ "user-agent": "ting_xmim1.0(Mi+10,Android29)",
+ "xmTraceId": "f30c74a5-c62d-46a0-80bd-d51dbf139976163",
+ "Host": "xmc.ximalaya.com",
+ "Connection": "Keep-Alive",
+ "Accept-Encoding": "gzip",
+ "__X_HTTP_URL": "xmc.ximalaya.com/xmlymain-login-web/login/ts-1657244122966?appId=mainApp&appStatus=2&clientType=android&isFirstReq=false&lastSuccessIp=180.153.250.247:3814&userId=175776850"
+ },
+ {
+ "__X_HTTP_TRANSACTION": "response",
+ "__X_HTTP_TRANSACTION_SEQ": 0,
+ "res_version": "1.1",
+ "res_status": "OK",
+ "major_version": 1,
+ "minor_version": 1,
+ "status_code": 200,
+ "Server": "Tengine",
+ "Date": "Fri, 08 Jul 2022 01:35:24 GMT",
+ "Content-Type": "application/json;charset=UTF-8",
+ "Vary": "Accept-Encoding",
+ "x-idc-gw": "0",
+ "Content-Encoding": "gzip",
+ "Transfer-Encoding": "chunked",
+ "X-NWS-LOG-UUID": "12197298277844186084",
+ "Connection": "keep-alive",
+ "X-Cache-Lookup": "Cache Miss",
+ "__X_HTTP_RAW_PAYLOAD_MD5": "3979c98326c16f482f364ee94be3c382",
+ "__X_HTTP_DECOMPRESS_PAYLOAD_MD5": "d383effc464d797b5fdb4d98f4ab0111"
+ }
+] \ No newline at end of file
diff --git a/benchmarks/json/http/non_http.json b/benchmarks/json/http/non_http.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/benchmarks/json/http/non_http.json
@@ -0,0 +1 @@
+[] \ No newline at end of file