Home / Function/ toHttp2Headers() — netty Function Reference

toHttp2Headers() — netty Function Reference

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

Function java Buffer Allocators calls 3 called by 1

Entity Profile

Dependency Diagram

graph TD
  6d71d73b_826f_80a2_d574_05df829c5c40["toHttp2Headers()"]
  0560b510_c1dc_0a46_6dca_e5dbfb67d807["HttpConversionUtil"]
  6d71d73b_826f_80a2_d574_05df829c5c40 -->|defined in| 0560b510_c1dc_0a46_6dca_e5dbfb67d807
  e4140185_26f8_5319_cffa_a46eb5356b83["Http2Headers()"]
  e4140185_26f8_5319_cffa_a46eb5356b83 -->|calls| 6d71d73b_826f_80a2_d574_05df829c5c40
  9ef85cd2_4d7c_e875_6493_f1c7033de54a["toLowercaseMap()"]
  6d71d73b_826f_80a2_d574_05df829c5c40 -->|calls| 9ef85cd2_4d7c_e875_6493_f1c7033de54a
  d788f36c_550b_912c_a38b_bccd9f57ab18["toHttp2HeadersFilterTE()"]
  6d71d73b_826f_80a2_d574_05df829c5c40 -->|calls| d788f36c_550b_912c_a38b_bccd9f57ab18
  6dc1e856_6655_f72d_37e8_0d71045d347f["splitValidCookieHeader()"]
  6d71d73b_826f_80a2_d574_05df829c5c40 -->|calls| 6dc1e856_6655_f72d_37e8_0d71045d347f
  style 6d71d73b_826f_80a2_d574_05df829c5c40 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/HttpConversionUtil.java lines 521–564

    public static void toHttp2Headers(HttpHeaders inHeaders, Http2Headers out) {
        Iterator<Entry<CharSequence, CharSequence>> iter = inHeaders.iteratorCharSequence();
        // Choose 8 as a default size because it is unlikely we will see more than 4 Connection headers values, but
        // still allowing for "enough" space in the map to reduce the chance of hash code collision.
        CharSequenceMap<AsciiString> connectionBlacklist =
            toLowercaseMap(inHeaders.valueCharSequenceIterator(CONNECTION), 8);
        while (iter.hasNext()) {
            Entry<CharSequence, CharSequence> entry = iter.next();
            final AsciiString aName = AsciiString.of(entry.getKey()).toLowerCase();
            if (!HTTP_TO_HTTP2_HEADER_BLACKLIST.contains(aName) && !connectionBlacklist.contains(aName)) {
                // https://tools.ietf.org/html/rfc7540#section-8.1.2.2 makes a special exception for TE
                if (aName.contentEqualsIgnoreCase(TE)) {
                    toHttp2HeadersFilterTE(entry, out);
                } else if (aName.contentEqualsIgnoreCase(COOKIE)) {
                    CharSequence valueCs = entry.getValue();
                    // validate
                    boolean invalid = false;
                    for (int i = 0; i < valueCs.length(); i++) {
                        char c = valueCs.charAt(i);
                        if (c == ';') {
                            if (i + 1 >= valueCs.length() || valueCs.charAt(i + 1) != ' ') {
                                // semicolon not followed by space. invalid, don't split
                                invalid = true;
                                break;
                            }
                            i++; // skip space
                        } else if (c > 255) {
                            // not ascii, don't split
                            invalid = true;
                            break;
                        }
                    }

                    if (invalid) {
                        out.add(COOKIE, valueCs);
                    } else {
                        splitValidCookieHeader(out, valueCs);
                    }
                } else {
                    out.add(aName, entry.getValue());
                }
            }
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does toHttp2Headers() do?
toHttp2Headers() is a function in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HttpConversionUtil.java.
Where is toHttp2Headers() defined?
toHttp2Headers() is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HttpConversionUtil.java at line 521.
What does toHttp2Headers() call?
toHttp2Headers() calls 3 function(s): splitValidCookieHeader, toHttp2HeadersFilterTE, toLowercaseMap.
What calls toHttp2Headers()?
toHttp2Headers() is called by 1 function(s): Http2Headers.

Analyze Your Own Codebase

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

Try Supermodel Free