206状态码,

大概就是浏览器先不下载要下载的文件,而是弹窗告诉用户,该文件是什么,有多大。由用户自行决定是否下载。

在html中,加一个a标签,a标签的地址是一个文件,就可实现该效果。

具体可参考下面解释:

HTTP/206响应

最后一条会话返回了HTTP/206 “Partial Content”响应.这种响应是在客户端表明自己只需要目标URL上的部分资源的时候返回的.这种情况经常发生在客户端继续请求一个未完成的下载的时候(通常是当客户端加载一个体积较大的嵌入文件,比如视屏或PDF文件),或者是客户端尝试实现带宽遏流的时候.

你可以通过Range请求头辨认出一个部分内容请求.该请求头表明了客户端需要请求资源的哪一部分:

在上图的请求中,客户端告诉服务器,它需要该视屏文件中从172,032到13,325,503字节范围内的数据.

在大多数情况下,客户端还会发送一些条件请求头,让服务器来辨别该返回哪个版本的资源.在上图的请求中,客户端把它在上次接收该资源的0到172032字节部分请求中服务器返回的ETag响应头作为了本次请求的If-Match请求头发送了出去,同样还把上次响应中的Last-Modified响应头用If-Unmodified-Since请求头发送了出去.

如果服务器发现该资源的版本与客户端所请求的版本不匹配,则会返回一个HTTP/412 Precondition Failed响应.如果客户端使用If-Range请求头而不是If-Match发送了上次收到的ETag响应头的值,且服务器发现客户端请求的版本与当前资源的版本不匹配,则服务器会返回整个资源数据.如果客户端需要完整的资源数据,使用If-Range可以减少一个网络请求.

服务器的Content-Range响应头表明了返回的是文件的哪一部分,Content-Length响应头表明了该部分文件的大小:

你也许注意到了Accept-Ranges响应头,服务器发送这个头的目的是让客户端知道服务器接受以字节为单位的部分内容请求.

如果你在Fiddler中看到了一个HTTP/206响应,但你需要的是一个完整的文件(比如你想保存一个完整的视屏文件),你可以选中该会话按下U键,或者按住Ctrl键点击工具栏中的Replay按钮,执行无条件请求.

可参考:

http://blog.163.com/wang_hai_fei/blog/static/30902031201333115425644/

最新文章

  1. 页面loading效果
  2. 原生JavaScript技巧
  3. 怎样用vs 2008 编译C程序
  4. cobbler深入学习
  5. Apple Swift编程语言入门教程
  6. 模拟Modbus协议问题
  7. Hadoop MapReduceV2(Yarn) 框架简介[转]
  8. MongoDB 聚合 (转) 仅限于C++开发
  9. bug_ _ android.view.WindowManager$BadTokenException: Unable to add window -- token
  10. Top Android App使用的组件 2
  11. tomcat在linux中的启动和查看相关信息
  12. 浏览器打开URL的方式和加载过程
  13. mysql 5.7 root密码重置(centos 7)
  14. 在Linux上要安装SSH协议
  15. SpringCloud(9)使用Spring Cloud OAuth2保护微服务系统
  16. CPanel/服务器文件及目录
  17. 【Mysql】key 、primary key 、unique key 与index区别
  18. Redhat(RHEL)配置静态IP
  19. 中企ITIL需软落地
  20. json数据爬虫。requests实现

热门文章

  1. css背景透明文字不透明
  2. opencv manager package was not found 解决办法
  3. 一些逼格略高的 js 片段
  4. php5.6 连接SQL SERVER
  5. tree 命令【转】
  6. python中的元类metaclass
  7. Oracle常用知识小总结
  8. 完全重装python和yum
  9. mongodb的使用(入门)
  10. maven 中pom.xml文件依赖包从本地加载如何配置?