Headers (Java SE 11 & JDK 11 )
Keywords: com.sun.net.httpserver.Headers class

Module jdk.httpserver
Package com.sun.net.httpserver

## Class Headers

- java.lang.Object
- - com.sun.net.httpserver.Headers

- All Implemented Interfaces:
    `Map<String,​List<String>>`

      public class Headers
      extends Object
      implements Map<String,​List<String>>

  HTTP request and response headers are represented by this class which implements the interface `Map`<`String`, `List` <`String`>>. The keys are case-insensitive Strings representing the header names and the value associated with each key is a `List`<`String`> with one element for each occurrence of the header name in the request or response.

  For example, if a response header instance contains one key "HeaderName" with two values "value1 and value2" then this object is output as two header lines:

  >      HeaderName: value1
  >      HeaderName: value2

  All the normal `Map` methods are provided, but the following additional convenience methods are most likely to be used:

  - `getFirst(String)` returns a single valued header or the first value of a multi-valued header.
  - `add(String,String)` adds the given header value to the list for the given key
  - `set(String,String)` sets the given header field to the single value given overwriting any existing values in the value list.

  All methods in this class accept `null` values for keys and values. However, null keys will never will be present in HTTP request headers, and will not be output/sent in response headers. Null values can be represented as either a null entry for the key (i.e. the list is null) or where the key has a list, but one (or more) of the list's values is null. Null values are output as a header line containing the key but no associated value.

  Since:
    1.6

- - ### Nested Class Summary

    - ### Nested classes/interfaces declared in interface java.util.Map

      `Map.Entry<K,​V>`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Headers()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(String key, String value)` | adds the given value to the list of headers for the given key.
    `String` | `getFirst​(String key)` | returns the first value from the List of String values for the given key (if at least one exists).
    `void` | `set​(String key, String value)` | sets the given value as the sole header value for the given key.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods declared in interface java.util.Map

      `clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

- - ### Constructor Detail

    - #### Headers

          public Headers()

  - ### Method Detail

    - #### getFirst

          public String getFirst​(String key)

      returns the first value from the List of String values for the given key (if at least one exists).
      Parameters:
        `key` - the key to search for
      Returns:
        the first string value associated with the key

    - #### add

          public void add​(String key,
                          String value)

      adds the given value to the list of headers for the given key. If the mapping does not already exist, then it is created
      Parameters:
        `key` - the header name
        `value` - the header value to add to the header

    - #### set

          public void set​(String key,
                          String value)

      sets the given value as the sole header value for the given key. If the mapping does not already exist, then it is created
      Parameters:
        `key` - the header name
        `value` - the header value to set.