Test-Upper-Case-Header: some-value will be changed to test-upper-case-header: some-value after passing through the Envoy proxy. This is not a problem under normal conditions. RFC 2616 also states that HTTP header processing is case-insensitive.Content-Length to determine the length of a response, the SDK depends on the capitalization of first letters.test-upper-case-header: some-valueTest-Upper-Case-Header: some-valueTest-UPPER-CASE-Header: some-value, the header cannot be compatible.kind: Servicemetadata:name: myservicespec:ports:- number: 80name: tcp-web # Set the protocol used by the port to TCP.
apiVersion: networking.istio.io/v1alpha3kind: ServiceEntrymetadata:name: qcloud-cosspec:hosts:- "private-1251349835.cos.ap-guangzhou.myqcloud.com"location: MESH_INTERNALaddresses:- 169.254.0.47ports:- number: 80name: tcpprotocol: TCPresolution: DNS
apiVersion: networking.istio.io/v1alpha3kind: EnvoyFiltermetadata:name: http-header-proper-case-wordsnamespace: istio-systemspec:configPatches:- applyTo: NETWORK_FILTER # http connection manager is a filter in Envoymatch:# context omitted so that this applies to both sidecars and gatewayslistener:name: XXX # Listener name used by cos, which can be queried from config_dumpfilterChain:filter:name: "envoy.http_connection_manager"patch:operation: MERGEvalue:name: "envoy.http_connection_manager"typed_config:"@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"http_protocol_options:header_key_format:proper_case_words: {}
listener name must be set based on actual conditions.Feedback