diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go index 78be73c36e..7dda516f6a 100644 --- a/internal/minipipeline/observation.go +++ b/internal/minipipeline/observation.go @@ -472,7 +472,7 @@ func (c *WebObservationsContainer) IngestHTTPRoundTripEvents(evs ...*model.Archi if ev.Failure == nil { obs.HTTPResponseStatusCode = optional.Some(ev.Response.Code) obs.HTTPResponseBodyLength = optional.Some(int64(len(ev.Response.Body))) - obs.HTTPResponseBodyIsTruncated = optional.Some(ev.Request.BodyIsTruncated) + obs.HTTPResponseBodyIsTruncated = optional.Some(ev.Response.BodyIsTruncated) obs.HTTPResponseHeadersKeys = utilsExtractHTTPHeaderKeys(ev.Response.Headers) obs.HTTPResponseTitle = optional.Some(measurexlite.WebGetTitle(string(ev.Response.Body))) obs.HTTPResponseLocation = utilsExtractHTTPLocation(ev.Response.Headers) diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/analysis.json new file mode 100644 index 0000000000..82a2803011 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/analysis.json @@ -0,0 +1,419 @@ +{ + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + }, + "DNSLookupSuccess": [ + 1, + 2, + 3 + ], + "DNSLookupSuccessWithInvalidAddresses": [], + "DNSLookupSuccessWithValidAddress": [ + 1, + 2, + 3 + ], + "DNSLookupSuccessWithBogonAddresses": [], + "DNSLookupSuccessWithInvalidAddressesClassic": [], + "DNSLookupSuccessWithValidAddressClassic": [ + 1, + 2, + 3 + ], + "DNSLookupUnexpectedFailure": [], + "DNSLookupUnexplainedFailure": [], + "DNSExperimentFailure": null, + "DNSLookupExpectedFailure": [], + "DNSLookupExpectedSuccess": [], + "TCPConnectExpectedFailure": [], + "TCPConnectUnexpectedFailure": [], + "TCPConnectUnexpectedFailureDuringWebFetch": [], + "TCPConnectUnexpectedFailureDuringConnectivityCheck": [], + "TCPConnectUnexplainedFailure": [], + "TCPConnectUnexplainedFailureDuringWebFetch": [], + "TCPConnectUnexplainedFailureDuringConnectivityCheck": [], + "TLSHandshakeExpectedFailure": [], + "TLSHandshakeUnexpectedFailure": [], + "TLSHandshakeUnexpectedFailureDuringWebFetch": [], + "TLSHandshakeUnexpectedFailureDuringConnectivityCheck": [], + "TLSHandshakeUnexplainedFailure": [], + "TLSHandshakeUnexplainedFailureDuringWebFetch": [], + "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], + "HTTPRoundTripUnexpectedFailure": [ + 4 + ], + "HTTPRoundTripUnexplainedFailure": [], + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithoutControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, + "HTTPFinalResponseDiffBodyProportionFactor": null, + "HTTPFinalResponseDiffStatusCodeMatch": null, + "HTTPFinalResponseDiffTitleDifferentLongWords": null, + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "172.67.144.64:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://httpbin.com/broken-redirect-http", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.67.144.64:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "httpbin.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ] +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/analysis_classic.json new file mode 100644 index 0000000000..42654cc734 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/analysis_classic.json @@ -0,0 +1,157 @@ +{ + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + }, + "DNSLookupSuccess": [ + 2 + ], + "DNSLookupSuccessWithInvalidAddresses": [], + "DNSLookupSuccessWithValidAddress": [ + 2 + ], + "DNSLookupSuccessWithBogonAddresses": [], + "DNSLookupSuccessWithInvalidAddressesClassic": [], + "DNSLookupSuccessWithValidAddressClassic": [ + 2 + ], + "DNSLookupUnexpectedFailure": [], + "DNSLookupUnexplainedFailure": [], + "DNSExperimentFailure": null, + "DNSLookupExpectedFailure": [], + "DNSLookupExpectedSuccess": [], + "TCPConnectExpectedFailure": [], + "TCPConnectUnexpectedFailure": [], + "TCPConnectUnexpectedFailureDuringWebFetch": [], + "TCPConnectUnexpectedFailureDuringConnectivityCheck": [], + "TCPConnectUnexplainedFailure": [], + "TCPConnectUnexplainedFailureDuringWebFetch": [], + "TCPConnectUnexplainedFailureDuringConnectivityCheck": [], + "TLSHandshakeExpectedFailure": [], + "TLSHandshakeUnexpectedFailure": [], + "TLSHandshakeUnexpectedFailureDuringWebFetch": [], + "TLSHandshakeUnexpectedFailureDuringConnectivityCheck": [], + "TLSHandshakeUnexplainedFailure": [], + "TLSHandshakeUnexplainedFailureDuringWebFetch": [], + "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], + "HTTPRoundTripUnexpectedFailure": [ + 4 + ], + "HTTPRoundTripUnexplainedFailure": [], + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithoutControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, + "HTTPFinalResponseDiffBodyProportionFactor": null, + "HTTPFinalResponseDiffStatusCodeMatch": null, + "HTTPFinalResponseDiffTitleDifferentLongWords": null, + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "172.67.144.64:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://httpbin.com/broken-redirect-http", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ] +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/measurement.json new file mode 100644 index 0000000000..5ce785e845 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/measurement.json @@ -0,0 +1,797 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://httpbin.com/broken-redirect-http", + "measurement_start_time": "2024-01-31 17:31:24", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.21.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "172.67.144.64:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.034216, + "t": 0.040035, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.040126, + "t": 0.040126, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "address": "172.67.144.64:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.03429, + "t": 0.040515, + "transaction_id": 5, + "tags": [ + "depth=0", + "fetch_body=false" + ] + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.04652, + "t": 0.04652, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "address": "172.67.144.64:80", + "failure": null, + "num_bytes": 97, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.04656, + "t": 0.04656, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "address": "172.67.144.64:443", + "failure": null, + "num_bytes": 2263, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.050028, + "t": 0.050028, + "transaction_id": 5, + "tags": [ + "depth=0", + "fetch_body=false" + ] + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000387, + "t": 0.000387, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.007343, + "t": 0.012751, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.012783, + "t": 0.012783, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 279, + "operation": "write", + "proto": "tcp", + "t0": 0.013008, + "t": 0.013018, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.013021, + "t": 0.021182, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.021306, + "t": 0.021307, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 820, + "operation": "read", + "proto": "tcp", + "t0": 0.021308, + "t": 0.021659, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.02257, + "t": 0.022578, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.022581, + "t": 0.022581, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 383, + "operation": "write", + "proto": "tcp", + "t0": 0.022638, + "t": 0.022682, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 193, + "operation": "read", + "proto": "tcp", + "t0": 0.022656, + "t": 0.028385, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 383, + "operation": "write", + "proto": "tcp", + "t0": 0.028419, + "t": 0.028426, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 166, + "operation": "read", + "proto": "tcp", + "t0": 0.028407, + "t": 0.034011, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.034053, + "t": 0.034053, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.034058, + "t": 0.034091, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + } + ], + "queries": [ + { + "answers": [ + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "9.9.9.9", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.quad9.net", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001514, + "t": 0.007053, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "9.9.9.9", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.007343, + "t": 0.012751, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "9.9.9.9:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbzCCAlegAwIBAgIVAJjEUcADxbpt57Xo6RHhwDf19OayMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTI0MDEzMTE2MzEyM1oXDTI0MDEzMTE4MzEyM1owMDEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEWMBQGA1UEAxMNZG5zLnF1YWQ5Lm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoqPAF9g8KOfeRq0F0d18UvioE/iMaY2S39rmVMi2RphgCzEp6b64HVls5I+r2SsuVtGxYEMtJcbEKxJHud7cFvc6XZB2Tfg9CQais95ZXRpdPA8k1QMluysTkkeAHkWnOoSPNSv8Rlqb2DCg23J1Ui/YjsESrVI6ZDTnrCrRORmOLmjYYL9MEt7cS+W8kGd8VVnXUWVqGM7zNvNsq4NsMWCXYLqOBBKGKBBjiH3Y8QR+DdxX+rzpCjxf907GGtqAUXByZnV/z6+wRvtnwL5GllMgM/2Sm3hbpt267bAFioi03ATtIU/Xo12phXYawUc96UUjuoLtsMQIV0/HzU4w8CAwEAAaOBkDCBjTAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUemB1qJEBFKs9fVpRUfM+xneI+1UwHwYDVR0jBBgwFoAUrSjVsgAsaORM/jWbbpzy8IEe2eIwGAYDVR0RBBEwD4INZG5zLnF1YWQ5Lm5ldDANBgkqhkiG9w0BAQsFAAOCAQEAW73dk0xSmPABhKkTwFUdRR2I39ZrRyjPC8stH1LeFZ7IuP+wgqUWCCfCDZGezcq96pwx1Cg3RRvAR/yreyS+uO685gUfvxYgl9aZRdwlYOsUokTigR9nlBa7iSzPZQOBu7Rubm/b0zGsoKMaDg1YC+I5MhuSvVpMHgt30uyP6zpUP4uklAYnn9qBhdGR+3vRPpl9r44XN6+RUXcNhkTiv7vL6dE0OEaXauR+4IYO3m7uLqBpiwGy55gUgF9wzqbB+FIeAiGRkHvTD4fG5pjvV6a+R9iBmTaF4FpPR5f/osyCD8bUv3i5Mur30yregcMf3XK5LW4AUlbyr4LMUY8vMA==", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUJpxoiqjCLkWiBj+l8piJc5zAQWswDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjQwMTMwMTczMTIzWhcNMjQwMjAxMTczMTIzWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtnyWPucy1drRoNhv2JJBTq7IlTW865sxT1MpklRxcZc5wgT/jGo7ytHkaJMQ14ptFJ6hIFjThceHv1zLWquYWhZfa12YqI4At3/GMyDBaPgypF8V6S5rmNcCslpWxfwP/VBZL4Gy4Oiy2FPu+5IkV9/efmbGf6jXomPKubX+JZ9NpZfWkZBUzSD8DWWgskOGI8EeV6ryLR4tB8oGy83CahEALTAyh7juDlyEdzI/WhySp0fhbSHm09aQCEpbvMhimSZjU5jjpIZ8wrHpWW3KFP6dFzavdnhCN4l20To8dP5Kg1WoY0txQ5QBo27zMt824HcOQPa/uxFdc0jpWw1bsCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK0o1bIALGjkTP41m26c8vCBHtniMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCcc0R+fmhFy70/XaF1v6OBTEyb9BM0Lws0/IeTbZWD9asZ1+QlVdsmg7iodhx9ANqlp8syTLiQbe/0bjnLIfbc2AJG0I7fO/CbAkMLv9GfsqI2bb/AxqvijtDnayORFYx48RWGF1h3IHTYvi1i6XLWRGcwjvrDFDdel8rsI6Pd1fqQO7VXo7Bz3uy8ngHt/TjUgG2PQ+a3x0TduqZ+i8UFBBOUw1Wkc6/50ewgNW9Om1YeFAX2IUcWTUQ+57xpfpprEa9TIG2/0EXe0R7qoCqymevb4z60Jgzb23s7Eh81jTGFhorKAlOy3Y6pgwnTIvpM9IEDprdVXhEJb4BtIS1V", + "format": "base64" + } + ], + "server_name": "dns.quad9.net", + "t0": 0.012783, + "t": 0.022581, + "tags": [ + "depth=0" + ], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000394, + "t": 0.000394, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 29, + "operation": "write", + "proto": "udp", + "t0": 0.000823, + "t": 0.001162, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 29, + "operation": "write", + "proto": "udp", + "t0": 0.000902, + "t": 0.001195, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 29, + "operation": "read", + "proto": "udp", + "t0": 0.001241, + "t": 0.006061, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 56, + "operation": "read", + "proto": "udp", + "t0": 0.001182, + "t": 0.007126, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.007514, + "t": 0.007514, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 13335, + "as_org_name": "Cloudflare Inc", + "answer_type": "A", + "ipv4": "172.67.144.64", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "httpbin.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000384, + "t": 0.007263, + "tags": [ + "depth=0" + ], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "httpbin.com", + "query_type": "AAAA", + "raw_response": "BCCBAAABAAAAAAAAB2h0dHBiaW4DY29tAAAcAAE=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000527, + "t": 0.006065, + "tags": [ + "depth=0" + ], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 13335, + "as_org_name": "Cloudflare Inc", + "answer_type": "A", + "ipv4": "172.67.144.64", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "httpbin.com", + "query_type": "A", + "raw_response": "/GaBAAABAAEAAAAAB2h0dHBiaW4DY29tAAABAAEHaHR0cGJpbgNjb20AAAEAAQAADhAABKxDkEA=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000527, + "t": 0.007131, + "tags": [ + "depth=0" + ], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 13335, + "as_org_name": "Cloudflare Inc", + "answer_type": "A", + "ipv4": "172.67.144.64", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "httpbin.com", + "query_type": "A", + "raw_response": "1amBAAABAAEAAAAAB2h0dHBiaW4DY29tAAABAAEHaHR0cGJpbgNjb20AAAEAAQAADhAABKxDkEA=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000524, + "t": 0.028411, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "httpbin.com", + "query_type": "AAAA", + "raw_response": "/gKBAAABAAAAAAAAB2h0dHBiaW4DY29tAAAcAAE=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000558, + "t": 0.03404, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + } + ], + "requests": [ + { + "network": "tcp", + "address": "172.67.144.64:80", + "failure": "http_invalid_redirect_location_host", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "httpbin.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.3" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "httpbin.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.3" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://httpbin.com/broken-redirect-http" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 302, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Wed, 31 Jan 2024 17:31:24 GMT" + ], + [ + "Location", + "http://" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Wed, 31 Jan 2024 17:31:24 GMT", + "Location": "http://" + } + }, + "t0": 0.040126, + "t": 0.04652, + "tags": [ + "depth=0", + "fetch_body=true" + ], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "172.67.144.64", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.034216, + "t": 0.040035, + "tags": [ + "depth=0", + "fetch_body=true" + ], + "transaction_id": 4 + }, + { + "ip": "172.67.144.64", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.03429, + "t": 0.040515, + "tags": [ + "depth=0", + "fetch_body=false" + ], + "transaction_id": 5 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "172.67.144.64:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDajCCAlKgAwIBAgIUWVKJ3cHP1UHjz819/2Gu8nkApH8wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjQwMTMxMTYzMTIzWhcNMjQwMTMxMTgzMTIzWjAuMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRQwEgYDVQQDEwtodHRwYmluLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoqPAF9g8KOfeRq0F0d18UvioE/iMaY2S39rmVMi2RphgCzEp6b64HVls5I+r2SsuVtGxYEMtJcbEKxJHud7cFvc6XZB2Tfg9CQais95ZXRpdPA8k1QMluysTkkeAHkWnOoSPNSv8Rlqb2DCg23J1Ui/YjsESrVI6ZDTnrCrRORmOLmjYYL9MEt7cS+W8kGd8VVnXUWVqGM7zNvNsq4NsMWCXYLqOBBKGKBBjiH3Y8QR+DdxX+rzpCjxf907GGtqAUXByZnV/z6+wRvtnwL5GllMgM/2Sm3hbpt267bAFioi03ATtIU/Xo12phXYawUc96UUjuoLtsMQIV0/HzU4w8CAwEAAaOBjjCBizAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUemB1qJEBFKs9fVpRUfM+xneI+1UwHwYDVR0jBBgwFoAUrSjVsgAsaORM/jWbbpzy8IEe2eIwFgYDVR0RBA8wDYILaHR0cGJpbi5jb20wDQYJKoZIhvcNAQELBQADggEBADWohSPF+QCAGaSZKV0aRojwOUs4Mq+KKAIftJg1jn2Zb0+CU2nMqx4XwLMq7nkDmoOAke46mixnILCw/VJwFOZPXbzntAqMXhlRV2ueoLrsLmwUEyzUH1Tl67Hlm9zDzveIabxkquvew2WgwoLjZsfwjCtHHqs5VNP5vqyPIFNwdYar2Al7BqdPlT0fAkZXF2lYh1NWrNxwC1CwTUER/2i7Q0LeeS7YpZJLcRkLMZ7s/6doCCS2aBWqzrLmwxtSiUffXMA0E+5Niz+jk7Ba/MnIadqPQpGbB3VsBu9R5mijmClR9ILGZjtS7fZz9jhttHnafJeQZRkFthEuK5trhXU=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUJpxoiqjCLkWiBj+l8piJc5zAQWswDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjQwMTMwMTczMTIzWhcNMjQwMjAxMTczMTIzWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtnyWPucy1drRoNhv2JJBTq7IlTW865sxT1MpklRxcZc5wgT/jGo7ytHkaJMQ14ptFJ6hIFjThceHv1zLWquYWhZfa12YqI4At3/GMyDBaPgypF8V6S5rmNcCslpWxfwP/VBZL4Gy4Oiy2FPu+5IkV9/efmbGf6jXomPKubX+JZ9NpZfWkZBUzSD8DWWgskOGI8EeV6ryLR4tB8oGy83CahEALTAyh7juDlyEdzI/WhySp0fhbSHm09aQCEpbvMhimSZjU5jjpIZ8wrHpWW3KFP6dFzavdnhCN4l20To8dP5Kg1WoY0txQ5QBo27zMt824HcOQPa/uxFdc0jpWw1bsCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK0o1bIALGjkTP41m26c8vCBHtniMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCcc0R+fmhFy70/XaF1v6OBTEyb9BM0Lws0/IeTbZWD9asZ1+QlVdsmg7iodhx9ANqlp8syTLiQbe/0bjnLIfbc2AJG0I7fO/CbAkMLv9GfsqI2bb/AxqvijtDnayORFYx48RWGF1h3IHTYvi1i6XLWRGcwjvrDFDdel8rsI6Pd1fqQO7VXo7Bz3uy8ngHt/TjUgG2PQ+a3x0TduqZ+i8UFBBOUw1Wkc6/50ewgNW9Om1YeFAX2IUcWTUQ+57xpfpprEa9TIG2/0EXe0R7qoCqymevb4z60Jgzb23s7Eh81jTGFhorKAlOy3Y6pgwnTIvpM9IEDprdVXhEJb4BtIS1V", + "format": "base64" + } + ], + "server_name": "httpbin.com", + "t0": 0.040529, + "t": 0.049996, + "tags": [ + "depth=0", + "fetch_body=false" + ], + "tls_version": "TLSv1.3", + "transaction_id": 5 + } + ], + "x_control_request": { + "http_request": "http://httpbin.com/broken-redirect-http", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.3" + ] + }, + "tcp_connect": [ + "172.67.144.64:443", + "172.67.144.64:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "172.67.144.64:443": { + "status": true, + "failure": null + }, + "172.67.144.64:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "172.67.144.64:443": { + "server_name": "httpbin.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "172.67.144.64" + ] + }, + "ip_info": { + "172.67.144.64": { + "asn": 13335, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:172.67.144.64 Flags:7}]", + "t": 0.034135 + }, + { + "msg": "conn 172.67.144.64:80: granted permission: true", + "t": 0.040043 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": "http_invalid_redirect_location_host", + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_proportion": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.507707, + "test_start_time": "2024-01-31 17:31:24", + "test_version": "0.5.28" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/observations.json new file mode 100644 index 0000000000..ef0525a313 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/observations.json @@ -0,0 +1,374 @@ +{ + "DNSLookupFailures": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ], + "DNSLookupSuccesses": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ], + "KnownTCPEndpoints": { + "4": { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "172.67.144.64:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://httpbin.com/broken-redirect-http", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "5": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.67.144.64:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "httpbin.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + }, + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/observations_classic.json new file mode 100644 index 0000000000..9a687f6bff --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTP/observations_classic.json @@ -0,0 +1,117 @@ +{ + "DNSLookupFailures": [], + "DNSLookupSuccesses": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ], + "KnownTCPEndpoints": { + "4": { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "172.67.144.64:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://httpbin.com/broken-redirect-http", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + }, + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/analysis.json new file mode 100644 index 0000000000..0942fad5af --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/analysis.json @@ -0,0 +1,367 @@ +{ + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + }, + "DNSLookupSuccess": [ + 1, + 2, + 3 + ], + "DNSLookupSuccessWithInvalidAddresses": [], + "DNSLookupSuccessWithValidAddress": [ + 1, + 2, + 3 + ], + "DNSLookupSuccessWithBogonAddresses": [], + "DNSLookupSuccessWithInvalidAddressesClassic": [], + "DNSLookupSuccessWithValidAddressClassic": [ + 1, + 2, + 3 + ], + "DNSLookupUnexpectedFailure": [], + "DNSLookupUnexplainedFailure": [], + "DNSExperimentFailure": null, + "DNSLookupExpectedFailure": [], + "DNSLookupExpectedSuccess": [], + "TCPConnectExpectedFailure": [], + "TCPConnectUnexpectedFailure": [], + "TCPConnectUnexpectedFailureDuringWebFetch": [], + "TCPConnectUnexpectedFailureDuringConnectivityCheck": [], + "TCPConnectUnexplainedFailure": [], + "TCPConnectUnexplainedFailureDuringWebFetch": [], + "TCPConnectUnexplainedFailureDuringConnectivityCheck": [], + "TLSHandshakeExpectedFailure": [], + "TLSHandshakeUnexpectedFailure": [], + "TLSHandshakeUnexpectedFailureDuringWebFetch": [], + "TLSHandshakeUnexpectedFailureDuringConnectivityCheck": [], + "TLSHandshakeUnexplainedFailure": [], + "TLSHandshakeUnexplainedFailureDuringWebFetch": [], + "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], + "HTTPRoundTripUnexpectedFailure": [ + 4 + ], + "HTTPRoundTripUnexplainedFailure": [], + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithoutControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, + "HTTPFinalResponseDiffBodyProportionFactor": null, + "HTTPFinalResponseDiffStatusCodeMatch": null, + "HTTPFinalResponseDiffTitleDifferentLongWords": null, + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.67.144.64:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "httpbin.com", + "HTTPRequestURL": "https://httpbin.com/broken-redirect-https", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ] +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/analysis_classic.json new file mode 100644 index 0000000000..7f31d5c873 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/analysis_classic.json @@ -0,0 +1,158 @@ +{ + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + }, + "DNSLookupSuccess": [ + 2 + ], + "DNSLookupSuccessWithInvalidAddresses": [], + "DNSLookupSuccessWithValidAddress": [ + 2, + 3 + ], + "DNSLookupSuccessWithBogonAddresses": [], + "DNSLookupSuccessWithInvalidAddressesClassic": [], + "DNSLookupSuccessWithValidAddressClassic": [ + 2 + ], + "DNSLookupUnexpectedFailure": [], + "DNSLookupUnexplainedFailure": [], + "DNSExperimentFailure": null, + "DNSLookupExpectedFailure": [], + "DNSLookupExpectedSuccess": [], + "TCPConnectExpectedFailure": [], + "TCPConnectUnexpectedFailure": [], + "TCPConnectUnexpectedFailureDuringWebFetch": [], + "TCPConnectUnexpectedFailureDuringConnectivityCheck": [], + "TCPConnectUnexplainedFailure": [], + "TCPConnectUnexplainedFailureDuringWebFetch": [], + "TCPConnectUnexplainedFailureDuringConnectivityCheck": [], + "TLSHandshakeExpectedFailure": [], + "TLSHandshakeUnexpectedFailure": [], + "TLSHandshakeUnexpectedFailureDuringWebFetch": [], + "TLSHandshakeUnexpectedFailureDuringConnectivityCheck": [], + "TLSHandshakeUnexplainedFailure": [], + "TLSHandshakeUnexplainedFailureDuringWebFetch": [], + "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], + "HTTPRoundTripUnexpectedFailure": [ + 4 + ], + "HTTPRoundTripUnexplainedFailure": [], + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithoutControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, + "HTTPFinalResponseDiffBodyProportionFactor": null, + "HTTPFinalResponseDiffStatusCodeMatch": null, + "HTTPFinalResponseDiffTitleDifferentLongWords": null, + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.67.144.64:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "httpbin.com", + "HTTPRequestURL": "https://httpbin.com/broken-redirect-https", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ] +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/measurement.json new file mode 100644 index 0000000000..01563932ae --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/measurement.json @@ -0,0 +1,746 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://httpbin.com/broken-redirect-https", + "measurement_start_time": "2024-01-31 17:31:30", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.21.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "172.67.144.64:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.033618, + "t": 0.039403, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.048494, + "t": 0.048494, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.05454, + "t": 0.05454, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "address": "172.67.144.64:443", + "failure": null, + "num_bytes": 2385, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.054575, + "t": 0.054575, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000392, + "t": 0.000392, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.007648, + "t": 0.013752, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.013783, + "t": 0.013783, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 276, + "operation": "write", + "proto": "tcp", + "t0": 0.014003, + "t": 0.014012, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.014015, + "t": 0.021273, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 1702, + "operation": "read", + "proto": "tcp", + "t0": 0.02139, + "t": 0.021392, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.022272, + "t": 0.02228, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.022283, + "t": 0.022283, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 380, + "operation": "write", + "proto": "tcp", + "t0": 0.022378, + "t": 0.022409, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 166, + "operation": "read", + "proto": "tcp", + "t0": 0.022348, + "t": 0.028105, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 380, + "operation": "write", + "proto": "tcp", + "t0": 0.028147, + "t": 0.028154, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 193, + "operation": "read", + "proto": "tcp", + "t0": 0.028138, + "t": 0.033394, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.033439, + "t": 0.033439, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.033445, + "t": 0.033507, + "transaction_id": 1, + "tags": [ + "depth=0" + ] + } + ], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.4.4", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.8.8", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.google", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001468, + "t": 0.007392, + "tags": [ + "depth=0" + ], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "8.8.4.4", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.007648, + "t": 0.013752, + "tags": [ + "depth=0" + ], + "transaction_id": 1 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "8.8.4.4:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDeDCCAmCgAwIBAgIUUuoR+gQd1GAZ5MsQLU+dkKNlPiwwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjQwMTMxMTYzMTI5WhcNMjQwMTMxMTgzMTI5WjAtMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRMwEQYDVQQDEwpkbnMuZ29vZ2xlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+QF/29NRVXJbNxfUbqHLmvqJFWf4/XlP1NVN2Tqxff3LlXUiZ2aLqORaiuUHlmHqnoLLi2Gb//n+JaURMhsKTd5juOOyPKN/BhCo5jt1zItpFXD0FL7jlkUwTpZ8E1Mz+UppWTqx3vxpAd3SfpBQGXYFjT+VF/DMv+Zl6rvSgnMps4LNeof+/ZCSJdCFQiXBC3TYhjo50wiKqtKnkpjejYVoR0qtDPyISng8Ce9cBRQTbuEXdj6+aSYVq44EXY1Spiq/iuIZl7ZA31asMN3kbvLRtquXgw4I/P2Tp+czeov1MzBRAhktQs2U3G4CnzmGAdLhvsYqlxMl532u89i08QIDAQABo4GdMIGaMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ9vev62jH9IkbAu5dc95Ad7SooujAfBgNVHSMEGDAWgBRoDWM+JVpxpCgCP4U9Kzfyf7V8bjAlBgNVHREEHjAcggpkbnMuZ29vZ2xlgg5kbnMuZ29vZ2xlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAyafwF0Y5f6ad2BKIr8VwSGv5GBjqsgGUvOhfQr/nm6GqxBbsMCxHz7hYz/HICM3O/jANqJBJs98uaTsIozLV9BdnW5l+uuDojvPUoqLVQKJFZGH4A2BPjM0UB3gEvDCW2NHtixBSshEBOXePzoUhmhxqKgmn03UUaWImVvtrG7Mn4sfX81PxnvUhgsUzkdd4KlhFdBw+sn3MfsJRcm8SRxi4CVu5gejP97HfH2F/GNfwWXH2lu8oa1Oblmx21/c3nTRBTdXOBz0yqQpAiOK+NfhsOj5hfEqfSbznsX3/sM/0gmxH6kwMwyL4TL/v/X1cDbjMJIMBaPEi2hpg9wOqVQ==", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAK/jCdoFQET9oOp4UULuy5RhBHkFMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTI0MDEzMDE3MzEyOVoXDTI0MDIwMTE3MzEyOVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQVAKNj0cFrLUPp5gAuuYrC7H9EB36r/mB7uzX5jLHdJMrFI+wKwrKLGEH/MiOomHmVklrAnVlOQh/AErHQVnKJQkLvck7vgKdFVvK7WKJsB33zmrgEB08ovVLy95bv2gDO1ljjqQUXRib5Sy3mo/JekmrpFA6inAEpoT8WSYq/MBsPqbUVlcJ1/DGtetKU3yU7MoZ1mzSKhiSxSLAhZbgVaoR1RrNX9p3rs0+K1smxeSlcPc79tLZAAD8JC6mDXLrmSJPT44CafAc0E1UslWgU4JYgInhtdY80SpxcuKmwN2N90BOYNyUTIpKAtdTx4KZSOSIbwEiPyrCW6Lxw2dfAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRoDWM+JVpxpCgCP4U9Kzfyf7V8bjAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAgzZu0IMP1d+Sp4NyfSlUnXE2X+XSRfsHlpx4jyl/upgYEwDdEWbL7xjUYK0eT2ZCpE0g7hT+6xgHs1vHyfjpeAr/KR+STaIYFh6A8rbcrh6YEiWsLyyO/90T5EILMle2isco1DHEEc5qOA1iyP3tg9wij05g5GNnlglTwJiY3I0yxfVW1nrug2CQNXjaN0zIqMq0RYx393RkfCM3JgH1RsR67f3ASYW3wxlyUWNLkuIVQUNG+ummdCKdV1CL2EQuFwgQX+NJMvpE/kiXgzFa/xwqlHC/oN9zTzqfU8jUObq8/TDaV/hHBOKYbQFwF5/CnJtF0Poy6ICO6FyfEW1NWg==", + "format": "base64" + } + ], + "server_name": "dns.google", + "t0": 0.013783, + "t": 0.022283, + "tags": [ + "depth=0" + ], + "tls_version": "TLSv1.3", + "transaction_id": 1 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000343, + "t": 0.000343, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 29, + "operation": "write", + "proto": "udp", + "t0": 0.000802, + "t": 0.00116, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 29, + "operation": "write", + "proto": "udp", + "t0": 0.000887, + "t": 0.001198, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 29, + "operation": "read", + "proto": "udp", + "t0": 0.001172, + "t": 0.006874, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 56, + "operation": "read", + "proto": "udp", + "t0": 0.001202, + "t": 0.007467, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.007839, + "t": 0.007839, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "httpbin.com", + "query_type": "AAAA", + "raw_response": "yb6BAAABAAAAAAAAB2h0dHBiaW4DY29tAAAcAAE=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000579, + "t": 0.006882, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 13335, + "as_org_name": "Cloudflare Inc", + "answer_type": "A", + "ipv4": "172.67.144.64", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "httpbin.com", + "query_type": "A", + "raw_response": "GdaBAAABAAEAAAAAB2h0dHBiaW4DY29tAAABAAEHaHR0cGJpbgNjb20AAAEAAQAADhAABKxDkEA=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000546, + "t": 0.007473, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 13335, + "as_org_name": "Cloudflare Inc", + "answer_type": "A", + "ipv4": "172.67.144.64", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "httpbin.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000382, + "t": 0.008191, + "tags": [ + "depth=0" + ], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "httpbin.com", + "query_type": "AAAA", + "raw_response": "seGBAAABAAAAAAAAB2h0dHBiaW4DY29tAAAcAAE=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.000546, + "t": 0.028141, + "tags": [ + "depth=0" + ], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 13335, + "as_org_name": "Cloudflare Inc", + "answer_type": "A", + "ipv4": "172.67.144.64", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "httpbin.com", + "query_type": "A", + "raw_response": "PCGBAAABAAEAAAAAB2h0dHBiaW4DY29tAAABAAEHaHR0cGJpbgNjb20AAAEAAQAADhAABKxDkEA=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.000583, + "t": 0.033417, + "tags": [ + "depth=0" + ], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "172.67.144.64:443", + "alpn": "http/1.1", + "failure": "http_invalid_redirect_location_host", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "httpbin.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.3" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "httpbin.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.3" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://httpbin.com/broken-redirect-https" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 302, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Wed, 31 Jan 2024 17:31:30 GMT" + ], + [ + "Location", + "https://" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Wed, 31 Jan 2024 17:31:30 GMT", + "Location": "https://" + } + }, + "t0": 0.048494, + "t": 0.05454, + "tags": [ + "depth=0", + "fetch_body=true" + ], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "172.67.144.64", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.033618, + "t": 0.039403, + "tags": [ + "depth=0", + "fetch_body=true" + ], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "172.67.144.64:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIVALsNsazvXHm9Sc+ye9LH35QctsYoMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTI0MDEzMTE2MzEzMFoXDTI0MDEzMTE4MzEzMFowLjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEUMBIGA1UEAxMLaHR0cGJpbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD5AX/b01FVcls3F9Ruocua+okVZ/j9eU/U1U3ZOrF9/cuVdSJnZouo5FqK5QeWYeqegsuLYZv/+f4lpREyGwpN3mO447I8o38GEKjmO3XMi2kVcPQUvuOWRTBOlnwTUzP5SmlZOrHe/GkB3dJ+kFAZdgWNP5UX8My/5mXqu9KCcymzgs16h/79kJIl0IVCJcELdNiGOjnTCIqq0qeSmN6NhWhHSq0M/IhKeDwJ71wFFBNu4Rd2Pr5pJhWrjgRdjVKmKr+K4hmXtkDfVqww3eRu8tG2q5eDDgj8/ZOn5zN6i/UzMFECGS1CzZTcbgKfOYYB0uG+xiqXEyXnfa7z2LTxAgMBAAGjgY4wgYswDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFD296/raMf0iRsC7l1z3kB3tKii6MB8GA1UdIwQYMBaAFGgNYz4lWnGkKAI/hT0rN/J/tXxuMBYGA1UdEQQPMA2CC2h0dHBiaW4uY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBxh8U2uKf6djSXRkTC+xqn6RANWK3l8cU+bD6Ohdy/AP0RIFu1UsISvmpZTVwIZaPtlZQnuAciZW5rwx3sbXBbMvkMKqgkWQsgXoDurjVaQ7kbtBUJly7vRgMxvtqoq4+zYLhGtqy0I/3v/L4mKLVNzy0yROVBoYLeVdSIGFGrjrk/drvcADV7Jqe5SOC/5kcyUfCZCYPfgAygdQLFWTM69QlaHw3xizHq9mWJlYGae5AYngcXUF0yKG+whjHuscNWB6/KuLqcqJ5YP9NKEuCjcRgF2cLFMWo9kUC9ZAuIzJt9TX1PS2xnvNvcpYRMt/PuHhSH7hMLEBcpYUcCedC9", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAK/jCdoFQET9oOp4UULuy5RhBHkFMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTI0MDEzMDE3MzEyOVoXDTI0MDIwMTE3MzEyOVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQVAKNj0cFrLUPp5gAuuYrC7H9EB36r/mB7uzX5jLHdJMrFI+wKwrKLGEH/MiOomHmVklrAnVlOQh/AErHQVnKJQkLvck7vgKdFVvK7WKJsB33zmrgEB08ovVLy95bv2gDO1ljjqQUXRib5Sy3mo/JekmrpFA6inAEpoT8WSYq/MBsPqbUVlcJ1/DGtetKU3yU7MoZ1mzSKhiSxSLAhZbgVaoR1RrNX9p3rs0+K1smxeSlcPc79tLZAAD8JC6mDXLrmSJPT44CafAc0E1UslWgU4JYgInhtdY80SpxcuKmwN2N90BOYNyUTIpKAtdTx4KZSOSIbwEiPyrCW6Lxw2dfAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRoDWM+JVpxpCgCP4U9Kzfyf7V8bjAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAgzZu0IMP1d+Sp4NyfSlUnXE2X+XSRfsHlpx4jyl/upgYEwDdEWbL7xjUYK0eT2ZCpE0g7hT+6xgHs1vHyfjpeAr/KR+STaIYFh6A8rbcrh6YEiWsLyyO/90T5EILMle2isco1DHEEc5qOA1iyP3tg9wij05g5GNnlglTwJiY3I0yxfVW1nrug2CQNXjaN0zIqMq0RYx393RkfCM3JgH1RsR67f3ASYW3wxlyUWNLkuIVQUNG+ummdCKdV1CL2EQuFwgQX+NJMvpE/kiXgzFa/xwqlHC/oN9zTzqfU8jUObq8/TDaV/hHBOKYbQFwF5/CnJtF0Poy6ICO6FyfEW1NWg==", + "format": "base64" + } + ], + "server_name": "httpbin.com", + "t0": 0.039422, + "t": 0.048395, + "tags": [ + "depth=0", + "fetch_body=true" + ], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://httpbin.com/broken-redirect-https", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.3" + ] + }, + "tcp_connect": [ + "172.67.144.64:443", + "172.67.144.64:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "172.67.144.64:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "172.67.144.64:443": { + "server_name": "httpbin.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "172.67.144.64" + ] + }, + "ip_info": { + "172.67.144.64": { + "asn": 13335, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:172.67.144.64 Flags:7}]", + "t": 0.033545 + }, + { + "msg": "conn 172.67.144.64:443: granted permission: true", + "t": 0.048407 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": "http_invalid_redirect_location_host", + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_proportion": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.508443, + "test_start_time": "2024-01-31 17:31:30", + "test_version": "0.5.28" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/observations.json new file mode 100644 index 0000000000..9f63e35c4a --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/observations.json @@ -0,0 +1,322 @@ +{ + "DNSLookupFailures": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": null, + "IPAddressOrigin": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ], + "DNSLookupSuccesses": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ], + "KnownTCPEndpoints": { + "4": { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.67.144.64:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "httpbin.com", + "HTTPRequestURL": "https://httpbin.com/broken-redirect-https", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + }, + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/observations_classic.json new file mode 100644 index 0000000000..b11d292154 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithBrokenLocationForHTTPS/observations_classic.json @@ -0,0 +1,117 @@ +{ + "DNSLookupFailures": [], + "DNSLookupSuccesses": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + ], + "KnownTCPEndpoints": { + "4": { + "TagDepth": 0, + "Type": 3, + "Failure": "http_invalid_redirect_location_host", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 3, + "DNSDomain": "httpbin.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "172.67.144.64" + ], + "IPAddressOrigin": "dns", + "IPAddress": "172.67.144.64", + "IPAddressASN": 13335, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.67.144.64:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "httpbin.com", + "HTTPRequestURL": "https://httpbin.com/broken-redirect-https", + "HTTPFailure": "http_invalid_redirect_location_host", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "httpbin.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "172.67.144.64" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + }, + "ControlExpectations": { + "DNSAddresses": [ + "172.67.144.64" + ], + "FinalResponseFailure": "" + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json index 3a6af34423..a6406411c5 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json @@ -56,7 +56,7 @@ "HTTPFinalResponseSuccessTLSWithControl": 6, "HTTPFinalResponseSuccessTCPWithoutControl": null, "HTTPFinalResponseSuccessTCPWithControl": null, - "HTTPFinalResponseDiffBodyProportionFactor": 0.5721179449124798, + "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": true, "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { @@ -104,7 +104,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524266, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json index 5778211f22..97094416e6 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json @@ -51,7 +51,7 @@ "HTTPFinalResponseSuccessTLSWithControl": 6, "HTTPFinalResponseSuccessTCPWithoutControl": null, "HTTPFinalResponseSuccessTCPWithControl": null, - "HTTPFinalResponseDiffBodyProportionFactor": 0.5721179449124798, + "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": true, "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { @@ -99,7 +99,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524266, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json index b679c5c2ed..65bcfaee5e 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json @@ -4339,7 +4339,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524266, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json index af7cc0956c..320bc88751 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json @@ -1641,7 +1641,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524266, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json index 835c969320..12f4f51762 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json @@ -57,7 +57,7 @@ "HTTPFinalResponseSuccessTLSWithControl": 16, "HTTPFinalResponseSuccessTCPWithoutControl": null, "HTTPFinalResponseSuccessTCPWithControl": null, - "HTTPFinalResponseDiffBodyProportionFactor": 0.5632578337691695, + "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": true, "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { @@ -108,7 +108,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524268, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json index f9e8eb28b3..535081b31a 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json @@ -51,7 +51,7 @@ "HTTPFinalResponseSuccessTLSWithControl": 16, "HTTPFinalResponseSuccessTCPWithoutControl": null, "HTTPFinalResponseSuccessTCPWithControl": null, - "HTTPFinalResponseDiffBodyProportionFactor": 0.5632578337691695, + "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": true, "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { @@ -102,7 +102,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524268, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json index d1660e3eea..543a19439c 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json @@ -3407,7 +3407,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524268, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json index 7177ad3b28..9a65d17c6c 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json @@ -1434,7 +1434,7 @@ "HTTPFailure": "", "HTTPResponseStatusCode": 200, "HTTPResponseBodyLength": 524268, - "HTTPResponseBodyIsTruncated": false, + "HTTPResponseBodyIsTruncated": true, "HTTPResponseHeadersKeys": { "Accept-Ch": true, "Accept-Ranges": true,