分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

http范围请求

发布时间:2023-09-06 02:14责任编辑:苏小强关键词:http


基于范围请求 可以实现 断点续传多线程分片下载

HTTP/1.1之后才支持,需要双端都支持 

服务端头信息中有 Accept-Ranges:bytes 表明服务器支持范围请求

curl -I ?"http://www.gnu.org/software/gettext/manual/gettext.html" ??HTTP/1.1 200 OKDate: Sat, 08 Sep 2018 14:31:38 GMTServer: Apache/2.4.7Access-Control-Allow-Origin: (null)Accept-Ranges: bytesVary: Accept-EncodingCache-Control: max-age=0Expires: Sat, 08 Sep 2018 14:31:38 GMTContent-Length: 1408775Content-Type: text/htmlContent-Language: en

范围请求:

http code 返回  206 Partial Content

客户端请求头:Content-Range: bytes 0-1408774/1408775

start-end/content-length

end 最大为 content-length - 1, start 从0开始, 包括开始和结束值,超过范围有可能返回 HTTP 416 Range Not Satisfiable  ,有的服务器会自动修正

Range 还有几种不同的方式来限定范围,可以根据需要灵活定制:1. 500-1000:指定开始和结束的范围,一般用于多线程下载。2. 500- :指定开始区间,一直传递到结束。这个就比较适用于断点续传、或者在线播放等等。3. -500:无开始区间,只意思是需要最后 500 bytes 的内容实体。4. 100-300,1000-3000:指定多个范围,这种方式使用的场景很少,了解一下就好了

范围请求示例:

范围请求需要在head中增加 Range: bytes=0-10

curl -I -r 0-100 "http://www.gnu.org/software/gettext/manual/gettext.html"

curl -H "Range: bytes=0-10"  http://www.gnu.org/software/gettext/manual/gettext.html
HTTP/1.1 206 Partial ContentDate: Sat, 08 Sep 2018 14:28:04 GMTServer: Apache/2.4.7Access-Control-Allow-Origin: (null)Accept-Ranges: bytesVary: Accept-EncodingCache-Control: max-age=0Expires: Sat, 08 Sep 2018 14:28:04 GMTContent-Range: bytes 0-100/1408775 # 本次返回内容的 开始-结束/总长度Content-Length: 101 #本次返回的总长度Content-Type: text/htmlContent-Language: en

 资源变化

  有时下载的过程中资源可以能已经发生变化了这时就需要重新下载, 可以通过 ETag 或者 Last-Modified 来标识当前资源是否变化

http范围请求

原文地址:https://www.cnblogs.com/siqi/p/9610896.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved