All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.core.http.HttpHeaders Maven / Gradle / Ivy

There is a newer version: 5.0.0.CR1
Show newest version
/*
 * Copyright (c) 2011-2019 Contributors to the Eclipse Foundation
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 * which is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 */

package io.vertx.core.http;

import io.netty.handler.codec.http.HttpHeaderNames;
import io.netty.handler.codec.http.HttpHeaderValues;
import io.netty.handler.codec.http2.Http2Headers;
import io.netty.util.AsciiString;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.MultiMap;
import io.vertx.core.http.impl.headers.HeadersMultiMap;

/**
 * Contains a bunch of useful HTTP headers stuff:
 *
 * 
    *
  • methods for creating {@link MultiMap} instances
  • *
  • often used Header names
  • *
  • method to create optimized {@link CharSequence} which can be used as header name and value
  • *
* * @author Norman Maurer */ @VertxGen public interface HttpHeaders { /** JVM system property that disables HTTP headers validation, don't use this in production. */ String DISABLE_HTTP_HEADERS_VALIDATION_PROP_NAME = "vertx.disableHttpHeadersValidation"; /** Constant that disables HTTP headers validation, this is a constant so the JIT can eliminate validation code. */ boolean DISABLE_HTTP_HEADERS_VALIDATION = Boolean.getBoolean(DISABLE_HTTP_HEADERS_VALIDATION_PROP_NAME); /** * Accept header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCEPT = HttpHeaderNames.ACCEPT; /** * Accept-Charset header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCEPT_CHARSET = HttpHeaderNames.ACCEPT_CHARSET; /** * Accept-Encoding header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCEPT_ENCODING = HttpHeaderNames.ACCEPT_ENCODING; /** * Accept-Language header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCEPT_LANGUAGE = HttpHeaderNames.ACCEPT_LANGUAGE; /** * Accept-Ranges header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCEPT_RANGES = HttpHeaderNames.ACCEPT_RANGES; /** * Accept-Patch header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCEPT_PATCH = HttpHeaderNames.ACCEPT_PATCH; /** * Access-Control-Allow-Credentials header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_ALLOW_CREDENTIALS = HttpHeaderNames.ACCESS_CONTROL_ALLOW_CREDENTIALS; /** * Access-Control-Allow-Headers header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_ALLOW_HEADERS = HttpHeaderNames.ACCESS_CONTROL_ALLOW_HEADERS; /** * Access-Control-Allow-Methods header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_ALLOW_METHODS = HttpHeaderNames.ACCESS_CONTROL_ALLOW_METHODS; /** * Access-Control-Allow-Origin header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_ALLOW_ORIGIN = HttpHeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN; /** * Access-Control-Allow-Private-Network header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_ALLOW_PRIVATE_NETWORK = HttpHeaderNames.ACCESS_CONTROL_ALLOW_PRIVATE_NETWORK; /** * Access-Control-Expose-Headers header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_EXPOSE_HEADERS = HttpHeaderNames.ACCESS_CONTROL_EXPOSE_HEADERS; /** * Access-Control-Max-Age header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_MAX_AGE = HttpHeaderNames.ACCESS_CONTROL_MAX_AGE; /** * Access-Control-Request-Headers header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_REQUEST_HEADERS = HttpHeaderNames.ACCESS_CONTROL_REQUEST_HEADERS; /** * Access-Control-Request-Method header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_REQUEST_METHOD = HttpHeaderNames.ACCESS_CONTROL_REQUEST_METHOD; /** * Access-Control-Request-Private-Network header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ACCESS_CONTROL_REQUEST_PRIVATE_NETWORK = HttpHeaderNames.ACCESS_CONTROL_REQUEST_PRIVATE_NETWORK; /** * Age header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence AGE = HttpHeaderNames.AGE; /** * Allow header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ALLOW = HttpHeaderNames.ALLOW; /** * Authorization header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence AUTHORIZATION = HttpHeaderNames.AUTHORIZATION; /** * Cache-Control header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CACHE_CONTROL = HttpHeaderNames.CACHE_CONTROL; /** * Connection header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONNECTION = HttpHeaderNames.CONNECTION; /** * Content-Base header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_BASE = HttpHeaderNames.CONTENT_BASE; /** * Content-Disposition header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_DISPOSITION = HttpHeaderNames.CONTENT_DISPOSITION; /** * Content-Encoding header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_ENCODING = HttpHeaderNames.CONTENT_ENCODING; /** * Content-Language header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_LANGUAGE = HttpHeaderNames.CONTENT_LANGUAGE; /** * Content-Length header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_LENGTH = HttpHeaderNames.CONTENT_LENGTH; /** * Content-Location header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_LOCATION = HttpHeaderNames.CONTENT_LOCATION; /** * Content-Transfer-Encoding header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_TRANSFER_ENCODING = HttpHeaderNames.CONTENT_TRANSFER_ENCODING; /** * Content-MD5 header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_MD5 = HttpHeaderNames.CONTENT_MD5; /** * Content-Rage header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_RANGE = HttpHeaderNames.CONTENT_RANGE; /** * Content-Type header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTENT_TYPE = HttpHeaderNames.CONTENT_TYPE; /** * Content-Cookie header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence COOKIE = HttpHeaderNames.COOKIE; /** * Date header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence DATE = HttpHeaderNames.DATE; /** * Etag header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ETAG = HttpHeaderNames.ETAG; /** * Expect header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence EXPECT = HttpHeaderNames.EXPECT; /** * Expires header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence EXPIRES = HttpHeaderNames.EXPIRES; /** * From header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence FROM = HttpHeaderNames.FROM; /** * Host header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence HOST = HttpHeaderNames.HOST; /** * If-Match header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence IF_MATCH = HttpHeaderNames.IF_MATCH; /** * If-Modified-Since header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence IF_MODIFIED_SINCE = HttpHeaderNames.IF_MODIFIED_SINCE; /** * If-None-Match header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence IF_NONE_MATCH = HttpHeaderNames.IF_NONE_MATCH; /** * Last-Modified header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence LAST_MODIFIED = HttpHeaderNames.LAST_MODIFIED; /** * Location header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence LOCATION = HttpHeaderNames.LOCATION; /** * Origin header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence ORIGIN = HttpHeaderNames.ORIGIN; /** * Proxy-Authenticate header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence PROXY_AUTHENTICATE = HttpHeaderNames.PROXY_AUTHENTICATE; /** * Proxy-Authorization header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence PROXY_AUTHORIZATION = HttpHeaderNames.PROXY_AUTHORIZATION; /** * Referer header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence REFERER = HttpHeaderNames.REFERER; /** * Retry-After header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence RETRY_AFTER = HttpHeaderNames.RETRY_AFTER; /** * Server header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence SERVER = HttpHeaderNames.SERVER; /** * Transfer-Encoding header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence TRANSFER_ENCODING = HttpHeaderNames.TRANSFER_ENCODING; /** * User-Agent header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence USER_AGENT = HttpHeaderNames.USER_AGENT; /** * Set-Cookie header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence SET_COOKIE = HttpHeaderNames.SET_COOKIE; /** * application/x-www-form-urlencoded header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence APPLICATION_X_WWW_FORM_URLENCODED = HttpHeaderValues.APPLICATION_X_WWW_FORM_URLENCODED; /** * chunked header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CHUNKED = HttpHeaderValues.CHUNKED; /** * close header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CLOSE = HttpHeaderValues.CLOSE; /** * 100-continue header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence CONTINUE = HttpHeaderValues.CONTINUE; /** * identity header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence IDENTITY = HttpHeaderValues.IDENTITY; /** * keep-alive header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence KEEP_ALIVE = HttpHeaderValues.KEEP_ALIVE; /** * Upgrade header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence UPGRADE = HttpHeaderValues.UPGRADE; /** * WebSocket header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence WEBSOCKET = HttpHeaderValues.WEBSOCKET; /** * deflate,gzip header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence DEFLATE_GZIP = createOptimized("deflate, gzip"); /** * deflate,gzip,br header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence DEFLATE_GZIP_BR = createOptimized("deflate, gzip, br"); /** * text/html header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence TEXT_HTML = createOptimized("text/html"); /** * GET header value */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence GET = createOptimized("GET"); /** * Vary header name */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence VARY = createOptimized("vary"); /** * HTTP/2 {@code :path} pseudo header */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence PSEUDO_PATH = Http2Headers.PseudoHeaderName.PATH.value(); /** * HTTP/2 {@code :authority} pseudo header */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence PSEUDO_AUTHORITY = Http2Headers.PseudoHeaderName.AUTHORITY.value(); /** * HTTP/2 {@code :scheme} pseudo header */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence PSEUDO_SCHEME = Http2Headers.PseudoHeaderName.SCHEME.value(); /** * HTTP/2 {@code :status} pseudo header */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence PSEUDO_STATUS = Http2Headers.PseudoHeaderName.STATUS.value(); /** * HTTP/2 {@code :method} pseudo hedaer */ @GenIgnore(GenIgnore.PERMITTED_TYPE) CharSequence PSEUDO_METHOD = Http2Headers.PseudoHeaderName.METHOD.value(); /** * Create an optimized {@link CharSequence} which can be used as header name or value. * This should be used if you expect to use it multiple times liked for example adding the same header name or value * for multiple responses or requests. */ @GenIgnore(GenIgnore.PERMITTED_TYPE) static CharSequence createOptimized(String value) { return new AsciiString(value); } static MultiMap headers() { return HeadersMultiMap.httpHeaders(); } static MultiMap set(String name, String value) { return HeadersMultiMap.httpHeaders().set(name, value); } @GenIgnore(GenIgnore.PERMITTED_TYPE) static MultiMap set(CharSequence name, CharSequence value) { return HeadersMultiMap.httpHeaders().set(name, value); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy