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

com.webpieces.http2parser.api.dto.lib.Http2HeaderName Maven / Gradle / Ivy

package com.webpieces.http2parser.api.dto.lib;

import java.util.HashMap;
import java.util.Map;


public enum Http2HeaderName {
	//Per RFC, these are the General Header types...
	CACHE_CONTROL("cache-control", HeaderType.GENERAL),
	CONNECTION("connection", HeaderType.GENERAL),
	DATE("date", HeaderType.GENERAL),
	PRAGMA("pragma", HeaderType.GENERAL),
	TRAILER("trailer", HeaderType.GENERAL),
	TRANSFER_ENCODING("transfer-encoding", HeaderType.GENERAL),
	UPGRADE("upgrade", HeaderType.GENERAL),
	VIA("via", HeaderType.GENERAL),
	WARNING("warning", HeaderType.GENERAL),

	//https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html
	KEEP_ALIVE("keep-alive", HeaderType.GENERAL),
	
	//Per RFC, these are the Request Header types
	ACCEPT("accept", HeaderType.REQUEST),
	ACCEPT_CHARSET("accept-charset", HeaderType.REQUEST),
	ACCEPT_ENCODING("accept-encoding", HeaderType.REQUEST),
	ACCEPT_LANGUAGE("accept-language", HeaderType.REQUEST),
	AUTHORIZATION("authorization", HeaderType.REQUEST),
	COOKIE("cookie", HeaderType.REQUEST),
	EXPECT("expect", HeaderType.REQUEST),
	FROM("from", HeaderType.REQUEST),
	IF_MATCH("if-match", HeaderType.REQUEST),
	IF_MODIFIED_SINCE("if-modified-since", HeaderType.REQUEST),
	IF_NONE_MATCH("if-none-match", HeaderType.REQUEST),
	IF_RANGE("if-range", HeaderType.REQUEST),
	IF_UNMODIFIED_SINCE("if-unmodified-since", HeaderType.REQUEST),
	MAX_FORWARDS("max-forwards", HeaderType.REQUEST),
	ORIGIN("origin", HeaderType.REQUEST),
	PROXY_AUTHORIZATION("proxy-authorization", HeaderType.REQUEST),
	RANGE("range", HeaderType.REQUEST),
	REFERER("referer", HeaderType.REQUEST),
	TE("te", HeaderType.REQUEST),
	USER_AGENT("user-agent", HeaderType.REQUEST),
	UPGRADE_INSECURE_REQUESTS("upgrade-insecure-requests", HeaderType.REQUEST),
	
	//Per RFC, these are the Response Header types
	ACCEPT_RANGES("accept-ranges", HeaderType.RESPONSE),
	AGE("age", HeaderType.RESPONSE),
	ETAG("etag", HeaderType.RESPONSE),
	LOCATION("location", HeaderType.RESPONSE),
	PROXY_AUTHENTICATE("proxy-authenticate", HeaderType.RESPONSE),
	RETRY_AFTER("retry-after", HeaderType.RESPONSE),
	SET_COOKIE("set-cookie", HeaderType.RESPONSE),
	SERVER("server", HeaderType.RESPONSE),
	VARY("vary", HeaderType.RESPONSE),
	WWW_AUTHENTICATE("www-authenticate", HeaderType.RESPONSE),
	
	ALLOW("allow", HeaderType.ENTITY),         
	CONTENT_ENCODING("content-encoding", HeaderType.ENTITY),     
	CONTENT_LANGUAGE("content-language", HeaderType.ENTITY),      
	CONTENT_LENGTH("content-length", HeaderType.ENTITY),          
	CONTENT_LOCATION("content-location", HeaderType.ENTITY),      
	CONTENT_MD5("content-md5", HeaderType.ENTITY),             
	CONTENT_RANGE("content-range", HeaderType.ENTITY),  
	CONTENT_TYPE("content-type", HeaderType.ENTITY),  
	EXPIRES("expires", HeaderType.ENTITY),       
	LAST_MODIFIED("last-modified", HeaderType.ENTITY),

	STATUS(":status", HeaderType.RESPONSE),
	
	METHOD(":method", HeaderType.REQUEST),
	SCHEME(":scheme", HeaderType.REQUEST),
	PATH(":path", HeaderType.REQUEST), 
	AUTHORITY(":authority", HeaderType.REQUEST),
	
	X_REQUESTED_WITH("x-requested-with", HeaderType.REQUEST),

	;

	private static Map lookup = new HashMap<>();
	
	static {
		for(Http2HeaderName name : Http2HeaderName.values()) {
			lookup.put(name.getHeaderName().toLowerCase(), name);
		}
	}
	
	private String name;
	private HeaderType type;
	
	Http2HeaderName(String name, HeaderType type) {
		this.name = name;
		this.type = type;
	}
	
	public String getHeaderName() {
		return name;
	}

	public HeaderType getHeaderType() {
		return type;
	}
	
	public static Http2HeaderName lookup(String name) {
		return lookup.get(name.toLowerCase());
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy