lua: `zlib` 不兼容 HTTP?

我正在使用 wrk 测试我的 HTTP 服务器,因此 Lua 是构建 HTTP 请求体的首选脚本。

当使用 lua 的 zlib 包时:

zlib = require 'zlib'
md5 = require 'md5'
x = zlib.deflate(5,31)("abcdefghigklmn", "finish")
print(md5.sumhexa(x))

我得到了 f2fa3c8e97506f0d6e27248a82b9b76d,但是当使用 golang 的 gzip (我在客户端和服务器中都使用了它,并且它与 HTTP 兼容)时,我得到了不同的值 34b6ba0659ded8aa506e07afc01dd1f8

import (
    "bytes"
    "fmt"
    "crypto/md5"
    "compress/gzip"
    "encoding/hex"
)

var buf bytes.Buffer
g := gzip.NewWriter(&buf)
g.Write([]byte{"abcdefghigklmn"})
h := md5.New()
h.Write(buf.Bytes())
fmt.Printf("%s", hex.EncodeToString(h.Sum(nil)))

是否存在其他与 HTTP gzip 兼容的 lua 的 gzip 实现?

点赞