public String parseHeaderLine(final String headerLine) throws HTTPException
	{
		final int x = headerLine.indexOf(':'); // first : is the right :
		if(x > 0)
		{
			final String headerRawKey=headerLine.substring(0,x);
			if(headerRefs != null)
				headerRefs.add(headerRawKey);
			final String headerKey = headerRawKey.toLowerCase().trim(); // lowercase is normalized!!!
			final String headerValue = headerLine.substring(x+1).trim();
			headers.put(headerKey , headerValue);
			if(headerKey.equals(HTTPHeader.HOST.lowerCaseName())) // special case!
				return headerValue;
			else
			if(headerKey.equals(HTTPHeader.COOKIE.lowerCaseName())) // special case!
				parseCookieData(headerValue);
			else
			if(headerKey.equals(HTTPHeader.EXPECT.lowerCaseName())) // special case!
				expects.addAll(Arrays.asList(headerValue.toLowerCase().split(";")));
			else
			if(headerKey.equals(HTTPHeader.ACCEPT_ENCODING.lowerCaseName())) // special case!
				acceptEnc=parseAcceptEncodingRequest(headerValue);
			if (isDebugging) debugLogger.finer("Header received: "+headerLine);
			return null;
		}
		else
			throw HTTPException.standardException(HTTPStatus.S400_BAD_REQUEST);
	}