httpbin - 协议调试工具
httpstatuses - 协议状态码查询
httpie - cURL-like tool for humans
Fiddler
Livid
292D
557.1D
V2EX  ›  HTTP

如果 HTTP 协议在设计的时候,就在 Response Header 中加入一个可选的 MD5 头呢?

  •  2
     
  •   Livid ·
    PRO
    · Dec 13, 2014 · 4584 views
    This topic created in 4209 days ago, the information mentioned may be changed or developed.
    在一些对文件完整性要求极高的场合,下载之后是一定需要验证文件的 MD5 或者 SHA1 的。如果能够直接在 Response Header 里就有的话,可以省一个 HTTP 请求。发布的时候也会简单一些。

    或者 RFC 里其实已经有类似的考虑了,只是我还不知道?
    16 replies    2014-12-14 21:56:19 +08:00
    choury
        1
    choury  
       Dec 13, 2014 via Android   ❤️ 2
    既然有人可以改响应内容,为什么不能改Header
    Livid
        2
    Livid  
    MOD
    OP
    PRO
       Dec 13, 2014
    果然是有的:

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

    RFC 2616 Section 14.15
    Livid
        3
    Livid  
    MOD
    OP
    PRO
       Dec 13, 2014
    看来还是应该通读一遍 RFC 2616
    Livid
        4
    Livid  
    MOD
    OP
    PRO
       Dec 13, 2014
    Livid
        5
    Livid  
    MOD
    OP
    PRO
       Dec 13, 2014
    Apache 2 是有这个功能的:

    http://httpd.apache.org/docs/current/mod/core.html#contentdigest

    输出结果需要经过 Base64 编码。
    Kai
        6
    Kai  
       Dec 13, 2014
    1.1 规范里面的这个 Content-MD5 原来不是服务器自动生成的……
    Livid
        7
    Livid  
    MOD
    OP
    PRO
       Dec 13, 2014 via iPhone
    @Kai 如果是通过 HTTP 协议提供配置文件下载,那这个头就太有必要了。你懂的。
    Kai
        8
    Kai  
       Dec 13, 2014
    @Livid 嗯,可还是得自己加上。nginx 好像没有这个项
    est
        9
    est  
       Dec 13, 2014
    嗯。我正想说Content-MD5来着。
    xinglp
        10
    xinglp  
       Dec 13, 2014
    一般都是丢包,传输未完成就断开,数据包出错的情况还真是很少。ip包本身还有校验
    a2z
        11
    a2z  
       Dec 13, 2014
    @choury
    +1
    HMAC还差不多
    flynaj
        12
    flynaj  
       Dec 13, 2014
    文件完整性要求极高你还是签个名,现在稍微大点的公司,发布的文件都是带数据签名的.像QQ安装包签名.里面的文件再签名.验证也非常简单.
    pubby
        13
    pubby  
       Dec 13, 2014
    @xinglp 遇到过渣网卡/驱动导致数据不一致的情况
    LukeXuan
        14
    LukeXuan  
       Dec 14, 2014 via Android
    如果是大文件效率太低…
    infinte
        15
    infinte  
       Dec 14, 2014
    TCP 本身就有 CRC32 不用多此一举
    julyclyde
        16
    julyclyde  
       Dec 14, 2014
    Content-MD5没啥用
    在206相应的情况下,Content-MD5的值是针对整文件的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3615 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 04:56 · PVG 12:56 · LAX 21:56 · JFK 00:56
    ♥ Do have faith in what you're doing.