Да , вы можете использовать JSON в заголовках HTTP.
В соответствии с HTTP-спецификацией вам нужно только убедиться, что ваш заголовок field-body содержит только видимые символы ASCII, табуляцию или пробел и не должен содержать символы CR или LF (т.е. новые строки, кроме как через устаревшие «складывающиеся пробелы»).
Поскольку почти все кодеры JSON будут кодировать символы CR и LF как "\ r" и "\ n", а также кодировать невидимые или не ASCII-символы (например, "é" становится "\ u00e9"), вам не следует нужно беспокоиться об этом. Проверьте документы для вашего конкретного кодировщика или проверьте его.
Исходная спецификация ARPA (RFC 822) содержит специальное описание этого точного варианта использования, и дух этого отразится в более поздних спецификациях, таких как RFC 7230:
Некоторые полевые тела заголовков могут интерпретироваться в соответствии с
внутренний синтаксис, который могут анализировать некоторые системы.
Кроме того, RFC 822 и RFC 7230 явно не дают ограничений по длине:
HTTP не устанавливает предопределенного ограничения на длину каждого поля заголовка или на длину раздела заголовка в целом, как описано в разделе 2.5.