我想在 PostgreSQL 数据库行中存储整个 HTTP 响应。
我需要 HTTP 状态、标头和正文。
AFAIK 对此没有本地数据类型。
我如何存储 HTTP 响应?
更新
我一直在思考这个问题。我想我最好遵循这种模式:我不会在 http 响应中搜索任何内容。它就像一个斑点。我想在其中搜索的所有内容都被提取出来并放入不同的列中。到目前为止,只有 http 状态代码会被使用,并且它会得到一个自己的列。
我想在 PostgreSQL 数据库行中存储整个 HTTP 响应。
我需要 HTTP 状态、标头和正文。
AFAIK 对此没有本地数据类型。
我如何存储 HTTP 响应?
更新
我一直在思考这个问题。我想我最好遵循这种模式:我不会在 http 响应中搜索任何内容。它就像一个斑点。我想在其中搜索的所有内容都被提取出来并放入不同的列中。到目前为止,只有 http 状态代码会被使用,并且它会得到一个自己的列。
HTTP/1.1 规范通过RFC-7230指出:
int4
orint2
可以。bytea
如果您想处理任何 HTTP 服务器的响应,“不透明”几乎意味着这是唯一安全的选择。message-body = *OCTET
,因此bytea
也是唯一适合的类型,除非您更喜欢大型对象存储和 API。bytea
限制为 1Gb,因此如果您的目标是任何大小,您可能希望将值分块到几个较小的行中。实际上,非常大的 bytea 值往往是行不通的,我个人不会超过每行 128Mb。作为一个
text
?如果您需要标记它,您也可以在jsonb
客户端库中轻松完成。这通常很容易做到或者您可以将它规范化为一个
HEADER
和BODY
表,尽管使用 HTTP2 会稍微复杂一些。