def normalize_name(self, header_name):
		""" Return header name as it is recommended (required) by corresponding http protocol. For
		protocol switching use :meth:`.WHTTPHeaders.switch_name_style` method.

		All current available protocols (0.9-2) compare header names in a case-insensitive fashion. However,
		previous protocol versions (0.9-1.1) recommends to use camel-case names like Foo or Foo-Bar. But
		HTTP/2 (RFC 7540) strictly requires lowercase only header names.

		:param header_name: name to convert
		:return: str
		"""
		if self.__normalization_mode in ['0.9', '1.0', '1.1']:
			return '-'.join([x.capitalize() for x in header_name.split('-')])
		elif self.__normalization_mode == '2':
			return header_name.lower()
		raise RuntimeError('Internal error: unknown http protocol: %s' % self.__normalization_mode)