Home / Function/ translateHeaders() — netty Function Reference

translateHeaders() — netty Function Reference

Architecture documentation for the translateHeaders() function in HttpConversionUtil.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  9719360f_4072_b46c_34c6_ba4c95f8f01d["translateHeaders()"]
  32b1613b_3d60_d813_0e0f_c8db7d1be33b["Http2ToHttpHeaderTranslator"]
  9719360f_4072_b46c_34c6_ba4c95f8f01d -->|defined in| 32b1613b_3d60_d813_0e0f_c8db7d1be33b
  f883ee49_b387_2383_d1d6_1d09b3c40688["addHttp2ToHttpHeaders()"]
  f883ee49_b387_2383_d1d6_1d09b3c40688 -->|calls| 9719360f_4072_b46c_34c6_ba4c95f8f01d
  style 9719360f_4072_b46c_34c6_ba4c95f8f01d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/HttpConversionUtil.java lines 699–733

        void translateHeaders(Iterable<Entry<CharSequence, CharSequence>> inputHeaders) throws Http2Exception {
            // lazily created as needed
            StringBuilder cookies = null;

            for (Entry<CharSequence, CharSequence> entry : inputHeaders) {
                final CharSequence name = entry.getKey();
                final CharSequence value = entry.getValue();
                AsciiString translatedName = translations.get(name);
                if (translatedName != null) {
                    output.add(translatedName, AsciiString.of(value));
                } else if (!Http2Headers.PseudoHeaderName.isPseudoHeader(name)) {
                    // https://tools.ietf.org/html/rfc7540#section-8.1.2.3
                    // All headers that start with ':' are only valid in HTTP/2 context
                    if (name.length() == 0 || name.charAt(0) == ':') {
                        throw streamError(streamId, PROTOCOL_ERROR,
                                "Invalid HTTP/2 header '%s' encountered in translation to HTTP/1.x", name);
                    }
                    if (COOKIE.equals(name)) {
                        // combine the cookie values into 1 header entry.
                        // https://tools.ietf.org/html/rfc7540#section-8.1.2.5
                        if (cookies == null) {
                            cookies = InternalThreadLocalMap.get().stringBuilder();
                        } else if (cookies.length() > 0) {
                            cookies.append("; ");
                        }
                        cookies.append(value);
                    } else {
                        output.add(name, value);
                    }
                }
            }
            if (cookies != null) {
                output.add(COOKIE, cookies.toString());
            }
        }

Domain

Subdomains

Frequently Asked Questions

What does translateHeaders() do?
translateHeaders() is a function in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HttpConversionUtil.java.
Where is translateHeaders() defined?
translateHeaders() is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HttpConversionUtil.java at line 699.
What calls translateHeaders()?
translateHeaders() is called by 1 function(s): addHttp2ToHttpHeaders.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free