Eu quero armazenar uma resposta HTTP inteira na linha do banco de dados PostgreSQL.
Eu preciso do status HTTP, os cabeçalhos e o corpo.
AFAIK não há tipo de dados nativo para isso.
Como eu poderia armazenar uma resposta HTTP?
Atualizar
Eu estive pensando sobre isso novamente. Acho que é melhor seguir este padrão: não vou pesquisar nada dentro da resposta http. É como uma bolha. Tudo o que eu quero pesquisar nele enquanto é extraído antes e colocado em uma coluna diferente. Até agora, apenas o código de status http será usado e terá uma coluna própria.
A especificação HTTP/1.1 diz, por meio de RFC-7230 , que:
int4
ouint2
serviria."opaco" praticamente implica que
bytea
é a única escolha segura, se você quiser lidar com as respostas de qualquer servidor HTTP por aí.message-body = *OCTET
, portanto,bytea
também é praticamente o único tipo que se encaixa, a menos que você prefira o armazenamento de objetos grandes e a API.bytea
é limitado a 1 Gb, portanto, convém dividir o valor em várias linhas menores se você segmentar qualquer tamanho. Na prática, valores de bytea muito grandes tendem a ser impraticáveis, pessoalmente eu não ultrapassaria 128Mb por linha.Como um
text
? Se você precisar marcá-lo, também poderá fazer isso facilmente emjsonb
uma biblioteca do lado do cliente. Isso geralmente é muito fácil de fazerOu você pode normalizá-lo em uma tabela
HEADER
eBODY
, embora seja um pouco mais complexo com HTTP2.