chromium/services/network/public/mojom/http_request_headers.mojom

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module network.mojom;

import "mojo/public/mojom/base/byte_string.mojom";

struct HttpRequestHeaderKeyValuePair {
  // RFC 7230 3.2 says the header key is a 'token' which is an US-ASCII string.
  string key;

  // RFC 7230 3.2.4: "A recipient SHOULD treat other octets in field
  // content (obs-text) as opaque data." In practice these are usually US-ASCII
  // as well, but it is possible for the field values to be arbitrary bytes as
  // long as they don't contain \r, \n, or \0.
  mojo_base.mojom.ByteString value;
};

struct HttpRequestHeaders {
  array<HttpRequestHeaderKeyValuePair> headers;
};