curl -sIX HEAD 二进制文件

发布于 2024-12-02 07:37:27 字数 921 浏览 1 评论 0原文

#!/bin/bash

HEAD=`curl -sIX HEAD http://gert.iriscouch.com/www/test`
echo "$HEAD"
if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then
 echo "${BASH_REMATCH[1]}"
fi

HEAD=`curl -sIX HEAD http://gert.iriscouch.com/www/test/user.png`
echo "$HEAD"
if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then
 echo "${BASH_REMATCH[1]}"
fi

在第二个 HEAD 上它与 Etag 不匹配?

HTTP/1.1 200 OK
Server: CouchDB/1.1.0 (Erlang OTP/R14B03)
Etag: "2-bd7278b9cc8b0ddaf7c863102f42f246"
Date: Thu, 01 Sep 2011 19:47:02 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 207
Cache-Control: must-revalidate

2-bd7278b9cc8b0ddaf7c863102f42f246

HTTP/1.1 200 OK
Server: CouchDB/1.1.0 (Erlang OTP/R14B03)
ETag: "2-bd7278b9cc8b0ddaf7c863102f42f246"
Date: Thu, 01 Sep 2011 19:47:03 GMT
Content-Type: image/png
Content-MD5: SS+3YnbRbRQ4uiJKcnFkdA==
Content-Length: 4003
Cache-Control: must-revalidate
Accept-Ranges: bytes
#!/bin/bash

HEAD=`curl -sIX HEAD http://gert.iriscouch.com/www/test`
echo "$HEAD"
if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then
 echo "${BASH_REMATCH[1]}"
fi

HEAD=`curl -sIX HEAD http://gert.iriscouch.com/www/test/user.png`
echo "$HEAD"
if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then
 echo "${BASH_REMATCH[1]}"
fi

On the second HEAD it does not match the Etag?

HTTP/1.1 200 OK
Server: CouchDB/1.1.0 (Erlang OTP/R14B03)
Etag: "2-bd7278b9cc8b0ddaf7c863102f42f246"
Date: Thu, 01 Sep 2011 19:47:02 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 207
Cache-Control: must-revalidate

2-bd7278b9cc8b0ddaf7c863102f42f246

HTTP/1.1 200 OK
Server: CouchDB/1.1.0 (Erlang OTP/R14B03)
ETag: "2-bd7278b9cc8b0ddaf7c863102f42f246"
Date: Thu, 01 Sep 2011 19:47:03 GMT
Content-Type: image/png
Content-MD5: SS+3YnbRbRQ4uiJKcnFkdA==
Content-Length: 4003
Cache-Control: must-revalidate
Accept-Ranges: bytes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失与倦" 2024-12-09 07:37:27

情况有所不同。

if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then


Etag: "2-bd7278b9cc8b0ddaf7c863102f42f246"

ETag: "2-bd7278b9cc8b0ddaf7c863102f42f246"

使用

if [[ $HEAD =~ [Ee][Tt][Aa][Gg]:\ \"(.*)\" ]]; then

我希望这有帮助

The case is different.

if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then


Etag: "2-bd7278b9cc8b0ddaf7c863102f42f246"

ETag: "2-bd7278b9cc8b0ddaf7c863102f42f246"

use

if [[ $HEAD =~ [Ee][Tt][Aa][Gg]:\ \"(.*)\" ]]; then

I hope this helps

生死何惧 2024-12-09 07:37:27

来自 http://www.w3.org/Protocols/rfc2616/ rfc2616-sec4.html#sec4.2

字段名称不区分大小写。

该错误存在于您的代码中,“ETAG”、“etag”、“ETag”和“Etag”都是标头值的同等有效表达式。

但是,我在下一个版本 (1.2) 中更改了 CouchDB,以按照“严格发送内容”原则一致使用“ETag”。

From http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

Field names are case-insensitive.

The bug is in your code, 'ETAG', 'etag', 'ETag' and 'Etag' are all equally valid expressions of the header value.

However, I have changed CouchDB in the next release (1.2) to consistently use 'ETag' on the 'be strict in what you send' principle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文