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.

An instance of Headers is either mutable or immutable. A mutable headers allows to add, remove, or modify header names and values, e.g. the instance returned by HttpExchange.getResponseHeaders(). An immutable headers disallows any modification to header names or values, e.g. the instance returned by HttpExchange.getRequestHeaders(). The mutator methods for an immutable headers instance unconditionally throw UnsupportedOperationException.

All methods in this class reject null values for keys and values. null keys will never be present in HTTP request or response headers.

Since:
1.6