HTTP 416

Posted 10年 Java程序员,硬核人生!勇往直前,永不退缩!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 416相关的知识,希望对你有一定的参考价值。

 

真是活久见, 竟然遇到了HTTP 416 

 

参照 http://baike.baidu.com/view/1790469.htm ,

416 Requested Range Not Satisfiable
如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。
假如 Range 使用的是字节范围,那么这种情况就是指请求指定的所有数据范围的首字节位置都超过了当前资源的长度。服务器也应当在返回416状态码的同时,包含一个 Content-Range 实体头,用以指明当前资源的长度。这个响应也被禁止使用 multipart/byteranges 作为其 Content-Type。

 

实验了一把, 发现原因在于客户端断点下载的时候,Range 头 设置错误。 两种情况可能出现这个错误:

假设文件长度是 100,

1  Range 指定的起始位置超过了 文件大小 : Range: bytes=101-199/100

2  Range 指定的起始位置大于 结束位置 : Range: bytes=50-1/50

 

以上是关于HTTP 416的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #416 (Div. 2) 811D Vladik and Favorite Game

LeetCode 416. 分割等和子集 c++/java详细题解

合并两个yuv文件的C++代码

Codeforces Round #416

史航416随笔

Codeforces 416D Population Size