├── .coveragerc ├── .gitignore ├── .travis.yml ├── CHANGELOG.rst ├── HACKING.rst ├── LICENSE.txt ├── MANIFEST.in ├── README.rst ├── doc ├── api.rst ├── api_example.py ├── concepts.rst ├── conf.py ├── har.rst ├── history.rst ├── index.rst ├── install.rst ├── mitmproxy-httpolice.png ├── quickstart.rst ├── reports.rst └── streams.rst ├── httpolice ├── __init__.py ├── __metadata__.py ├── blackboard.py ├── citation.py ├── cli.py ├── codings.py ├── exchange.py ├── framing1.py ├── header.py ├── helpers.py ├── inputs │ ├── __init__.py │ ├── common.py │ ├── har.py │ └── streams.py ├── known │ ├── README.rst │ ├── __init__.py │ ├── alt_svc_param.csv │ ├── auth_scheme.csv │ ├── cache_directive.csv │ ├── content_coding.csv │ ├── forwarded_param.csv │ ├── header.csv │ ├── hsts_directive.csv │ ├── media_type.csv │ ├── method.csv │ ├── preference.csv │ ├── product.csv │ ├── range_unit.csv │ ├── status_code.csv │ ├── transfer_coding.csv │ ├── upgrade_token.csv │ └── warn_code.csv ├── message.py ├── notice.py ├── notices.xml ├── parse.py ├── reports │ ├── __init__.py │ ├── common.py │ ├── html.css │ ├── html.js │ ├── html.py │ └── text.py ├── request.py ├── response.py ├── stream.py ├── structure.py ├── syntax │ ├── __init__.py │ ├── common.py │ ├── internal.py │ ├── rfc2616.py │ ├── rfc3986.py │ ├── rfc4647.py │ ├── rfc5646.py │ ├── rfc5789.py │ ├── rfc6266.py │ ├── rfc6749.py │ ├── rfc6797.py │ ├── rfc6838.py │ ├── rfc7230.py │ ├── rfc7231.py │ ├── rfc7232.py │ ├── rfc7233.py │ ├── rfc7234.py │ ├── rfc7235.py │ ├── rfc7239.py │ ├── rfc7240.py │ ├── rfc7540.py │ ├── rfc7838.py │ ├── rfc8187.py │ ├── rfc8288.py │ ├── w3c_ldp.py │ └── whatwg_fetch.py └── util │ ├── __init__.py │ ├── data.py │ ├── ordered_enum.py │ └── text.py ├── pylintrc ├── pytest.ini ├── setup.cfg ├── setup.py ├── test ├── combined_data │ ├── 1000_01 │ ├── 1000_02 │ ├── 1000_04.https │ ├── 1000_05 │ ├── 1000_06 │ ├── 1000_07.https │ ├── 1000_08 │ ├── 1000_09 │ ├── 1000_10 │ ├── 1000_11 │ ├── 1001_1 │ ├── 1002_1 │ ├── 1003_1 │ ├── 1004_1 │ ├── 1005_1 │ ├── 1005_2 │ ├── 1005_3 │ ├── 1005_4 │ ├── 1006_1 │ ├── 1006_2 │ ├── 1008_1 │ ├── 1008_2 │ ├── 1009_1 │ ├── 1009_2 │ ├── 1009_3 │ ├── 1011_1 │ ├── 1012_1 │ ├── 1012_2 │ ├── 1013_1 │ ├── 1013_2 │ ├── 1013_3 │ ├── 1013_4 │ ├── 1013_5 │ ├── 1014_1 │ ├── 1015_1 │ ├── 1016_1 │ ├── 1017_1 │ ├── 1017_2 │ ├── 1017_3 │ ├── 1018_1 │ ├── 1018_2 │ ├── 1019_1 │ ├── 1020_1 │ ├── 1021_1 │ ├── 1022_1 │ ├── 1023_1 │ ├── 1023_2 │ ├── 1024_1 │ ├── 1025_1 │ ├── 1025_2 │ ├── 1025_3 │ ├── 1026_1 │ ├── 1026_2 │ ├── 1026_3 │ ├── 1027_1 │ ├── 1027_2 │ ├── 1028_1 │ ├── 1029_1 │ ├── 1030_1 │ ├── 1031_1 │ ├── 1031_2 │ ├── 1032_1 │ ├── 1032_2 │ ├── 1033_1 │ ├── 1033_2 │ ├── 1034_1 │ ├── 1035_1 │ ├── 1036_1 │ ├── 1037_1 │ ├── 1037_2 │ ├── 1037_3 │ ├── 1038_1 │ ├── 1038_2 │ ├── 1038_3 │ ├── 1038_4 │ ├── 1039_1 │ ├── 1039_2 │ ├── 1040_1 │ ├── 1041_1 │ ├── 1041_2 │ ├── 1042_1 │ ├── 1045_1 │ ├── 1045_2 │ ├── 1045_3 │ ├── 1045_4 │ ├── 1046_1 │ ├── 1046_2 │ ├── 1046_3 │ ├── 1046_4 │ ├── 1047_1 │ ├── 1047_2 │ ├── 1048_1 │ ├── 1049_1 │ ├── 1049_2 │ ├── 1049_3 │ ├── 1050_1 │ ├── 1051_1 │ ├── 1052_1 │ ├── 1053_1 │ ├── 1053_2 │ ├── 1053_3 │ ├── 1054_1 │ ├── 1054_2 │ ├── 1055_1.https │ ├── 1055_2 │ ├── 1056_1 │ ├── 1057_1 │ ├── 1058_1 │ ├── 1059_1 │ ├── 1060_1.https │ ├── 1060_2.https │ ├── 1061_1 │ ├── 1062_1 │ ├── 1063_1 │ ├── 1064_1 │ ├── 1066_1 │ ├── 1066_2 │ ├── 1067_1 │ ├── 1068_1.noscheme │ ├── 1068_2 │ ├── 1068_3.https │ ├── 1070_1 │ ├── 1071_1 │ ├── 1071_2 │ ├── 1072_1 │ ├── 1073_1 │ ├── 1073_2 │ ├── 1074_1 │ ├── 1076_1 │ ├── 1076_2 │ ├── 1077_1 │ ├── 1077_2 │ ├── 1078_1 │ ├── 1079_1 │ ├── 1080_1 │ ├── 1081_1 │ ├── 1082_1 │ ├── 1083_1 │ ├── 1084_1 │ ├── 1085_1.noscheme │ ├── 1085_2 │ ├── 1085_3 │ ├── 1085_4 │ ├── 1085_5 │ ├── 1085_6 │ ├── 1085_7 │ ├── 1086_1 │ ├── 1087_1 │ ├── 1087_2 │ ├── 1088_1 │ ├── 1089_1 │ ├── 1090_1 │ ├── 1090_2 │ ├── 1090_3 │ ├── 1092_1 │ ├── 1093_1 │ ├── 1093_2 │ ├── 1093_3 │ ├── 1093_4 │ ├── 1094_1 │ ├── 1095_1 │ ├── 1096_1 │ ├── 1097_1 │ ├── 1097_2 │ ├── 1098_1 │ ├── 1098_2 │ ├── 1099_1 │ ├── 1100_1 │ ├── 1101_1 │ ├── 1102_1 │ ├── 1102_2 │ ├── 1103_1 │ ├── 1104_1 │ ├── 1105_1 │ ├── 1106_1 │ ├── 1107_1 │ ├── 1108_1 │ ├── 1108_2 │ ├── 1109_1 │ ├── 1110_1 │ ├── 1110_2 │ ├── 1111_1 │ ├── 1111_2 │ ├── 1112_1 │ ├── 1113_1 │ ├── 1113_2 │ ├── 1113_3 │ ├── 1114_1 │ ├── 1114_2 │ ├── 1115_1 │ ├── 1116_1 │ ├── 1116_2 │ ├── 1117_1 │ ├── 1117_2 │ ├── 1118_1 │ ├── 1118_2 │ ├── 1118_3 │ ├── 1119_1 │ ├── 1120_1 │ ├── 1121_1 │ ├── 1121_2 │ ├── 1121_3 │ ├── 1122_1 │ ├── 1123_1 │ ├── 1123_2 │ ├── 1124_1 │ ├── 1125_1 │ ├── 1125_2 │ ├── 1125_3 │ ├── 1127_1 │ ├── 1127_2 │ ├── 1127_3 │ ├── 1128_1 │ ├── 1129_1 │ ├── 1129_2 │ ├── 1130_1 │ ├── 1131_1 │ ├── 1132_1 │ ├── 1133_1 │ ├── 1133_2 │ ├── 1134_1 │ ├── 1135_1 │ ├── 1135_2 │ ├── 1136_1 │ ├── 1137_1 │ ├── 1138_1 │ ├── 1139_1 │ ├── 1140_1 │ ├── 1140_2 │ ├── 1141_1 │ ├── 1142_1 │ ├── 1143_1 │ ├── 1144_1 │ ├── 1145_1 │ ├── 1146_1 │ ├── 1147_1 │ ├── 1148_1 │ ├── 1148_2 │ ├── 1149_1 │ ├── 1150_1 │ ├── 1150_2 │ ├── 1151_1 │ ├── 1151_2 │ ├── 1152_1 │ ├── 1152_2 │ ├── 1153_1 │ ├── 1153_2 │ ├── 1154_1 │ ├── 1154_2 │ ├── 1154_3 │ ├── 1155_1 │ ├── 1156_1 │ ├── 1156_2.https │ ├── 1157_1 │ ├── 1157_2.https │ ├── 1158_1 │ ├── 1158_2 │ ├── 1158_3.https │ ├── 1158_4 │ ├── 1158_5.https │ ├── 1158_6 │ ├── 1159_1 │ ├── 1160_1 │ ├── 1161_1 │ ├── 1161_2 │ ├── 1161_3 │ ├── 1162_1 │ ├── 1163_1 │ ├── 1164_1 │ ├── 1165_1 │ ├── 1166_1 │ ├── 1167_1 │ ├── 1168_1 │ ├── 1168_2 │ ├── 1169_1 │ ├── 1170_1 │ ├── 1170_2 │ ├── 1171_1 │ ├── 1171_2 │ ├── 1171_3 │ ├── 1171_4 │ ├── 1172_1 │ ├── 1173_1 │ ├── 1174_1 │ ├── 1174_2 │ ├── 1175_1 │ ├── 1175_2 │ ├── 1175_3 │ ├── 1176_1 │ ├── 1177_1 │ ├── 1177_2 │ ├── 1177_3 │ ├── 1177_4 │ ├── 1180_1 │ ├── 1180_2 │ ├── 1180_3 │ ├── 1181_1 │ ├── 1182_1 │ ├── 1186_1 │ ├── 1186_2 │ ├── 1186_3 │ ├── 1186_4 │ ├── 1186_5 │ ├── 1187_1 │ ├── 1188_1 │ ├── 1188_2 │ ├── 1188_3 │ ├── 1188_4 │ ├── 1188_5 │ ├── 1188_6 │ ├── 1189_1 │ ├── 1191_1 │ ├── 1192_1 │ ├── 1192_2 │ ├── 1193_1 │ ├── 1193_2 │ ├── 1193_3 │ ├── 1193_4 │ ├── 1193_5 │ ├── 1193_6 │ ├── 1194_1 │ ├── 1195_1 │ ├── 1196_1 │ ├── 1196_2 │ ├── 1197_1 │ ├── 1198_1 │ ├── 1199_1 │ ├── 1200_1 │ ├── 1201_1 │ ├── 1202_1 │ ├── 1203_1 │ ├── 1204_1 │ ├── 1205_1 │ ├── 1206_1 │ ├── 1207_1 │ ├── 1208_1 │ ├── 1209_1 │ ├── 1209_2 │ ├── 1210_1 │ ├── 1211_1 │ ├── 1212_1 │ ├── 1213_1 │ ├── 1213_2 │ ├── 1214_1 │ ├── 1215_1 │ ├── 1216_1 │ ├── 1216_2 │ ├── 1217_1 │ ├── 1217_2 │ ├── 1218_1.https │ ├── 1218_2.https │ ├── 1219_1.https │ ├── 1220_1.https │ ├── 1221_1 │ ├── 1221_2.noscheme │ ├── 1222_1 │ ├── 1223_1 │ ├── 1224_1 │ ├── 1225_1 │ ├── 1225_2 │ ├── 1225_3 │ ├── 1225_4 │ ├── 1226_1 │ ├── 1227_1 │ ├── 1228_1 │ ├── 1228_2.https │ ├── 1230_1 │ ├── 1231_1 │ ├── 1232_1 │ ├── 1232_2 │ ├── 1233_1.https │ ├── 1233_2.https │ ├── 1234_1 │ ├── 1234_2 │ ├── 1235_1 │ ├── 1238_1 │ ├── 1238_2 │ ├── 1238_3 │ ├── 1241_1 │ ├── 1242_1 │ ├── 1243_1 │ ├── 1247_1 │ ├── 1248_1 │ ├── 1249_1 │ ├── 1250_1 │ ├── 1251_1 │ ├── 1252_1 │ ├── 1253_1 │ ├── 1253_2 │ ├── 1253_3 │ ├── 1254_1 │ ├── 1256_1.https │ ├── 1256_2.https │ ├── 1257_1.https │ ├── 1259_2.https │ ├── 1260_1.https │ ├── 1261_1 │ ├── 1261_2.noscheme │ ├── 1262_1.https │ ├── 1262_2.https │ ├── 1263_1 │ ├── 1264_1.https │ ├── 1264_2.https │ ├── 1265_1.https │ ├── 1265_2.https │ ├── 1266_1.https │ ├── 1266_2.https │ ├── 1266_3.https │ ├── 1266_4.https │ ├── 1267_1.https │ ├── 1267_2.https │ ├── 1267_3.https │ ├── 1267_4.https │ ├── 1268_1.https │ ├── 1268_2.https │ ├── 1269_1.https │ ├── 1269_2.https │ ├── 1270_1.https │ ├── 1271_1 │ ├── 1271_2 │ ├── 1272_1.https │ ├── 1273_1 │ ├── 1273_2 │ ├── 1274_1 │ ├── 1275_1 │ ├── 1276_1 │ ├── 1276_2 │ ├── 1276_3 │ ├── 1276_4 │ ├── 1276_5 │ ├── 1276_6 │ ├── 1276_7 │ ├── 1277_1 │ ├── 1277_2 │ ├── 1277_3 │ ├── 1277_4.https │ ├── 1280_1 │ ├── 1281_1 │ ├── 1281_2 │ ├── 1282_1 │ ├── 1282_2 │ ├── 1282_3 │ ├── 1282_4 │ ├── 1283_1.https │ ├── 1283_2.https │ ├── 1284_1 │ ├── 1285_1 │ ├── 1286_1 │ ├── 1286_2 │ ├── 1287_1 │ ├── 1287_2 │ ├── 1288_1 │ ├── 1288_2 │ ├── 1289_1 │ ├── 1290_1 │ ├── 1291_1 │ ├── 1291_2 │ ├── 1291_3 │ ├── 1291_4 │ ├── 1295_1 │ ├── 1296_1 │ ├── 1297_1 │ ├── 1297_2 │ ├── 1297_3 │ ├── 1298_1 │ ├── 1299_1 │ ├── 1299_2 │ ├── 1299_3 │ ├── 1299_4.https │ ├── 1299_5 │ ├── 1300_1 │ ├── 1300_2 │ ├── 1300_3 │ ├── 1301_1.https │ ├── 1301_2.https │ ├── 1301_3.https │ ├── 1301_4.https │ ├── 1301_5.https │ ├── 1302_1 │ ├── 1303_1.https │ ├── 1305_1 │ ├── 1306_1 │ ├── 1307_1 │ ├── 1308_1 │ ├── 1309_1 │ ├── 1310_1 │ ├── absolute_form_1 │ ├── absolute_form_2 │ ├── allow_none │ ├── alt_svc_clear │ ├── asterisk_form │ ├── authority_form │ ├── bad_charset │ ├── bad_content_encoding │ ├── bad_transfer_encoding │ ├── chunked │ ├── chunked_empty │ ├── complex_connection │ ├── content_encoding_br │ ├── content_encoding_deflate │ ├── content_encoding_gzip │ ├── cp1251 │ ├── early_hints │ ├── empty_uri_reference │ ├── from_cache │ ├── funny_alt_svc │ ├── funny_cache_control │ ├── funny_hsts.https │ ├── funny_prefer │ ├── funny_status_code │ ├── funny_warning │ ├── funny_www_authenticate │ ├── fünný nãme │ ├── large_binary │ ├── localhost │ ├── long_stuff │ ├── multipart_form_data │ ├── obs_text_in_directive │ ├── partial_content │ ├── partial_content_multipart │ ├── partial_content_multipart2 │ ├── patch │ ├── post │ ├── put │ ├── request_gzip │ ├── showcase.https │ ├── silence1 │ ├── silence2 │ ├── silence3 │ ├── simple_head │ ├── simple_ok │ ├── transfer_encoding_deflate │ ├── transfer_encoding_gzip │ ├── unknown_charset │ ├── unparseable │ ├── upgrade_to_h2c │ ├── upgrade_to_h2c_close │ ├── url_encoded │ └── xml ├── har_data │ ├── 1045_5.har │ ├── 1053_3.har │ ├── 1066_3.har │ ├── 1239_1.har │ ├── 1240_1.har │ ├── 1244_1.har │ ├── 1244_2.har │ ├── 1244_3.har │ ├── 1245_1.har │ ├── 1246_1.har │ ├── 1258_1.har │ ├── 1292_1.har │ ├── 1293_1.har │ ├── 1294_1.har │ ├── bad_base64.har │ ├── chrome_http2.har │ ├── chrome_https_fail.har │ ├── chrome_text.har │ ├── fiddler+ie11_connect.har │ ├── firefox_304.har │ ├── firefox_empty.har │ ├── firefox_gif.har │ ├── firefox_post_form.har │ ├── fünný nãme.har │ ├── simple_ok.har │ └── unknown_response_body.har ├── misc_data │ └── bad.har ├── tcpflow_data │ ├── httpbin │ │ ├── 1470133183-023.022.014.018-00080-172.016.000.100-53222-0 │ │ ├── 1470133183-172.016.000.100-53222-023.022.014.018-00080-0 │ │ └── report.xml │ ├── multiple_connections │ │ ├── 1470135434-023.022.014.018-00080-172.016.000.100-53384-0 │ │ ├── 1470135434-172.016.000.100-53384-023.022.014.018-00080-0 │ │ ├── 1470135436-172.016.000.100-57422-054.175.219.008-00080-0 │ │ ├── 1470135437-054.175.219.008-00080-172.016.000.100-57422-0 │ │ ├── 1470135439-054.175.219.008-00080-172.016.000.100-57424-0 │ │ ├── 1470135439-172.016.000.100-57424-054.175.219.008-00080-0 │ │ └── report.xml │ ├── rearrange │ │ ├── 1488154981-010.025.103.004-53306-010.220.002.014-00080-0 │ │ ├── 1488154981-010.220.002.014-00080-010.025.103.004-53306-0 │ │ ├── 1488154987-010.025.103.004-51002-010.220.001.009-00080-0 │ │ ├── 1488154987-010.220.001.009-00080-010.025.103.004-51002-0 │ │ ├── 1488155040-010.025.103.004-30002-010.220.002.014-00080-0 │ │ ├── 1488155040-010.220.002.014-00080-010.025.103.004-30002-0 │ │ ├── 1488155160-010.025.103.004-47657-010.220.001.201-00080-0 │ │ ├── 1488155165-010.220.001.201-00080-010.025.103.004-47657-0 │ │ ├── 1488155280-010.025.103.004-39321-010.220.001.204-47836-0 │ │ └── 1488155281-010.220.001.204-47836-010.025.103.004-39321-0 │ ├── request_timeout │ │ ├── 1470133592-127.000.000.001-08123-127.000.000.001-49820-0 │ │ └── report.xml │ ├── response_timeout │ │ ├── 1470135215-172.016.000.100-53380-023.022.014.018-00080-0 │ │ └── report.xml │ ├── source_port_reused │ │ ├── 1470134049-054.175.219.008-00080-172.016.000.100-15061-0 │ │ ├── 1470134049-172.016.000.100-15061-054.175.219.008-00080-0 │ │ ├── 1470134125-054.175.219.008-00080-172.016.000.100-15061-0 │ │ ├── 1470134125-172.016.000.100-15061-054.175.219.008-00080-0 │ │ └── report.xml │ ├── tls │ │ ├── 1470133812-023.022.014.018-00443-172.016.000.100-40032-0 │ │ ├── 1470133812-172.016.000.100-40032-023.022.014.018-00443-0 │ │ └── report.xml │ ├── uwsgi_protocol │ │ ├── 1517476550-127.000.000.001-40957-127.000.000.001-51368-0 │ │ ├── 1517476550-127.000.000.001-51368-127.000.000.001-40957-0 │ │ ├── alerts.txt │ │ └── report.xml │ └── wrong_filenames │ │ ├── 054.175.219.008.00080-172.016.000.100.57382 │ │ ├── 172.016.000.100.57382-054.175.219.008.00080 │ │ └── report.xml ├── tcpick_data │ ├── httpbin │ │ ├── tcpick_000001_172.16.0.100_54.175.219.8_http.clnt.dat │ │ └── tcpick_000001_172.16.0.100_54.175.219.8_http.serv.dat │ ├── multiple_connections │ │ ├── tcpick_000001_172.16.0.100_54.175.219.8_http.clnt.dat │ │ ├── tcpick_000001_172.16.0.100_54.175.219.8_http.serv.dat │ │ ├── tcpick_000002_172.16.0.100_23.22.14.18_http.clnt.dat │ │ ├── tcpick_000002_172.16.0.100_23.22.14.18_http.serv.dat │ │ ├── tcpick_000003_172.16.0.100_54.175.219.8_http.clnt.dat │ │ └── tcpick_000003_172.16.0.100_54.175.219.8_http.serv.dat │ ├── request_timeout │ │ └── tcpick_000001_127.0.0.1_127.0.0.1_8123.clnt.dat │ └── wrong_filenames │ │ ├── tcpick_172.16.0.100_23.22.14.18_http.clnt.dat │ │ └── tcpick_172.16.0.100_23.22.14.18_http.serv.dat ├── test_api.py ├── test_cli.py ├── test_from_files.py ├── test_fuzz.py ├── test_har_input.py ├── test_misc.py ├── test_streams_input.py ├── test_structure.py └── test_syntax.py └── tools ├── afl ├── README.rst ├── harness.py ├── http-tweaks.dict └── prepare_examples.sh ├── check_rst.sh ├── iana.py ├── minimum_requires.sh ├── requirements.in └── requirements.txt /.coveragerc: -------------------------------------------------------------------------------- 1 | [report] 2 | 3 | exclude_lines = 4 | pragma: no cover 5 | def __repr__ 6 | raise NotImplementedError 7 | if __name__ == '__main__': 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | .cache 3 | .coverage 4 | _build 5 | _extra 6 | Django_HTTPolice.egg-info 7 | HTTPolice.egg-info 8 | htmlcov 9 | mitmproxy_HTTPolice.egg-info 10 | -------------------------------------------------------------------------------- /doc/history.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../CHANGELOG.rst 2 | -------------------------------------------------------------------------------- /doc/mitmproxy-httpolice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/doc/mitmproxy-httpolice.png -------------------------------------------------------------------------------- /httpolice/__metadata__.py: -------------------------------------------------------------------------------- 1 | version = '0.10.0.dev1' 2 | homepage = 'https://github.com/vfaronov/httpolice' 3 | -------------------------------------------------------------------------------- /httpolice/codings.py: -------------------------------------------------------------------------------- 1 | """Decoding content and transfer codings.""" 2 | 3 | import zlib 4 | 5 | import brotli 6 | 7 | 8 | def decode_gzip(data): 9 | # Just ``decompress(data, 16 + zlib.MAX_WBITS)`` doesn't work. 10 | return zlib.decompressobj(16 + zlib.MAX_WBITS).decompress(data) 11 | 12 | 13 | def decode_deflate(data): 14 | return zlib.decompress(data) 15 | 16 | 17 | def decode_brotli(data): 18 | return brotli.decompress(data) 19 | -------------------------------------------------------------------------------- /httpolice/inputs/common.py: -------------------------------------------------------------------------------- 1 | class InputError(Exception): 2 | 3 | pass 4 | -------------------------------------------------------------------------------- /httpolice/known/alt_svc_param.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title,syntax_module,syntax_symbol,argument 2 | ma,,,,7838,3.1,,,,rfc7838,ma,required 3 | persist,,,,7838,3.1,,,,rfc7838,persist,required 4 | -------------------------------------------------------------------------------- /httpolice/known/auth_scheme.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title 2 | Basic,,,,7617,,,, 3 | Bearer,,,,6750,,,, 4 | Digest,,,,7616,,,, 5 | HOBA,,,,7486,3,,, 6 | Mutual,,,,8120,,,, 7 | Negotiate,,,,4559,3,,, 8 | OAuth,,,,5849,3.5.1,,, 9 | SCRAM-SHA-1,,,,7804,,,, 10 | SCRAM-SHA-256,,,,7804,,,, 11 | vapid,,,,8292,,,, 12 | -------------------------------------------------------------------------------- /httpolice/known/hsts_directive.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title,syntax_module,syntax_symbol,argument 2 | includeSubDomains,,,,6797,6.1.2,,,,,,no 3 | max-age,,,,6797,6.1.1,,,,rfc6797,max_age_value,required 4 | -------------------------------------------------------------------------------- /httpolice/known/preference.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title,syntax_module,syntax_symbol,argument 2 | depth-noroot,,,,8144,,,,,,, 3 | handling,,,,7240,4.4,,,,rfc7240,handling,required 4 | respond-async,,,,7240,4.1,,,,,,no 5 | return,,,,7240,4.2,,,,rfc7240,return_,required 6 | wait,,,,7240,4.3,,,,rfc7240,wait,required 7 | -------------------------------------------------------------------------------- /httpolice/known/range_unit.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title 2 | bytes,,,,7233,2.1,,, 3 | none,,,*,,,,, 4 | -------------------------------------------------------------------------------- /httpolice/known/transfer_coding.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title 2 | chunked,,,,7230,4.1,,, 3 | compress,,,,7230,4.2.1,,, 4 | deflate,,,,7230,4.2.2,,, 5 | gzip,,,,7230,4.2.3,,, 6 | identity,,RFC errata ID: 408,*,,,,, 7 | x-compress,,,,7230,4.2.1,,, 8 | x-gzip,,,,7230,4.2.2,,, 9 | -------------------------------------------------------------------------------- /httpolice/known/upgrade_token.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title 2 | HTTP,Hypertext Transfer Protocol,,,7230,2.6,,, 3 | TLS,Transport Layer Security,,,2817,,,, 4 | WebSocket,The Web Socket Protocol,,,6455,,,, 5 | h2c,Hypertext Transfer Protocol version 2 (HTTP/2),,,7540,3.2,,, 6 | websocket,The Web Socket Protocol,,,6455,,,, 7 | -------------------------------------------------------------------------------- /httpolice/known/warn_code.csv: -------------------------------------------------------------------------------- 1 | key,title,comment,no_sync,rfc,rfc_section,rfc_appendix,cite_url,cite_title 2 | 110,Response is Stale,,,7234,5.5.1,,, 3 | 111,Revalidation Failed,,,7234,5.5.2,,, 4 | 112,Disconnected Operation,,,7234,5.5.3,,, 5 | 113,Heuristic Expiration,,,7234,5.5.4,,, 6 | 199,Miscellaneous Warning,,,7234,5.5.5,,, 7 | 214,Transformation Applied,,,7234,5.5.6,,, 8 | 299,Miscellaneous Persistent Warning,,,7234,5.5.7,,, 9 | -------------------------------------------------------------------------------- /httpolice/reports/__init__.py: -------------------------------------------------------------------------------- 1 | from httpolice.reports.html import html_report 2 | from httpolice.reports.text import text_report 3 | 4 | 5 | formats = { 6 | u'text': text_report, 7 | u'html': html_report, 8 | } 9 | -------------------------------------------------------------------------------- /httpolice/syntax/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/httpolice/syntax/__init__.py -------------------------------------------------------------------------------- /httpolice/syntax/rfc2616.py: -------------------------------------------------------------------------------- 1 | from httpolice.citation import RFC 2 | from httpolice.parse import auto, fill_names, octet_range 3 | from httpolice.syntax.rfc7230 import quoted_string, token 4 | 5 | 6 | LOALPHA = octet_range(0x61, 0x7A) > auto 7 | 8 | value = token | quoted_string > auto 9 | 10 | 11 | fill_names(globals(), RFC(2616)) 12 | -------------------------------------------------------------------------------- /httpolice/syntax/rfc5789.py: -------------------------------------------------------------------------------- 1 | from httpolice.citation import RFC 2 | from httpolice.parse import fill_names, pivot 3 | from httpolice.syntax.rfc7230 import comma_list1 4 | from httpolice.syntax.rfc7231 import media_type 5 | 6 | 7 | Accept_Patch = comma_list1(media_type) > pivot 8 | 9 | fill_names(globals(), RFC(5789)) 10 | -------------------------------------------------------------------------------- /httpolice/syntax/rfc7540.py: -------------------------------------------------------------------------------- 1 | from httpolice.citation import RFC 2 | from httpolice.parse import fill_names, pivot 3 | from httpolice.syntax.rfc7235 import token68 4 | 5 | 6 | HTTP2_Settings = token68 > pivot 7 | 8 | 9 | fill_names(globals(), RFC(7540)) 10 | -------------------------------------------------------------------------------- /httpolice/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/httpolice/util/__init__.py -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | addopts = --doctest-modules --ignore=setup.py --ignore=doc/ --cov=httpolice/ --cov=test/ --cov-fail-under=100 --cov-report=html 3 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [bdist_wheel] 2 | universal=1 3 | -------------------------------------------------------------------------------- /test/combined_data/1000_01: -------------------------------------------------------------------------------- 1 | 1000 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1000_02: -------------------------------------------------------------------------------- 1 | 1236 1000 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Via: foo, bar 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1000_05: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1000_05 -------------------------------------------------------------------------------- /test/combined_data/1000_07.https: -------------------------------------------------------------------------------- 1 | 1000 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: h2=":8000", ma=3600 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1000_08: -------------------------------------------------------------------------------- 1 | 1000 1063 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept-Ranges: bytes 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | HTTPolice-Silence: 1063 req 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1000_09: -------------------------------------------------------------------------------- 1 | 1000 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Encoding: ??? 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1000_10: -------------------------------------------------------------------------------- 1 | 1000 1000 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Forwarded: for=123.45.67.89; proto=https 8 | Forwarded: for=fe80::6eb6:566f:a443:ae95 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1001_1: -------------------------------------------------------------------------------- 1 | 1001 1007 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Transfer-Encoding: chunked, gzip 9 | 10 | qwrfwerfwerf 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Hello world! 19 | -------------------------------------------------------------------------------- /test/combined_data/1002_1: -------------------------------------------------------------------------------- 1 | 1002 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Transfer-encoding: chunked , chunked 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | 14 | 0 15 | 16 | -------------------------------------------------------------------------------- /test/combined_data/1003_1: -------------------------------------------------------------------------------- 1 | 1003 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: foo, chunked 13 | 14 | 5 15 | hello 16 | 0 17 | 18 | -------------------------------------------------------------------------------- /test/combined_data/1004_1: -------------------------------------------------------------------------------- 1 | 1004 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 90 8 | Content-Type: text/plain 9 | 10 | wfqwrfr 11 | wrfewrf 12 | 13 | ======== BEGIN OUTBOUND STREAM ======== 14 | HTTP/1.1 200 OK 15 | Date: Thu, 31 Dec 2015 18:26:56 GMT 16 | Content-Type: text/plain 17 | Content-Length: 14 18 | 19 | Hello world! 20 | -------------------------------------------------------------------------------- /test/combined_data/1005_1: -------------------------------------------------------------------------------- 1 | 1005 1007 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Transfer-Encoding: chunked 9 | 10 | "0" 11 | 12 | 13 | ======== BEGIN OUTBOUND STREAM ======== 14 | HTTP/1.1 200 OK 15 | Date: Thu, 31 Dec 2015 18:26:56 GMT 16 | Content-Type: text/plain 17 | Content-Length: 14 18 | 19 | Hello world! 20 | -------------------------------------------------------------------------------- /test/combined_data/1005_2: -------------------------------------------------------------------------------- 1 | 1005 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: chunked 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1005_3: -------------------------------------------------------------------------------- 1 | 1005 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: chunked 13 | 14 | "aa" 15 | -------------------------------------------------------------------------------- /test/combined_data/1006_1: -------------------------------------------------------------------------------- 1 | 1006 1007 1008 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1006_2: -------------------------------------------------------------------------------- 1 | 1006 1008 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent 7 | ======== BEGIN OUTBOUND STREAM ======== 8 | HTTP/1.1 400 Bad Request 9 | Date: Thu, 31 Dec 2015 18:26:56 GMT 10 | Content-Type: text/plain 11 | Content-Length: 16 12 | 13 | What the hell? 14 | -------------------------------------------------------------------------------- /test/combined_data/1009_1: -------------------------------------------------------------------------------- 1 | 1009 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP 1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1009_2: -------------------------------------------------------------------------------- 1 | 1008 1009 2 | 3 | # Here, the server decided to respond to a HEAD request with a full body. 4 | 5 | ======== BEGIN INBOUND STREAM ======== 6 | HEAD / HTTP/1.1 7 | Host: example.com 8 | User-Agent: demo 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1009_3: -------------------------------------------------------------------------------- 1 | 1009 2 | 3 | # There's only a CR after the headers block, no LF. 4 | 5 | ======== BEGIN INBOUND STREAM ======== 6 | GET / HTTP/1.1 7 | Host: example.com 8 | User-Agent: demo 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1011_1: -------------------------------------------------------------------------------- 1 | 1011 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: HTTP/3 8 | Connection: Upgrade 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 101 Switching Protocols 12 | Upgrade: HTTP/3 13 | Connection: Upgrade 14 | 15 | nkjqfnknrknwefne 16 | ewnwe 17 | djknwkjnkn -------------------------------------------------------------------------------- /test/combined_data/1012_1: -------------------------------------------------------------------------------- 1 | 1012 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT example.com:80 HTTP/1.1 5 | Host: example.com:80 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 204 No Content 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | 12 | mlkqmelk 13 | qwlkfnlnlkf 14 | 15 | -------------------------------------------------------------------------------- /test/combined_data/1012_2: -------------------------------------------------------------------------------- 1 | 1012 1007 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT example.com:80 HTTP/1.1 5 | Host: example.com:80 6 | User-Agent: demo 7 | 8 | wfqwrfq3rf3f 9 | qrwfqrfq 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 204 No Content 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | 14 | mlkqmelk 15 | qwlkfnlnlkf 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1013_1: -------------------------------------------------------------------------------- 1 | 1013 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | Referer: http://example.com/ 7 | User-Agent: demo 8 | Referer: http://example.com/index.html 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1014_1: -------------------------------------------------------------------------------- 1 | 1014 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo/0.4 Python-urllib/2.7 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1015_1: -------------------------------------------------------------------------------- 1 | 1015 1003 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: foo; bar = baz, chunked 13 | 14 | e 15 | Hello world! 16 | 17 | 0 18 | 19 | -------------------------------------------------------------------------------- /test/combined_data/1016_1: -------------------------------------------------------------------------------- 1 | 1016 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 11 | 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1017_1: -------------------------------------------------------------------------------- 1 | 1017 1017 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Warning: 299 - "text with \(unneeded\) escaping" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1017_2: -------------------------------------------------------------------------------- 1 | 1017 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo (text with \"unneeded\" escaping) 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1017_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo (some data\\text with \(proper\) escaping) 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: chunked 13 | 14 | e;info="some text with \"proper\" escaping" 15 | Hello world! 16 | 17 | 0 18 | 19 | -------------------------------------------------------------------------------- /test/combined_data/1018_2: -------------------------------------------------------------------------------- 1 | 1018 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 9 8 | Content-Type: text/plain 9 | 10 | hello 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 204 No Content 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Transfer-Encoding: chunked 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1019_1: -------------------------------------------------------------------------------- 1 | 1019 1012 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT example.com:80 HTTP/1.1 5 | Host: example.com:80 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Transfer-Encoding: foo 12 | 13 | wfrq3g35t3t;lj45ltj l45jt 14 | 3rkl34klnlken 15 | -------------------------------------------------------------------------------- /test/combined_data/1020_1: -------------------------------------------------------------------------------- 1 | 1020 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Transfer-Encoding: chunked 14 | 15 | e 16 | Hello world! 17 | 18 | 0 19 | 20 | -------------------------------------------------------------------------------- /test/combined_data/1021_1: -------------------------------------------------------------------------------- 1 | 1021 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1022_1: -------------------------------------------------------------------------------- 1 | 1022 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1023_2: -------------------------------------------------------------------------------- 1 | 1023 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 9 8 | Content-Type: text/plain 9 | 10 | hello 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 204 No Content 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Length: 0 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1024_1: -------------------------------------------------------------------------------- 1 | 1024 1012 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT example.com:80 HTTP/1.1 5 | Host: example.com:80 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | 13 | wfrq3g35t3t;lj45ltj l45jt 14 | 3rkl34klnlken 15 | -------------------------------------------------------------------------------- /test/combined_data/1025_1: -------------------------------------------------------------------------------- 1 | 1025 1003 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Connection: Close 12 | Content-Type: text/plain 13 | Transfer-Encoding: foo 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1025_2: -------------------------------------------------------------------------------- 1 | # HTTP/1.0 responses can still have Content-Length, and clients use it, 2 | # and in fact, RFC 1945 requires it. 3 | 1025 4 | 5 | ======== BEGIN INBOUND STREAM ======== 6 | GET / HTTP/1.1 7 | Host: example.com 8 | User-Agent: demo 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.0 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1025_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 204 No Content 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | 12 | -------------------------------------------------------------------------------- /test/combined_data/1026_3: -------------------------------------------------------------------------------- 1 | 1026 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=0-10 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Transfer-Encoding: chunked 14 | Trailer: Transfer-Encoding 15 | 16 | b 17 | Hello world 18 | 0 19 | Transfer-Encoding: chunked 20 | 21 | -------------------------------------------------------------------------------- /test/combined_data/1027_1: -------------------------------------------------------------------------------- 1 | 1027 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | TE: gzip 8 | Connection: TE 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Transfer-Encoding: gzip, chunked 15 | 16 | e 17 | Hello world! 18 | 19 | 0 20 | 21 | -------------------------------------------------------------------------------- /test/combined_data/1027_2: -------------------------------------------------------------------------------- 1 | 1027 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | TE: gzip 8 | Connection: TE 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Transfer-Encoding: deflate, chunked 15 | 16 | e 17 | Hello world! 18 | 19 | 0 20 | 21 | -------------------------------------------------------------------------------- /test/combined_data/1028_1: -------------------------------------------------------------------------------- 1 | 1028 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | TE: gzip;q=0.5, deflate;q=1, chunked, trailers 8 | Connection: te 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1029_1: -------------------------------------------------------------------------------- 1 | 1029 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | TE: trailers 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1030_1: -------------------------------------------------------------------------------- 1 | 1030 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: chunked 13 | Trailer: Server 14 | 15 | e 16 | Hello world! 17 | 18 | 0 19 | Server: xnign/1.2.3 20 | Custom-Header: foo, bar 21 | 22 | -------------------------------------------------------------------------------- /test/combined_data/1031_1: -------------------------------------------------------------------------------- 1 | 1031 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | User-Agent: demo 6 | 7 | ======== BEGIN OUTBOUND STREAM ======== 8 | HTTP/1.1 400 Bad Request 9 | Date: Thu, 31 Dec 2015 18:26:56 GMT 10 | Content-Type: text/plain 11 | Content-Length: 14 12 | 13 | Bad client!! 14 | -------------------------------------------------------------------------------- /test/combined_data/1031_2: -------------------------------------------------------------------------------- 1 | # Since the request is HTTP/1.0, we don't require Host. 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.0 5 | User-Agent: demo 6 | 7 | ======== BEGIN OUTBOUND STREAM ======== 8 | HTTP/1.1 200 OK 9 | Date: Thu, 31 Dec 2015 18:26:56 GMT 10 | Content-Type: text/plain 11 | Content-Length: 14 12 | 13 | Hello world! 14 | -------------------------------------------------------------------------------- /test/combined_data/1032_1: -------------------------------------------------------------------------------- 1 | 1032 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | User-Agent: demo 6 | Host: example.com 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1032_2: -------------------------------------------------------------------------------- 1 | 1032 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.0 5 | User-Agent: demo 6 | Host: example.com 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.0 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Connection: close 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1033_1: -------------------------------------------------------------------------------- 1 | 1033 1031 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | User-Agent: demo 6 | 7 | ======== BEGIN OUTBOUND STREAM ======== 8 | HTTP/1.1 200 OK 9 | Date: Thu, 31 Dec 2015 18:26:56 GMT 10 | Content-Type: text/plain 11 | Content-Length: 14 12 | 13 | Hello world! 14 | -------------------------------------------------------------------------------- /test/combined_data/1033_2: -------------------------------------------------------------------------------- 1 | 1033 1013 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Host: example.com 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1034_1: -------------------------------------------------------------------------------- 1 | 1034 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: max-age=0 8 | Foo-Bar: baz 9 | Connection: cache-control,foo-bar 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 200 OK 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Content-Type: text/plain 15 | Content-Length: 14 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1035_1: -------------------------------------------------------------------------------- 1 | 1035 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /static/ui.js HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/javascript 12 | Content-Length: 19 13 | 14 | function foo() {} 15 | -------------------------------------------------------------------------------- /test/combined_data/1036_1: -------------------------------------------------------------------------------- 1 | 1036 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Encoding: foo 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1037_1: -------------------------------------------------------------------------------- 1 | 1037 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Encoding: deflate 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1037_2: -------------------------------------------------------------------------------- 1 | 1037 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Encoding: gzip 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1037_3: -------------------------------------------------------------------------------- 1 | 1037 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Encoding: br 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1038_1: -------------------------------------------------------------------------------- 1 | 1038 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/x.my-restful-api+json 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1038_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1038_2 -------------------------------------------------------------------------------- /test/combined_data/1038_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=4-20 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 206 Partial Content 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: application/json 13 | Content-Length: 17 14 | Content-Range: bytes 4-20/27 15 | 16 | tle": "Hello worl -------------------------------------------------------------------------------- /test/combined_data/1038_4: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | HEAD / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/x.my-restful-api+json 12 | Content-Length: 14 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1039_1: -------------------------------------------------------------------------------- 1 | 1039 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/xml 12 | Content-Length: 54 13 | 14 | 15 | Hello world! 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1039_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1039_2 -------------------------------------------------------------------------------- /test/combined_data/1040_1: -------------------------------------------------------------------------------- 1 | 1040 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: application/x-www-form-urlencoded 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Hello world! 19 | -------------------------------------------------------------------------------- /test/combined_data/1041_1: -------------------------------------------------------------------------------- 1 | 1041 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 14 12 | 13 | Hello world! 14 | -------------------------------------------------------------------------------- /test/combined_data/1042_1: -------------------------------------------------------------------------------- 1 | 1042 1004 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/x.my-strange-type; Charset=UTF-8; foo=bar;charset=utf-8 12 | Content-Length: 19 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1045_1: -------------------------------------------------------------------------------- 1 | 1045 1012 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 204 No Content 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | 12 | flkqnwrfjwejrf 13 | fnelrfjerf 14 | -------------------------------------------------------------------------------- /test/combined_data/1045_2: -------------------------------------------------------------------------------- 1 | 1045 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS example.com HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1045_3: -------------------------------------------------------------------------------- 1 | 1045 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET example.com HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1045_4: -------------------------------------------------------------------------------- 1 | 1045 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /foo?bar=[baz;qux] HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1046_1: -------------------------------------------------------------------------------- 1 | 1236 1046 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1046_2: -------------------------------------------------------------------------------- 1 | 1236 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 407 Proxy Authentication Required 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Proxy-Authenticate: Basic realm="proxy1" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1046_3: -------------------------------------------------------------------------------- 1 | 1236 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: only-if-cache, max-stale 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 504 Gateway Timeout 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 35 14 | 15 | We don't have that cached, sorry. 16 | -------------------------------------------------------------------------------- /test/combined_data/1046_4: -------------------------------------------------------------------------------- 1 | 1190 1046 1237 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 203 Non-Authoritative Information 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Warning: 214 - "Transformation Applied" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1047_1: -------------------------------------------------------------------------------- 1 | 1047 1025 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | 13 | Hello world! 14 | -------------------------------------------------------------------------------- /test/combined_data/1047_2: -------------------------------------------------------------------------------- 1 | # No. 1047 doesn't apply to HTTP/1.0 servers. 2 | 1025 3 | 4 | ======== BEGIN INBOUND STREAM ======== 5 | GET / HTTP/1.1 6 | Host: example.com 7 | User-Agent: demo 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.0 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1048_1: -------------------------------------------------------------------------------- 1 | 1048 1011 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: FSTR/2 8 | Connection: upgrade 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 101 Switching Protocols 12 | 13 | nfwjne 14 | wfrkjnwekjfn 15 | welknlknfrwlen 16 | -------------------------------------------------------------------------------- /test/combined_data/1049_1: -------------------------------------------------------------------------------- 1 | 1049 1011 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: FSTR/2 8 | Connection: upgrade 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 101 Switching Protocols 12 | Upgrade: FSTR/3 13 | Connection: upgrade 14 | 15 | nfwjne 16 | wfrkjnwekjfn 17 | welknlknfrwlen 18 | -------------------------------------------------------------------------------- /test/combined_data/1049_2: -------------------------------------------------------------------------------- 1 | 1049 1011 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 101 Switching Protocols 10 | Connection: Upgrade 11 | Upgrade: FSTR/3 12 | 13 | nfwjne 14 | wfrkjnwekjfn 15 | welknlknfrwlen 16 | -------------------------------------------------------------------------------- /test/combined_data/1049_3: -------------------------------------------------------------------------------- 1 | 1049 1011 1010 2 | 3 | # See https://github.com/httpwg/http11bis/issues/8 4 | 5 | ======== BEGIN INBOUND STREAM ======== 6 | GET / HTTP/1.1 7 | Host: example.com 8 | User-Agent: demo 9 | Upgrade: FSTR/2 10 | Connection: upgrade 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 101 Switching Protocols 14 | Upgrade: Fstr/2 15 | Connection: upgrade 16 | 17 | nfwjne 18 | wfrkjnwekjfn 19 | welknlknfrwlen 20 | -------------------------------------------------------------------------------- /test/combined_data/1050_1: -------------------------------------------------------------------------------- 1 | 1050 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: h2c 8 | HTTP2-Settings: AAQAAP__ 9 | Connection: http2-settings 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 200 OK 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Content-Type: text/plain 15 | Content-Length: 14 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1051_1: -------------------------------------------------------------------------------- 1 | 1051 1011 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.0 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: FSTR/2 8 | Connection: upgrade 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 101 Switching Protocols 12 | Upgrade: FSTR/2 13 | Connection: upgrade 14 | 15 | nfwjne 16 | wfrkjnwekjfn 17 | welknlknfrwlen 18 | -------------------------------------------------------------------------------- /test/combined_data/1053_1: -------------------------------------------------------------------------------- 1 | 1053 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Language: en 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1053_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 16 8 | Content-Language: en 9 | Content-Type: text/plain 10 | 11 | Hello world! 12 | 13 | ======== BEGIN OUTBOUND STREAM ======== 14 | HTTP/1.1 200 OK 15 | Date: Thu, 31 Dec 2015 18:26:56 GMT 16 | Content-Type: text/plain 17 | Content-Length: 14 18 | 19 | Hello world! 20 | -------------------------------------------------------------------------------- /test/combined_data/1054_1: -------------------------------------------------------------------------------- 1 | 1054 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Trailer: Content-Location 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1054_2: -------------------------------------------------------------------------------- 1 | 1054 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Trailer: Link 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1055_1.https: -------------------------------------------------------------------------------- 1 | 1055 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /index.html HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Location: https://example.com/index.html 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1055_2: -------------------------------------------------------------------------------- 1 | 1236 1055 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Location: ../../articles/123/ 14 | Via: 1.1 proxy.example.net 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1056_1: -------------------------------------------------------------------------------- 1 | 1056 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 16 8 | Content-Type: text/plain 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Hello world! 19 | -------------------------------------------------------------------------------- /test/combined_data/1057_1: -------------------------------------------------------------------------------- 1 | 1057 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | HEAD / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 16 8 | Content-Type: text/plain 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | -------------------------------------------------------------------------------- /test/combined_data/1059_1: -------------------------------------------------------------------------------- 1 | 1059 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | DELETE /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 16 8 | Content-Type: text/plain 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Hello world! 19 | -------------------------------------------------------------------------------- /test/combined_data/1060_1.https: -------------------------------------------------------------------------------- 1 | 1060 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | DELETE /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Location: /articles/123/ 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1060_2.https: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | DELETE /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 12 13 | Content-Location: /operation-result/cg71P90fpwNO 14 | 15 | Deleted OK 16 | -------------------------------------------------------------------------------- /test/combined_data/1061_1: -------------------------------------------------------------------------------- 1 | 1061 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT example.com HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 501 Not Implemented 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Sorry, what? 19 | -------------------------------------------------------------------------------- /test/combined_data/1063_1: -------------------------------------------------------------------------------- 1 | 1063 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept-Ranges: bytes 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1064_1: -------------------------------------------------------------------------------- 1 | 1064 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: chunked 13 | TE: chunked 14 | 15 | e 16 | Hello world! 17 | 18 | 0 19 | 20 | -------------------------------------------------------------------------------- /test/combined_data/1066_1: -------------------------------------------------------------------------------- 1 | 1066 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Expect: 100-Continue 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1066_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Transfer-Encoding: chunked 8 | Expect: 100-Continue 9 | 10 | 0 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Hello world! 19 | -------------------------------------------------------------------------------- /test/combined_data/1067_1: -------------------------------------------------------------------------------- 1 | 1067 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Max-Forwards: 42 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1068_3.https: -------------------------------------------------------------------------------- 1 | # This file specifically indicates that it is TLS, so it’s fine again. 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Referer: https://example.org/ 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1070_1: -------------------------------------------------------------------------------- 1 | 1070 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | 7 | ======== BEGIN OUTBOUND STREAM ======== 8 | HTTP/1.1 200 OK 9 | Date: Thu, 31 Dec 2015 18:26:56 GMT 10 | Content-Type: text/plain 11 | Content-Length: 14 12 | 13 | Hello world! 14 | -------------------------------------------------------------------------------- /test/combined_data/1071_1: -------------------------------------------------------------------------------- 1 | 1071 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.0 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 102 I'm working on it 10 | 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1072_1: -------------------------------------------------------------------------------- 1 | 1072 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 201 Created 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1073_1: -------------------------------------------------------------------------------- 1 | 1073 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 201 Created 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 12 17 | 18 | Created OK 19 | -------------------------------------------------------------------------------- /test/combined_data/1073_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 201 Created 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 12 17 | 18 | Created OK 19 | -------------------------------------------------------------------------------- /test/combined_data/1074_1: -------------------------------------------------------------------------------- 1 | 1074 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 202 Accepted 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 35 13 | 14 | We'll get back to you in a minute 15 | -------------------------------------------------------------------------------- /test/combined_data/1076_1: -------------------------------------------------------------------------------- 1 | 1076 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/123/comments/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 16 8 | Content-Type: text/plain 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 205 Reset Content 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Hello world! 19 | -------------------------------------------------------------------------------- /test/combined_data/1076_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/123/comments/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 16 8 | Content-Type: text/plain 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 205 Reset Content 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 0 17 | 18 | -------------------------------------------------------------------------------- /test/combined_data/1077_1: -------------------------------------------------------------------------------- 1 | 1077 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 300 Multiple Choices 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | Location: http://example.com/index.html 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1077_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | HEAD / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 300 Multiple Choices 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 205 12 | Location: http://example.com/index.html 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1078_1: -------------------------------------------------------------------------------- 1 | 1078 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 301 Moved Permanently 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 48 13 | 14 | It's over there now: http://example.com/about/ 15 | -------------------------------------------------------------------------------- /test/combined_data/1079_1: -------------------------------------------------------------------------------- 1 | 1079 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 302 Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 48 13 | 14 | It's over there now: http://example.com/about/ 15 | -------------------------------------------------------------------------------- /test/combined_data/1080_1: -------------------------------------------------------------------------------- 1 | 1080 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 303 See Other 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 43 13 | 14 | Check this out: http://example.com/about/ 15 | -------------------------------------------------------------------------------- /test/combined_data/1081_1: -------------------------------------------------------------------------------- 1 | 1081 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 303 See Other 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | Location: http://example.com/index.html 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1082_1: -------------------------------------------------------------------------------- 1 | 1082 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 305 Use Proxy 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Location: http://proxy.example.net/ 12 | Content-Type: text/plain 13 | Content-Length: 35 14 | 15 | Use the example.net proxy please. 16 | -------------------------------------------------------------------------------- /test/combined_data/1083_1: -------------------------------------------------------------------------------- 1 | 1083 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 306 Whatever 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1084_1: -------------------------------------------------------------------------------- 1 | 1084 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 307 Temporary Redirect 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 48 13 | 14 | It's over there now: http://example.com/about/ 15 | -------------------------------------------------------------------------------- /test/combined_data/1085_1.noscheme: -------------------------------------------------------------------------------- 1 | # In this case we don't know the scheme of the request. 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 302 Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Location: http://example.com/ 12 | Content-Length: 0 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1085_2: -------------------------------------------------------------------------------- 1 | 1085 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 302 Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Location: http://example.com/ 12 | Content-Length: 0 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1085_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 302 Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Location: https://example.com/ 12 | Content-Length: 0 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1085_4: -------------------------------------------------------------------------------- 1 | 1085 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 303 See Other 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Location: http://example.com/ 12 | Content-Length: 33 13 | Content-Type: text/plain 14 | 15 | Over there: http://example.com/ 16 | -------------------------------------------------------------------------------- /test/combined_data/1085_7: -------------------------------------------------------------------------------- 1 | 1085 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | DELETE /articles/123/comments/56/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 302 Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Location: http://example.com/articles/123/comments/56/ 12 | Content-Length: 0 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1086_1: -------------------------------------------------------------------------------- 1 | 1086 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS * HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 302 Found 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Length: 0 13 | Location: /about/ 14 | 15 | -------------------------------------------------------------------------------- /test/combined_data/1087_1: -------------------------------------------------------------------------------- 1 | 1087 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 404 Not Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | 13 | -------------------------------------------------------------------------------- /test/combined_data/1087_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | HEAD / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 404 Not Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 123 12 | 13 | -------------------------------------------------------------------------------- /test/combined_data/1088_1: -------------------------------------------------------------------------------- 1 | 1088 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 402 Payment Required 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 19 13 | 14 | Where's my money? 15 | -------------------------------------------------------------------------------- /test/combined_data/1089_1: -------------------------------------------------------------------------------- 1 | 1089 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 405 Method Not Allowed 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | 18 | Sorry, what? 19 | -------------------------------------------------------------------------------- /test/combined_data/1090_1: -------------------------------------------------------------------------------- 1 | 1090 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 406 Not Acceptable 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 21 13 | 14 | What are you doing? 15 | -------------------------------------------------------------------------------- /test/combined_data/1090_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: application/xml 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 406 Not Acceptable 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 17 14 | 15 | XML? Sorry, no. 16 | -------------------------------------------------------------------------------- /test/combined_data/1090_3: -------------------------------------------------------------------------------- 1 | 1090 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept-Something: foo, bar 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 406 Not Acceptable 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 21 14 | 15 | What are you doing? 16 | -------------------------------------------------------------------------------- /test/combined_data/1092_1: -------------------------------------------------------------------------------- 1 | 1092 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: application/xml 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 406 Not Acceptable 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Length: 0 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1093_1: -------------------------------------------------------------------------------- 1 | 1093 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: Python-urllib/2.7 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1093_2: -------------------------------------------------------------------------------- 1 | 1093 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: python-requests 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1093_3: -------------------------------------------------------------------------------- 1 | 1093 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: libcurl/1.2.3 (something) OpenSSL/4.5.6 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1093_4: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: MyProduct/1.0 python-requests 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1094_1: -------------------------------------------------------------------------------- 1 | 1094 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 408 Request Timeout 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Connection: upgrade 12 | Upgrade: h2c 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Soooo slooow 17 | -------------------------------------------------------------------------------- /test/combined_data/1095_1: -------------------------------------------------------------------------------- 1 | 1095 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 409 Conflict 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 9 13 | 14 | No way! 15 | -------------------------------------------------------------------------------- /test/combined_data/1096_1: -------------------------------------------------------------------------------- 1 | 1096 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 409 Conflict 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Length: 0 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1097_1: -------------------------------------------------------------------------------- 1 | 1097 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 411 Length Required 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 21 17 | 18 | Give me the number. 19 | -------------------------------------------------------------------------------- /test/combined_data/1097_2: -------------------------------------------------------------------------------- 1 | 1000 1007 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16.001 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 411 Length Required 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 21 17 | 18 | Give me the number. 19 | -------------------------------------------------------------------------------- /test/combined_data/1098_1: -------------------------------------------------------------------------------- 1 | 1098 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 413 Payload Too Large 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 26 13 | 14 | That's too much, I quit. 15 | -------------------------------------------------------------------------------- /test/combined_data/1098_2: -------------------------------------------------------------------------------- 1 | 1098 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 413 Payload Too Large 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 26 14 | 15 | That's too much, I quit. 16 | -------------------------------------------------------------------------------- /test/combined_data/1099_1: -------------------------------------------------------------------------------- 1 | 1099 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | DELETE /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 415 Unsupported Media Type 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | What's this? 15 | -------------------------------------------------------------------------------- /test/combined_data/1100_1: -------------------------------------------------------------------------------- 1 | 1100 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 417 Expectation Failed 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 27 17 | 18 | Do you expect me to talk? 19 | -------------------------------------------------------------------------------- /test/combined_data/1101_1: -------------------------------------------------------------------------------- 1 | 1101 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 426 Upgrade Required 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 23 13 | 14 | HTTP/1.1? How quaint. 15 | -------------------------------------------------------------------------------- /test/combined_data/1104_1: -------------------------------------------------------------------------------- 1 | 1104 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | FROBNICATE / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 501 Not Implemented 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | 13 | -------------------------------------------------------------------------------- /test/combined_data/1105_1: -------------------------------------------------------------------------------- 1 | 1105 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.2 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.2 505 HTTP Version Not Supported 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 32 13 | 14 | Sorry, I don't speak HTTP/1.2. 15 | -------------------------------------------------------------------------------- /test/combined_data/1106_1: -------------------------------------------------------------------------------- 1 | 1106 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.2 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 505 HTTP Version Not Supported 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | 13 | -------------------------------------------------------------------------------- /test/combined_data/1107_1: -------------------------------------------------------------------------------- 1 | 1107 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu Dec 31 18:26:56 2015 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1108_1: -------------------------------------------------------------------------------- 1 | 1108 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Fri, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1108_2: -------------------------------------------------------------------------------- 1 | 1108 2 | 3 | # This used to crash HTTPolice on Python 2.7. 4 | 5 | ======== BEGIN INBOUND STREAM ======== 6 | GET / HTTP/1.1 7 | Host: example.com 8 | User-Agent: demo 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Fri, 02 Aug 1015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1109_1: -------------------------------------------------------------------------------- 1 | 1109 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Sun, 13 Jan 2999 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1110_1: -------------------------------------------------------------------------------- 1 | 1110 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Content-Type: text/plain 11 | Content-Length: 14 12 | 13 | Hello world! 14 | -------------------------------------------------------------------------------- /test/combined_data/1110_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 500 Internal Server Error 10 | Content-Type: text/plain 11 | Content-Length: 7 12 | 13 | Oops. 14 | -------------------------------------------------------------------------------- /test/combined_data/1112_1: -------------------------------------------------------------------------------- 1 | 1112 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Location: http://example.com/?foo=%D0%B1%D0%B0%D1%80&baz=qux#xyzzy 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1113_1: -------------------------------------------------------------------------------- 1 | 1113 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Retry-After: 90 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1113_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 503 Service Unavailable 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Retry-After: Mon, 04 Jan 2016 09:00:00 GMT 12 | Content-Type: text/plain 13 | Content-Length: 39 14 | 15 | Come back after the holidays, please. 16 | -------------------------------------------------------------------------------- /test/combined_data/1116_1: -------------------------------------------------------------------------------- 1 | 1116 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept-Encoding: gzip;q=1, x-gzip;q=0.8, deflate;q=0.6 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1116_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept-Encoding: gzip, x-gzip, deflate 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1117_1: -------------------------------------------------------------------------------- 1 | 1117 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept-Language: ru, uk, be;q=0.8 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 406 Not Acceptable 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 22 14 | 15 | We don't speak that. 16 | -------------------------------------------------------------------------------- /test/combined_data/1117_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: text/html, text/xml;q=0.8, text/*;q=0.5 8 | Accept-Language: ru, uk, be;q=0.8 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 406 Not Acceptable 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 22 15 | 16 | We don't serve that. 17 | -------------------------------------------------------------------------------- /test/combined_data/1118_1: -------------------------------------------------------------------------------- 1 | 1118 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Last-Modified: Thu, 31 Dec 2015 18:29:30 GMT 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1118_2: -------------------------------------------------------------------------------- 1 | 1110 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Content-Type: text/plain 11 | Content-Length: 14 12 | Last-Modified: Thu, 31 Dec 2015 18:29:30 GMT 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1118_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Last-Modified: Thu, 31 Dec 2015 18:26:56 GMT 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1119_1: -------------------------------------------------------------------------------- 1 | 1119 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | ETag: W/"foo\123" 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1121_1: -------------------------------------------------------------------------------- 1 | 1121 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-None-Match: "MStLasWX9", W/"Q6ZSf89" 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | ETag: "Q6ZSf89" 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1121_2: -------------------------------------------------------------------------------- 1 | 1121 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-None-Match: * 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | ETag: "Q6ZSf89" 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1121_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-None-Match: "MStLasWX9", W/"Q6ZSf89" 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 304 Not Modified 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | ETag: "Q6ZSf89" 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1122_1: -------------------------------------------------------------------------------- 1 | 1122 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | If-Modified-Since: Wed, 30 Dec 2015 14:19:06 GMT 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | User-Agent: demo 10 | 11 | Hello world! 12 | 13 | ======== BEGIN OUTBOUND STREAM ======== 14 | HTTP/1.1 204 No Content 15 | Date: Thu, 31 Dec 2015 18:26:56 GMT 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1123_1: -------------------------------------------------------------------------------- 1 | 1123 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-Modified-Since: Thu, 31 Dec 2015 10:51:38 GMT 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Last-Modified: Thu, 31 Dec 2015 10:51:38 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1123_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-Modified-Since: Thu, 31 Dec 2015 10:51:38 GMT 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 304 Not Modified 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Last-Modified: Thu, 31 Dec 2015 10:51:38 GMT 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1124_1: -------------------------------------------------------------------------------- 1 | 1124 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-None-Match: "F2j9LATV4" 8 | Content-Type: text/plain 9 | Content-Length: 16 10 | 11 | Hello world! 12 | 13 | ======== BEGIN OUTBOUND STREAM ======== 14 | HTTP/1.1 304 Not Modified 15 | Date: Thu, 31 Dec 2015 18:26:56 GMT 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1125_1: -------------------------------------------------------------------------------- 1 | 1125 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 304 Not Modified 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | 12 | -------------------------------------------------------------------------------- /test/combined_data/1125_2: -------------------------------------------------------------------------------- 1 | 1125 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 412 Precondition Failed 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 32 17 | 18 | Something went terribly wrong. 19 | -------------------------------------------------------------------------------- /test/combined_data/1125_3: -------------------------------------------------------------------------------- 1 | 1125 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-Something: foo/bar 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 304 Not Modified 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | 13 | -------------------------------------------------------------------------------- /test/combined_data/1127_1: -------------------------------------------------------------------------------- 1 | 1127 1127 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-None-Match: "nZD77Pwe" 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 304 Not Modified 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-language: en 13 | ETag: "nZD77Pwe" 14 | Last-modified: Wed, 30 Dec 2015 16:00:59 GMT 15 | Content-Type: text/plain 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1127_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-None-Match: "nZD77Pwe" 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 304 Not Modified 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Last-modified: Wed, 30 Dec 2015 16:00:59 GMT 13 | ETag: W/"nZD77Pwe" 14 | 15 | -------------------------------------------------------------------------------- /test/combined_data/1127_3: -------------------------------------------------------------------------------- 1 | 1127 2 | 3 | # Make sure we don't try to parse JSON in 304 responses. 4 | 5 | ======== BEGIN INBOUND STREAM ======== 6 | GET /data/index.json HTTP/1.1 7 | Host: example.com 8 | User-Agent: demo 9 | If-None-Match: W/"foobar123" 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 304 Not Modified 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Content-Type: application/json 15 | 16 | -------------------------------------------------------------------------------- /test/combined_data/1129_1: -------------------------------------------------------------------------------- 1 | 1129 1130 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-Match: "EWZNv1K" 8 | Content-Length: 0 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 412 Precondition Failed 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 17 15 | 16 | Not gonna work. 17 | -------------------------------------------------------------------------------- /test/combined_data/1129_2: -------------------------------------------------------------------------------- 1 | 1125 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 412 Precondition Failed 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 17 14 | 15 | Not gonna work. 16 | -------------------------------------------------------------------------------- /test/combined_data/1130_1: -------------------------------------------------------------------------------- 1 | 1130 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-Modified-Since: Tue, 29 Dec 2015 22:08:31 GMT 8 | Content-Length: 0 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1131_1: -------------------------------------------------------------------------------- 1 | 1131 1131 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | HEAD / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-None-Match: W/"pcWDgwEd" 8 | If-Modified-Since: Wed, 30 Dec 2015 23:05:57 GMT 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 304 Not Modified 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1132_1: -------------------------------------------------------------------------------- 1 | 1132 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 14 9 | Range: bytes=2-15 10 | 11 | llo world! 12 | 13 | ======== BEGIN OUTBOUND STREAM ======== 14 | HTTP/1.1 200 OK 15 | Date: Thu, 31 Dec 2015 18:26:56 GMT 16 | Content-Type: text/plain 17 | Content-Length: 18 18 | 19 | Article updated. 20 | -------------------------------------------------------------------------------- /test/combined_data/1133_1: -------------------------------------------------------------------------------- 1 | 1133 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=10-7 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1133_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=10- 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1134_1: -------------------------------------------------------------------------------- 1 | 1134 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | If-Range: "XiniAPDL6" 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1135_1: -------------------------------------------------------------------------------- 1 | 1135 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=0-10 8 | If-Range: W/"XiniAPDL6" 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1135_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=0-10 8 | If-Range: Thu, 31 Dec 2015 00:39:40 GMT 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Last-Modified: Thu, 31 Dec 2015 00:39:40 GMT 14 | Content-Type: text/plain 15 | Content-Length: 14 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1136_1: -------------------------------------------------------------------------------- 1 | 1136 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 206 Partial Content 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 12 13 | Content-Range: bytes 2-13/14 14 | 15 | llo world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1138_1: -------------------------------------------------------------------------------- 1 | 1138 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=2-13 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 206 Partial Content 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 12 14 | 15 | llo world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1145_1: -------------------------------------------------------------------------------- 1 | 1145 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=2-13 8 | If-Range: "FJNz68ecU" 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 206 Partial Content 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | ETag: "cgrYaiQfFKr" 14 | Content-Range: bytes 2-13/14 15 | Content-Length: 12 16 | 17 | llo world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1146_1: -------------------------------------------------------------------------------- 1 | 1146 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=2-13 8 | If-Range: Wed, 30 Dec 2015 23:01:21 GMT 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 206 Partial Content 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Range: bytes 2-13/14 15 | Content-Length: 12 16 | 17 | llo world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1147_1: -------------------------------------------------------------------------------- 1 | 1147 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 12 13 | Content-Range: bytes 2-13/14 14 | 15 | llo world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1148_1: -------------------------------------------------------------------------------- 1 | 1148 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=2-13 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 206 Partial Content 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Range: bytes 13-2/14 14 | Content-Length: 12 15 | 16 | llo world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1148_2: -------------------------------------------------------------------------------- 1 | 1148 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=2-13 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 206 Partial Content 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Range: bytes 2-13/13 14 | Content-Length: 12 15 | 16 | llo world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1149_1: -------------------------------------------------------------------------------- 1 | 1149 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 416 Range Not Satisfiable 10 | Content-Range: bytes */14 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 26 14 | 15 | We can't help with this. 16 | -------------------------------------------------------------------------------- /test/combined_data/1150_1: -------------------------------------------------------------------------------- 1 | 1150 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=102-113 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 416 Range Not Satisfiable 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 27 14 | 15 | That's way out of bounds. 16 | -------------------------------------------------------------------------------- /test/combined_data/1150_2: -------------------------------------------------------------------------------- 1 | # RFC 7233 section 4.4 only recommends this for byte-range requests. 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: pages=102-113 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 416 Range Not Satisfiable 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 27 14 | 15 | That's way out of bounds. 16 | -------------------------------------------------------------------------------- /test/combined_data/1151_1: -------------------------------------------------------------------------------- 1 | 1151 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: text/plain, text/html, 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1151_2: -------------------------------------------------------------------------------- 1 | 1151 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Via: 1.1 foo, , 1.1 bar 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1152_1: -------------------------------------------------------------------------------- 1 | 1152 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: must-revalidate 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1152_2: -------------------------------------------------------------------------------- 1 | 1152 1157 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: must-revalidate=yes 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1153_1: -------------------------------------------------------------------------------- 1 | 1153 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Cache-Control: must-revalidate 12 | Cache-Control:only-if-cached 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1153_2: -------------------------------------------------------------------------------- 1 | 1153 1156 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Cache-Control: must-revalidate 12 | Cache-Control:Min-Fresh 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1154_1: -------------------------------------------------------------------------------- 1 | 1154 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: Private=X-Secret-Info 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1154_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: private="X-Secret-Info, X-More-Info", max-age=3600 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1154_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: private 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1155_1: -------------------------------------------------------------------------------- 1 | 1155 1155 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | Cache-Control: Min-Fresh="60",Max-Age="900" 7 | User-Agent: demo 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1156_1: -------------------------------------------------------------------------------- 1 | 1156 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: min-fresh 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1156_2.https: -------------------------------------------------------------------------------- 1 | 1156 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Strict-Transport-Security: max-age; includeSubDomains 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1157_1: -------------------------------------------------------------------------------- 1 | 1157 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: only-if-cached=yes 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1157_2.https: -------------------------------------------------------------------------------- 1 | 1157 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Strict-Transport-Security: max-age=31536000; includeSubDomains=true 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1158_1: -------------------------------------------------------------------------------- 1 | 1158 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: max-stale=any 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1158_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: max-stale 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1158_3.https: -------------------------------------------------------------------------------- 1 | 1158 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Strict-Transport-Security: max-age=forever; includeSubDomains 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1158_4: -------------------------------------------------------------------------------- 1 | 1158 1158 1158 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Forwarded: for="fe80::c5cc:dcfa:782a:a232";by="example.net";proto=""; 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1158_5.https: -------------------------------------------------------------------------------- 1 | 1158 1158 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: h2=":8000"; ma="3600.0", h2=":8001"; ma=1800;persist=yes 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1159_1: -------------------------------------------------------------------------------- 1 | 1158 1159 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: No-cache=":" 8 | Pragma: no-cache 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1160_1: -------------------------------------------------------------------------------- 1 | 1160 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Pragma: no-cache, something-else 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1161_1: -------------------------------------------------------------------------------- 1 | 1161 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: no-cache, max-age=0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1161_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: no-cache, max-age=0 8 | Pragma: no-cache 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1161_3: -------------------------------------------------------------------------------- 1 | # Notice 1161 does not apply to responses. 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: no-cache, max-age=0 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1162_1: -------------------------------------------------------------------------------- 1 | 1162 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: no-cache 14 | Pragma: no-cache 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1163_1: -------------------------------------------------------------------------------- 1 | 1163 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Warning: 321 - "some outlandish warning" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1166_1: -------------------------------------------------------------------------------- 1 | 1166 1183 1169 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=600 14 | Warning: 110 - "Response is Stale" 15 | Warning: 111 - "Revalidation Failed" 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1167_1: -------------------------------------------------------------------------------- 1 | 1167 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 600 Party Time 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1168_1: -------------------------------------------------------------------------------- 1 | 1168 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=9000 14 | Age: 3021 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1168_2: -------------------------------------------------------------------------------- 1 | 1168 1000 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=9000 14 | Age: 3 hours 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1169_1: -------------------------------------------------------------------------------- 1 | 1169 1166 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=600 14 | Warning: 112 - "Disconnected Operation" 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1171_2: -------------------------------------------------------------------------------- 1 | 1171 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | Cache-Control: no-cache 9 | Pragma: no-cache 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 200 OK 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Server: MyHTTPd/3.1 (Windows NT 4.0) 15 | Allow: OPTIONS, GET, HEAD, POST 16 | Content-Length: 0 17 | 18 | -------------------------------------------------------------------------------- /test/combined_data/1171_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | SUPER-GET /articles/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: no-cache 8 | Pragma: no-cache 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1172_1: -------------------------------------------------------------------------------- 1 | 1172 1168 1178 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 14 17 | Age: 773 18 | 19 | Hello world! 20 | -------------------------------------------------------------------------------- /test/combined_data/1180_1: -------------------------------------------------------------------------------- 1 | 1180 1178 1168 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Via: 1.1 megacacher 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | Last-Modified: Mon, 16 Nov 2015 00:15:03 GMT 15 | Age: 109026 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1180_2: -------------------------------------------------------------------------------- 1 | 1178 1168 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Via: 1.1 megacacher 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | Last-Modified: Mon, 16 Nov 2015 00:15:03 GMT 15 | Age: 4904 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1188_4: -------------------------------------------------------------------------------- 1 | 1183 1168 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=600, stale-while-revalidate=60 14 | Age: 646 15 | Warning: 110 - "Response is Stale" 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1188_5: -------------------------------------------------------------------------------- 1 | 1183 1168 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=600, stale-if-error=60 14 | Age: 620 15 | Warning: 110 - "Response is Stale" 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1191_1: -------------------------------------------------------------------------------- 1 | 1236 1191 1190 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 203 Non-Authoritative Information 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Via: 1.1 proxy.example.net 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1193_1: -------------------------------------------------------------------------------- 1 | 1193 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: max-stale, min-fresh=60 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1193_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Cache-Control: max-stale=0, min-fresh=60 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1193_3: -------------------------------------------------------------------------------- 1 | 1193 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: no-store, private="X-Secret-Header" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1193_4: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=3600, no-cache="X-Foo, X-Bar" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1193_5: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=0,no-cache 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1193_6: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: s-maxage=3600, private="X-Foo, X-Bar" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1194_1: -------------------------------------------------------------------------------- 1 | 1194 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 21 13 | 14 | Not so fast, agent! 15 | -------------------------------------------------------------------------------- /test/combined_data/1195_1: -------------------------------------------------------------------------------- 1 | 1236 1195 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 407 Proxy Authentication Required 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 21 13 | 14 | Not so fast, agent! 15 | -------------------------------------------------------------------------------- /test/combined_data/1196_1: -------------------------------------------------------------------------------- 1 | 1196 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | WWW-Authenticate: Basic realm=example.com 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1196_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | WWW-Authenticate: Basic realm="example.com", Negotiate 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1197_1: -------------------------------------------------------------------------------- 1 | 1197 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Base: http://example.com/ 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1198_1: -------------------------------------------------------------------------------- 1 | 1198 1011 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: HTTP/3 8 | Connection: Upgrade 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 101 Switching Protocols 12 | Upgrade: HTTP/3 13 | Connection: Upgrade 14 | connection: close 15 | 16 | nkjqfnknrknwefne 17 | ewnwe 18 | djknwkjnkn -------------------------------------------------------------------------------- /test/combined_data/1199_1: -------------------------------------------------------------------------------- 1 | 1199 1012 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT example.com:80 HTTP/1.1 5 | Host: example.com:80 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Connection: close 12 | 13 | mlkqmelk 14 | qwlkfnlnlkf 15 | 16 | -------------------------------------------------------------------------------- /test/combined_data/1201_1: -------------------------------------------------------------------------------- 1 | 1201 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 428 Precondition Required 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Length: 0 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1202_1: -------------------------------------------------------------------------------- 1 | 1202 1178 1168 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 429 Too Many Requests 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 20 13 | Age: 306 14 | 15 | Enhance your calm! 16 | -------------------------------------------------------------------------------- /test/combined_data/1203_1: -------------------------------------------------------------------------------- 1 | 1203 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 429 Too Many Requests 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | Retry-After: 3600 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1204_1: -------------------------------------------------------------------------------- 1 | 1204 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 511 Network Authentication Required 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | 13 | -------------------------------------------------------------------------------- /test/combined_data/1205_1: -------------------------------------------------------------------------------- 1 | 1205 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 308 Permanent Redirect 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 48 13 | 14 | It's over there now: http://example.com/about/ 15 | -------------------------------------------------------------------------------- /test/combined_data/1206_1: -------------------------------------------------------------------------------- 1 | 1206 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 23 13 | WWW-Authenticate: Basic 14 | 15 | Halt! Who goes there? 16 | -------------------------------------------------------------------------------- /test/combined_data/1208_1: -------------------------------------------------------------------------------- 1 | 1208 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 23 13 | WWW-Authenticate: Basic Realm="example.com", Charset="Latin-1" 14 | 15 | Halt! Who goes there? 16 | -------------------------------------------------------------------------------- /test/combined_data/1209_1: -------------------------------------------------------------------------------- 1 | 1209 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Basic name=foo, password=bar 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1209_2: -------------------------------------------------------------------------------- 1 | 1209 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Basic 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1210_1: -------------------------------------------------------------------------------- 1 | 1210 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Basic helloworld 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1211_1: -------------------------------------------------------------------------------- 1 | 1211 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Proxy-Authorization: Basic Zm9vYmFy 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1212_1: -------------------------------------------------------------------------------- 1 | 1212 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Basic Zm9vOmJhcgo= 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1214_1: -------------------------------------------------------------------------------- 1 | 1214 1213 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PATCH /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: application/json 8 | Content-Length: 16 9 | 10 | {"foo": 123} 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 16 17 | 18 | Patch applied. 19 | -------------------------------------------------------------------------------- /test/combined_data/1216_1: -------------------------------------------------------------------------------- 1 | 1216 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Length: 0 13 | Allow: OPTIONS, GET, HEAD, PUT, PATCH, DELETE 14 | 15 | -------------------------------------------------------------------------------- /test/combined_data/1216_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Length: 0 13 | Allow: OPTIONS, GET, HEAD, PUT, PATCH, DELETE 14 | Accept-Patch: text/x-diff 15 | 16 | -------------------------------------------------------------------------------- /test/combined_data/1217_1: -------------------------------------------------------------------------------- 1 | 1217 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Accept-Patch: text/x-diff 13 | Allow: GET,HEAD,OPTIONS 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1217_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Accept-Patch: text/x-diff 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1218_1.https: -------------------------------------------------------------------------------- 1 | 1218 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Strict-Transport-Security: includeSubDomains 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1218_2.https: -------------------------------------------------------------------------------- 1 | 1000 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Strict-Transport-Security: max-age=15768000, includeSubDomains 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1219_1.https: -------------------------------------------------------------------------------- 1 | 1219 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Strict-Transport-Security: max-age=0;includeSubdomains 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1221_1: -------------------------------------------------------------------------------- 1 | 1221 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Strict-Transport-Security: max-age=15768000 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1221_2.noscheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Strict-Transport-Security: max-age=15768000 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1222_1: -------------------------------------------------------------------------------- 1 | 1222 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 32 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1223_1: -------------------------------------------------------------------------------- 1 | 1223 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 24:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1224_1: -------------------------------------------------------------------------------- 1 | 1224 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1225_1: -------------------------------------------------------------------------------- 1 | 1225 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: ; rel=previous; media=screen; rel=next 14 | Link: 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1225_2: -------------------------------------------------------------------------------- 1 | 1151 1151 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: ; rel=previous, 14 | Link: ; rel=next, 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1225_3: -------------------------------------------------------------------------------- 1 | 1225 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: ;rel=self;type="text/html";type="text/html" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1225_4: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: <#me>; rel=author; attr=value1; attr=value2 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1226_1: -------------------------------------------------------------------------------- 1 | 1226 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: ; Rel="prev"; Rev="next" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1228_1: -------------------------------------------------------------------------------- 1 | 1228 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: h2 8 | Connection: upgrade 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1230_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1230_1 -------------------------------------------------------------------------------- /test/combined_data/1231_1: -------------------------------------------------------------------------------- 1 | 1231 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: h2c 8 | Connection: upgrade 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1232_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1232_1 -------------------------------------------------------------------------------- /test/combined_data/1232_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1232_2 -------------------------------------------------------------------------------- /test/combined_data/1233_1.https: -------------------------------------------------------------------------------- 1 | 1233 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: h2c 8 | HTTP2-Settings: AAQAAP__ 9 | Connection: upgrade, http2-settings 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 200 OK 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Content-Type: text/plain 15 | Content-Length: 14 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1233_2.https: -------------------------------------------------------------------------------- 1 | 1233 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Upgrade: h2c 14 | Connection: upgrade 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1234_1: -------------------------------------------------------------------------------- 1 | 1234 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: h2c 8 | HTTP2-Settings: AAQAAP// 9 | Connection: upgrade, http2-settings 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 200 OK 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Content-Type: text/plain 15 | Content-Length: 14 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1234_2: -------------------------------------------------------------------------------- 1 | 1234 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Upgrade: h2c 8 | HTTP2-Settings: AAQAAP__AA== 9 | Connection: upgrade, http2-settings 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 200 OK 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Content-Type: text/plain 15 | Content-Length: 14 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1235_1: -------------------------------------------------------------------------------- 1 | 1235 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Vary: accept-encoding,host 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1238_1: -------------------------------------------------------------------------------- 1 | 1193 1238 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: public,s-maxage=3600 14 | Cache-Control:no-store 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1238_2: -------------------------------------------------------------------------------- 1 | 1238 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: max-age=3600, no-cache 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1238_3: -------------------------------------------------------------------------------- 1 | 1238 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: s-maxage=3600, private="" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1242_1: -------------------------------------------------------------------------------- 1 | 1242 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 451 Unavailable For Legal Reasons 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Link: ; Rel="blocked-by" 12 | Content-Length: 0 13 | 14 | -------------------------------------------------------------------------------- /test/combined_data/1243_1: -------------------------------------------------------------------------------- 1 | 1243 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 451 Unavailable For Legal Reasons 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 25 13 | 14 | Nein! Das ist verboten! 15 | -------------------------------------------------------------------------------- /test/combined_data/1247_1: -------------------------------------------------------------------------------- 1 | 1247 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /files/123/download/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/octet-stream 12 | Content-Length: 14 13 | Content-Disposition: attachment; filename=file123.dat; filename=file123.dat 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1248_1: -------------------------------------------------------------------------------- 1 | 1248 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /files/123/download/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/octet-stream 12 | Content-Length: 14 13 | Content-Disposition: attachment; filename=%D1%84%D0%B0%D0%B9%D0%BB.dat 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1249_1: -------------------------------------------------------------------------------- 1 | 1249 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /files/123/download/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/octet-stream 12 | Content-Length: 14 13 | Content-Disposition: attachment; filename="My \"test\" file.txt" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1250_1: -------------------------------------------------------------------------------- 1 | 1250 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /files/123/download/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/octet-stream 12 | Content-Length: 14 13 | Content-Disposition: attachment; FILENAME="файл123.dat" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1251_1: -------------------------------------------------------------------------------- 1 | 1251 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /files/123/download/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/octet-stream 12 | Content-Length: 14 13 | Content-Disposition: attachment; Filename*=UTF-8''%D1%84%D0%B0%D0%B9%D0%BB.dat 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1254_1: -------------------------------------------------------------------------------- 1 | 1254 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /files/123/download/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/octet-stream 12 | Content-Length: 14 13 | Content-Disposition: attachment; filename=file.dat; filename*=utf-8'ru'%F4%E0%E9%EB.dat 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1256_1.https: -------------------------------------------------------------------------------- 1 | 1256 1256 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: http%2f1.1="gw40.example.com:443", http%2F1%2e1="gw41.example.com:443" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1256_2.https: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: http%2F1.1="balancer4-eu.example.com:443" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1257_1.https: -------------------------------------------------------------------------------- 1 | 1257 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: h2="balancer4-eu.example.com:8000,balancer5-eu.example.com:8000" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1259_2.https: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: h2=":8000"; ma="3600", h2=":8001"; ma=1800;persist=1 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1261_1: -------------------------------------------------------------------------------- 1 | 1261 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Bearer WEsXmf7kreFSNdx 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1261_2.noscheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Bearer WEsXmf7kreFSNdx 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1262_1.https: -------------------------------------------------------------------------------- 1 | 1262 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Bearer token=WEsXmf7kreFSNdx 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1262_2.https: -------------------------------------------------------------------------------- 1 | 1262 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: Bearer 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1263_1: -------------------------------------------------------------------------------- 1 | 1263 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Bearer realm="secret data" 12 | Content-Type: text/plain 13 | Content-Length: 35 14 | 15 | Please authenticate with a token. 16 | -------------------------------------------------------------------------------- /test/combined_data/1264_1.https: -------------------------------------------------------------------------------- 1 | 1264 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Bearer secret_data 12 | Content-Type: text/plain 13 | Content-Length: 35 14 | 15 | Please authenticate with a token. 16 | -------------------------------------------------------------------------------- /test/combined_data/1264_2.https: -------------------------------------------------------------------------------- 1 | 1264 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Bearer 12 | Content-Type: text/plain 13 | Content-Length: 35 14 | 15 | Please authenticate with a token. 16 | -------------------------------------------------------------------------------- /test/combined_data/1265_1.https: -------------------------------------------------------------------------------- 1 | 1265 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Bearer realm="secret docs", foo="bar" , realm="secret area" 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1265_2.https: -------------------------------------------------------------------------------- 1 | 1265 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Bearer scope=foo, scope=bar 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1266_2.https: -------------------------------------------------------------------------------- 1 | 1266 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Bearer scope="" 12 | Content-Type: text/plain 13 | Content-Length: 35 14 | 15 | Please authenticate with a token. 16 | -------------------------------------------------------------------------------- /test/combined_data/1273_1: -------------------------------------------------------------------------------- 1 | 1273 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Basic foobar 12 | Content-Type: text/plain 13 | Content-Length: 22 14 | 15 | Please authenticate. 16 | -------------------------------------------------------------------------------- /test/combined_data/1273_2: -------------------------------------------------------------------------------- 1 | 1206 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | WWW-Authenticate: Basic 12 | Content-Type: text/plain 13 | Content-Length: 22 14 | 15 | Please authenticate. 16 | -------------------------------------------------------------------------------- /test/combined_data/1274_1: -------------------------------------------------------------------------------- 1 | 1274 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Authorization: tWAWDJPsQ4 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1276_1: -------------------------------------------------------------------------------- 1 | 1276 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: text/plain, text/*, */* 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1276_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: text/plain, text/*;q=0.6, */*;q=0.1 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1276_3: -------------------------------------------------------------------------------- 1 | 1276 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept-Encoding: gzip, deflate, * 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1276_4: -------------------------------------------------------------------------------- 1 | 1276 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: video/*, */* 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1276_5: -------------------------------------------------------------------------------- 1 | 1276 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: application/* 8 | Accept: application/json 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1276_6: -------------------------------------------------------------------------------- 1 | 1276 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: text/plain;charset=utf-8;q=1.0;foo=bar, */*;q=1.0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1277_1: -------------------------------------------------------------------------------- 1 | 1277 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | X-Foo: bar 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1277_2: -------------------------------------------------------------------------------- 1 | 1277 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | x-foo: bar 14 | x-foo: baz 15 | x-quux: xyzzy 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1277_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | X-Forwarded-For: 10.0.14.53 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | X-frame-options: deny 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1280_1: -------------------------------------------------------------------------------- 1 | 1280 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET /data.json HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: application/json;charset=UTF-8 12 | Content-Length: 20 13 | 14 | {"hello": "world"} 15 | -------------------------------------------------------------------------------- /test/combined_data/1281_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1281_1 -------------------------------------------------------------------------------- /test/combined_data/1281_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1281_2 -------------------------------------------------------------------------------- /test/combined_data/1282_1: -------------------------------------------------------------------------------- 1 | 1282 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: plain/text 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1282_2: -------------------------------------------------------------------------------- 1 | 1282 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: application/xml, plain/text;q=0.5 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1282_3: -------------------------------------------------------------------------------- 1 | 1282 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | Allow: GET, HEAD, PUT, PATCH, DELETE, OPTIONS 13 | Accept-Patch: text/json 14 | 15 | -------------------------------------------------------------------------------- /test/combined_data/1282_4: -------------------------------------------------------------------------------- 1 | 1282 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Length: 0 12 | Allow: GET, HEAD, PUT, DELETE, OPTIONS 13 | Link: ;rel=payment, ;rel=help;type="plain/text" 14 | 15 | -------------------------------------------------------------------------------- /test/combined_data/1283_1.https: -------------------------------------------------------------------------------- 1 | 1283 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Alt-Used: balancer4-eu.example.com:8000 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 421 Misdirected Request 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 43 14 | 15 | No idea what you're talking about, sorry. 16 | -------------------------------------------------------------------------------- /test/combined_data/1284_1: -------------------------------------------------------------------------------- 1 | 1284 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 202 Accepted 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Length: 0 16 | 17 | -------------------------------------------------------------------------------- /test/combined_data/1287_1: -------------------------------------------------------------------------------- 1 | 1287 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Prefer: respond-async 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1288_1: -------------------------------------------------------------------------------- 1 | 1288 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Prefer: Return="Minimal" 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1288_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | Prefer: return=minimal 10 | 11 | Hello world! 12 | 13 | ======== BEGIN OUTBOUND STREAM ======== 14 | HTTP/1.1 204 No Content 15 | Date: Thu, 31 Dec 2015 18:26:56 GMT 16 | Content-Type: text/plain 17 | 18 | -------------------------------------------------------------------------------- /test/combined_data/1291_1: -------------------------------------------------------------------------------- 1 | 1291 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Prefer: take-it-easy 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | Preference-Applied: take-it-easy 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1291_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Prefer: take-it-easy 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | Preference-Applied: take-it-easy 15 | Vary: prefer 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1291_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Prefer: take-it-easy 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | Preference-Applied: take-it-easy 15 | Vary: * 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/1295_1: -------------------------------------------------------------------------------- 1 | 1295 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | Get / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1297_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Forwarded: for=2.92.0.60, for=2.93.17.180, for=49.141.62.82 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1299_1: -------------------------------------------------------------------------------- 1 | 1299 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Accept: text/plain, text/x.supertext;features="cool, wow" 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1299_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/x.supertext; comment="here, a comma isn't a problem" 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/1299_4.https: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Strict-Transport-Security: max-age=3600;comment="no problem here, either" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1299_5: -------------------------------------------------------------------------------- 1 | 1299 1299 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Via: 1.1 foo (what is this, some proxy I guess?) 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | Via: 1.1 bar (yeah, definitely some sort of proxy) 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1300_1: -------------------------------------------------------------------------------- 1 | 1300 1300 1299 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/x.supertext; features="wow; cool" 12 | Accept-Patch: text/x.supertext; features="patch, wow; cool" 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1301_1.https: -------------------------------------------------------------------------------- 1 | 1301 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: private, immutable 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1301_2.https: -------------------------------------------------------------------------------- 1 | 1301 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: private, immutable, max-age=0 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1301_3.https: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: private, immutable, max-age=7776000 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1301_4.https: -------------------------------------------------------------------------------- 1 | 1301 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Expires: Thu, 31 Dec 2015 18:26:56 GMT 14 | Cache-Control: private, immutable 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1301_5.https: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: immutable 14 | Expires: Sat, 31 Dec 2016 18:26:56 GMT 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/1302_1: -------------------------------------------------------------------------------- 1 | 1302 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: immutable, max-age=7776000 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1303_1.https: -------------------------------------------------------------------------------- 1 | 1025 1303 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.0 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.0 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Cache-Control: immutable, max-age=3600 13 | Connection: close 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1305_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/1305_1 -------------------------------------------------------------------------------- /test/combined_data/1306_1: -------------------------------------------------------------------------------- 1 | 1306 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.0 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Transfer-Encoding: chunked 13 | 14 | e 15 | Hello world! 16 | 17 | 0 18 | 19 | -------------------------------------------------------------------------------- /test/combined_data/1307_1: -------------------------------------------------------------------------------- 1 | 1307 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: ; Rel=edit-form; Title=Editor 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1308_1: -------------------------------------------------------------------------------- 1 | 1308 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: ; Rel=latest-version; HRefLang="en" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/1309_1: -------------------------------------------------------------------------------- 1 | 1309 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Link: 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/absolute_form_1: -------------------------------------------------------------------------------- 1 | 1236 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET http://example.com/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Via: 1.1 proxy.example.net 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/allow_none: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 405 Method Not Allowed 10 | Allow: 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 43 14 | 15 | Resource temporarily disabled. Try later. 16 | -------------------------------------------------------------------------------- /test/combined_data/alt_svc_clear: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: clear 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/asterisk_form: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | OPTIONS * HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Length: 0 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 200 OK 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Length: 14 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/authority_form: -------------------------------------------------------------------------------- 1 | 1012 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | CONNECT example.com:80 HTTP/1.1 5 | Host: example.com:80 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 204 No Content 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | 12 | asfr 13 | qrm3l4mt234t34t 14 | 334 -------------------------------------------------------------------------------- /test/combined_data/bad_charset: -------------------------------------------------------------------------------- 1 | # This used to crash HTTPolice. 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain; charset="КОИ-8" 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/bad_content_encoding: -------------------------------------------------------------------------------- 1 | 1000 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Content-Encoding: ??? 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/chunked_empty: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | POST / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Transfer-Encoding: chunked 8 | 9 | 0 10 | 11 | ======== BEGIN OUTBOUND STREAM ======== 12 | HTTP/1.1 200 OK 13 | Date: Thu, 31 Dec 2015 18:26:56 GMT 14 | Content-Type: text/plain 15 | Content-Length: 14 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/content_encoding_br: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/content_encoding_br -------------------------------------------------------------------------------- /test/combined_data/content_encoding_deflate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/content_encoding_deflate -------------------------------------------------------------------------------- /test/combined_data/content_encoding_gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/content_encoding_gzip -------------------------------------------------------------------------------- /test/combined_data/cp1251: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/cp1251 -------------------------------------------------------------------------------- /test/combined_data/funny_alt_svc: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Alt-Svc: http%2F1.1="foo:443";ma=3600;persist=1 , h2=":8000";foo=bar 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/funny_status_code: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/funny_status_code -------------------------------------------------------------------------------- /test/combined_data/fünný nãme: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/large_binary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/large_binary -------------------------------------------------------------------------------- /test/combined_data/localhost: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: localhost 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 302 Found 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 18 13 | Location: http://localhost/index.html 14 | 15 | See /index.html. 16 | -------------------------------------------------------------------------------- /test/combined_data/obs_text_in_directive: -------------------------------------------------------------------------------- 1 | 1158 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | Cache-Control: private="Мой-Мега-Заголовок" 14 | 15 | Hello world! 16 | -------------------------------------------------------------------------------- /test/combined_data/partial_content: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Range: bytes=2-13 8 | 9 | ======== BEGIN OUTBOUND STREAM ======== 10 | HTTP/1.1 206 Partial Content 11 | Date: Thu, 31 Dec 2015 18:26:56 GMT 12 | Content-Type: text/plain 13 | Content-Range: bytes 2-13/14 14 | Content-Length: 12 15 | 16 | llo world! 17 | -------------------------------------------------------------------------------- /test/combined_data/put: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | PUT /articles/123/ HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | Content-Type: text/plain 8 | Content-Length: 16 9 | 10 | Hello world! 11 | 12 | ======== BEGIN OUTBOUND STREAM ======== 13 | HTTP/1.1 200 OK 14 | Date: Thu, 31 Dec 2015 18:26:56 GMT 15 | Content-Type: text/plain 16 | Content-Length: 18 17 | 18 | Article updated. 19 | -------------------------------------------------------------------------------- /test/combined_data/request_gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/request_gzip -------------------------------------------------------------------------------- /test/combined_data/showcase.https: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/showcase.https -------------------------------------------------------------------------------- /test/combined_data/silence1: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | HTTPolice-Silence: 1063 7 | User-Agent: demo 8 | Accept-Ranges: bytes 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/plain 14 | Content-Length: 14 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/silence2: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 401 Unauthorized 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | WWW-Authenticate: Basic realm=example.com 14 | HTTPolice-Silence: 1196 15 | 16 | Hello world! 17 | -------------------------------------------------------------------------------- /test/combined_data/silence3: -------------------------------------------------------------------------------- 1 | 1039 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | User-Agent: demo 6 | Httpolice-silence: 1031, 1033 resp, 1039 7 | Httpolice-silence: 8 | Httpolice-silence: 1168 Resp , 1178 Resp 9 | 10 | ======== BEGIN OUTBOUND STREAM ======== 11 | HTTP/1.1 200 OK 12 | Date: Thu, 31 Dec 2015 18:26:56 GMT 13 | Content-Type: text/xml 14 | Content-Length: 14 15 | Age: 2019 16 | 17 | Hello world! 18 | -------------------------------------------------------------------------------- /test/combined_data/simple_head: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | HEAD / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | 13 | -------------------------------------------------------------------------------- /test/combined_data/simple_ok: -------------------------------------------------------------------------------- 1 | 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / HTTP/1.1 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | HTTP/1.1 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/transfer_encoding_deflate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/transfer_encoding_deflate -------------------------------------------------------------------------------- /test/combined_data/transfer_encoding_gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/transfer_encoding_gzip -------------------------------------------------------------------------------- /test/combined_data/unknown_charset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/unknown_charset -------------------------------------------------------------------------------- /test/combined_data/unparseable: -------------------------------------------------------------------------------- 1 | 1006 1007 1008 1009 1010 2 | 3 | ======== BEGIN INBOUND STREAM ======== 4 | GET / 5 | Host: example.com 6 | User-Agent: demo 7 | 8 | ======== BEGIN OUTBOUND STREAM ======== 9 | 200 OK 10 | Date: Thu, 31 Dec 2015 18:26:56 GMT 11 | Content-Type: text/plain 12 | Content-Length: 14 13 | 14 | Hello world! 15 | -------------------------------------------------------------------------------- /test/combined_data/upgrade_to_h2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/upgrade_to_h2c -------------------------------------------------------------------------------- /test/combined_data/upgrade_to_h2c_close: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/combined_data/upgrade_to_h2c_close -------------------------------------------------------------------------------- /test/misc_data/bad.har: -------------------------------------------------------------------------------- 1 | {"hello": "world"} 2 | -------------------------------------------------------------------------------- /test/tcpflow_data/httpbin/1470133183-023.022.014.018-00080-172.016.000.100-53222-0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/tcpflow_data/httpbin/1470133183-023.022.014.018-00080-172.016.000.100-53222-0 -------------------------------------------------------------------------------- /test/tcpflow_data/multiple_connections/1470135434-023.022.014.018-00080-172.016.000.100-53384-0: -------------------------------------------------------------------------------- 1 | HTTP/1.1 400 BAD REQUEST 2 | Server: nginx 3 | Date: Tue, 02 Aug 2016 10:57:14 GMT 4 | Content-Type: text/html; charset=utf-8 5 | Content-Length: 0 6 | Connection: keep-alive 7 | Access-Control-Allow-Origin: * 8 | Access-Control-Allow-Credentials: true 9 | 10 | -------------------------------------------------------------------------------- /test/tcpflow_data/multiple_connections/1470135434-172.016.000.100-53384-023.022.014.018-00080-0: -------------------------------------------------------------------------------- 1 | GET /status/400 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpflow_data/multiple_connections/1470135436-172.016.000.100-57422-054.175.219.008-00080-0: -------------------------------------------------------------------------------- 1 | GET /status/401 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpflow_data/multiple_connections/1470135437-054.175.219.008-00080-172.016.000.100-57422-0: -------------------------------------------------------------------------------- 1 | HTTP/1.1 401 UNAUTHORIZED 2 | Server: nginx 3 | Date: Tue, 02 Aug 2016 10:57:17 GMT 4 | Content-Length: 0 5 | Connection: keep-alive 6 | Access-Control-Allow-Origin: * 7 | WWW-Authenticate: Basic realm="Fake Realm" 8 | Access-Control-Allow-Credentials: true 9 | 10 | -------------------------------------------------------------------------------- /test/tcpflow_data/multiple_connections/1470135439-054.175.219.008-00080-172.016.000.100-57424-0: -------------------------------------------------------------------------------- 1 | HTTP/1.1 402 PAYMENT REQUIRED 2 | Server: nginx 3 | Date: Tue, 02 Aug 2016 10:57:19 GMT 4 | Content-Length: 17 5 | Connection: keep-alive 6 | Access-Control-Allow-Origin: * 7 | x-more-info: http://vimeo.com/22053820 8 | Access-Control-Allow-Credentials: true 9 | 10 | Fuck you, pay me! -------------------------------------------------------------------------------- /test/tcpflow_data/multiple_connections/1470135439-172.016.000.100-57424-054.175.219.008-00080-0: -------------------------------------------------------------------------------- 1 | GET /status/402 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488154981-010.025.103.004-53306-010.220.002.014-00080-0: -------------------------------------------------------------------------------- 1 | GET /04 HTTP/1.1 2 | Host: example.org 3 | User-Agent: demo 4 | Comment: this one was actually sent much later than connection establishment 5 | Comment: for some reason 6 | 7 | GET /05 HTTP/1.1 8 | Host: example.org 9 | User-Agent: demo 10 | 11 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488154987-010.025.103.004-51002-010.220.001.009-00080-0: -------------------------------------------------------------------------------- 1 | GET /01 HTTP/1.1 2 | Host: example.com 3 | User-Agent: demo 4 | 5 | GET /02 HTTP/1.1 6 | Host: example.com 7 | User-Agent: demo 8 | 9 | GET /07 HTTP/1.1 10 | Host: example.com 11 | Date: Mon, 27 Feb 2017 00:27:57 GMT 12 | User-Agent: demo 13 | Comment: wow! this is one of those rare requests that have a Date header 14 | 15 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488155040-010.025.103.004-30002-010.220.002.014-00080-0: -------------------------------------------------------------------------------- 1 | GET /03 HTTP/1.1 2 | Host: something.example 3 | User-Agent: demo 4 | 5 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488155040-010.220.002.014-00080-010.025.103.004-30002-0: -------------------------------------------------------------------------------- 1 | Ha ha !! You thought I was an HTTP server !! 2 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488155160-010.025.103.004-47657-010.220.001.201-00080-0: -------------------------------------------------------------------------------- 1 | GET /06 HTTP/1.1 2 | Host: example.net 3 | User-Agent: demo 4 | 5 | GET /08 HTTP/1.1 6 | Host: example.net 7 | User-Agent: demo 8 | 9 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488155165-010.220.001.201-00080-010.025.103.004-47657-0: -------------------------------------------------------------------------------- 1 | HTTP/1.1 500 Internal Server Error 2 | Content-Type: text/plain 3 | Content-Length: 56 4 | 5 | A server error is allowed to not have a Date header. 6 | 7 | HTTP/1.1 200 OK 8 | Date: Mon, 27 Feb 2017 00:28:02 GMT 9 | Content-Type: text/plain 10 | Content-Length: 14 11 | 12 | Hello world! 13 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488155280-010.025.103.004-39321-010.220.001.204-47836-0: -------------------------------------------------------------------------------- 1 | And now for something completely different! 2 | 3 | This is not an HTTP/1.x connection at all, but it still has a timestamp 4 | in the filename, which allows us to position the 1279 complaint box 5 | in the right place in the report. 6 | -------------------------------------------------------------------------------- /test/tcpflow_data/rearrange/1488155281-010.220.001.204-47836-010.025.103.004-39321-0: -------------------------------------------------------------------------------- 1 | Some unknown protocol here . . . 2 | -------------------------------------------------------------------------------- /test/tcpflow_data/request_timeout/1470133592-127.000.000.001-08123-127.000.000.001-49820-0: -------------------------------------------------------------------------------- 1 | HTTP/1.1 408 Request Timeout 2 | Date: Tue, 02 Aug 2016 10:25:16 GMT 3 | Content-Length: 33 4 | Connection: close 5 | 6 | How long am I supposed to wait? 7 | -------------------------------------------------------------------------------- /test/tcpflow_data/response_timeout/1470135215-172.016.000.100-53380-023.022.014.018-00080-0: -------------------------------------------------------------------------------- 1 | GET /delay/20 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpflow_data/source_port_reused/1470134049-172.016.000.100-15061-054.175.219.008-00080-0: -------------------------------------------------------------------------------- 1 | GET /get HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpflow_data/source_port_reused/1470134125-172.016.000.100-15061-054.175.219.008-00080-0: -------------------------------------------------------------------------------- 1 | GET /encoding/utf8 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpflow_data/tls/1470133812-023.022.014.018-00443-172.016.000.100-40032-0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/tcpflow_data/tls/1470133812-023.022.014.018-00443-172.016.000.100-40032-0 -------------------------------------------------------------------------------- /test/tcpflow_data/tls/1470133812-172.016.000.100-40032-023.022.014.018-00443-0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/tcpflow_data/tls/1470133812-172.016.000.100-40032-023.022.014.018-00443-0 -------------------------------------------------------------------------------- /test/tcpflow_data/uwsgi_protocol/1517476550-127.000.000.001-40957-127.000.000.001-51368-0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/tcpflow_data/uwsgi_protocol/1517476550-127.000.000.001-40957-127.000.000.001-51368-0 -------------------------------------------------------------------------------- /test/tcpflow_data/uwsgi_protocol/1517476550-127.000.000.001-51368-127.000.000.001-40957-0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/tcpflow_data/uwsgi_protocol/1517476550-127.000.000.001-51368-127.000.000.001-40957-0 -------------------------------------------------------------------------------- /test/tcpflow_data/uwsgi_protocol/alerts.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/tcpflow_data/uwsgi_protocol/alerts.txt -------------------------------------------------------------------------------- /test/tcpflow_data/wrong_filenames/172.016.000.100.57382-054.175.219.008.00080: -------------------------------------------------------------------------------- 1 | GET /get HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpick_data/httpbin/tcpick_000001_172.16.0.100_54.175.219.8_http.clnt.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vfaronov/httpolice/0008cb746798eb8a7981d57f16f0b91b87e1a8d6/test/tcpick_data/httpbin/tcpick_000001_172.16.0.100_54.175.219.8_http.clnt.dat -------------------------------------------------------------------------------- /test/tcpick_data/multiple_connections/tcpick_000001_172.16.0.100_54.175.219.8_http.clnt.dat: -------------------------------------------------------------------------------- 1 | HTTP/1.1 400 BAD REQUEST 2 | Server: nginx 3 | Date: Tue, 02 Aug 2016 10:58:58 GMT 4 | Content-Type: text/html; charset=utf-8 5 | Content-Length: 0 6 | Connection: keep-alive 7 | Access-Control-Allow-Origin: * 8 | Access-Control-Allow-Credentials: true 9 | 10 | -------------------------------------------------------------------------------- /test/tcpick_data/multiple_connections/tcpick_000001_172.16.0.100_54.175.219.8_http.serv.dat: -------------------------------------------------------------------------------- 1 | GET /status/400 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpick_data/multiple_connections/tcpick_000002_172.16.0.100_23.22.14.18_http.clnt.dat: -------------------------------------------------------------------------------- 1 | HTTP/1.1 401 UNAUTHORIZED 2 | Server: nginx 3 | Date: Tue, 02 Aug 2016 10:59:01 GMT 4 | Content-Length: 0 5 | Connection: keep-alive 6 | Access-Control-Allow-Origin: * 7 | WWW-Authenticate: Basic realm="Fake Realm" 8 | Access-Control-Allow-Credentials: true 9 | 10 | -------------------------------------------------------------------------------- /test/tcpick_data/multiple_connections/tcpick_000002_172.16.0.100_23.22.14.18_http.serv.dat: -------------------------------------------------------------------------------- 1 | GET /status/401 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpick_data/multiple_connections/tcpick_000003_172.16.0.100_54.175.219.8_http.clnt.dat: -------------------------------------------------------------------------------- 1 | HTTP/1.1 402 PAYMENT REQUIRED 2 | Server: nginx 3 | Date: Tue, 02 Aug 2016 10:59:03 GMT 4 | Content-Length: 17 5 | Connection: keep-alive 6 | Access-Control-Allow-Origin: * 7 | x-more-info: http://vimeo.com/22053820 8 | Access-Control-Allow-Credentials: true 9 | 10 | Fuck you, pay me! -------------------------------------------------------------------------------- /test/tcpick_data/multiple_connections/tcpick_000003_172.16.0.100_54.175.219.8_http.serv.dat: -------------------------------------------------------------------------------- 1 | GET /status/402 HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /test/tcpick_data/wrong_filenames/tcpick_172.16.0.100_23.22.14.18_http.serv.dat: -------------------------------------------------------------------------------- 1 | GET /get HTTP/1.1 2 | Host: httpbin.org 3 | User-Agent: curl/7.47.0 4 | Accept: */* 5 | 6 | -------------------------------------------------------------------------------- /tools/afl/harness.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | import httpolice.cli 5 | 6 | if __name__ == '__main__': 7 | args = httpolice.cli.parse_args(sys.argv) 8 | import afl 9 | while afl.loop(100): 10 | httpolice.cli.run_cli(args, sys.stdout, sys.stderr) 11 | # As suggested by python-afl docs. 12 | os._exit(0) # pylint: disable=protected-access 13 | -------------------------------------------------------------------------------- /tools/check_rst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | test -e setup.py || { echo 'must run from repo root' >&2; exit 1; } 6 | 7 | for fn in *.rst; do 8 | rst2html.py --halt=warning "$fn" >/dev/null 9 | done 10 | -------------------------------------------------------------------------------- /tools/minimum_requires.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Install the lowest versions of requirements permitted by HTTPolice, 4 | # so we can ensure that these lower bounds are up-to-date. 5 | 6 | set -e 7 | 8 | test -e setup.py || { echo 'must run from repo root' >&2; exit 1; } 9 | 10 | grep -Eo '[A-Za-z0-9_.]+ >= [A-Za-z0-9_.]+' setup.py | \ 11 | sed -e 's/>=/==/g' >minimum_requirements.txt 12 | pip install -r minimum_requirements.txt 13 | -------------------------------------------------------------------------------- /tools/requirements.in: -------------------------------------------------------------------------------- 1 | pip-tools 2 | check-manifest 3 | pylint 4 | pytest 5 | pytest-cov 6 | docutils 7 | wheel 8 | twine 9 | 10 | # Pin down the versions of Sphinx and Alabaster as used on Read the Docs 11 | # (you can see them in the generated page footers). 12 | # This will have to be checked and synchronized from time to time. 13 | # Not sure if good idea. 14 | Sphinx==1.8.4 15 | alabaster==0.7.12 16 | --------------------------------------------------------------------------------