HTTP 请求头字段 Range

Range 头指示服务器只传输一部分 Web 资源。这个头可以用来实现断点续传功能。

Range 字段可以通过三种格式设置要传输的字节范围:

Range  bytes=1000-2000  传输范围从 1000-2000字节。

Range  bytes=1000-         传输范围从 1000字节以后的所有内容。

Range  bytes=1000          传输最后 1000个字节。

HTTP 响应头字段 Accept-Ranges

Accept-Ranges: 这个字段说明 Web 服务器是否支持 Range 。支持则返回 Accept-Ranges: bytes

如果不支持,则返回 Accept-Ranges:none

Content-Ranges: 指定了返回的 Web 资源的字节范围。这个字段值的格式类似于: Content-Ranges:1000-3000/5000

URL url = new URL("http://localhost:8088/day05/range.txt");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Range", "bytes=5-"); // 从第6个字节开始的所有内容
InputStream in = conn.getInputStream();
int len = 0;
byte[] buffer = new byte[1024];
FileOutputStream outputStream = new FileOutputStream("c:\\a.txt", true); while ((len = in.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}

这段代码会将得到的结果追加到 c:\a.txt 文件中。

针对客户端的多次 Servlet 请求,服务器只会创建一个 Servlet 实例对象,直至 Web 容器退出。

在 Servlet 生命周期中,init 方法只被调用一次,而每个访问请求都会调用一次 service 方法。对于每次访问请求,Servlet 引擎都会创建一个新的 HttpServletRequest 请求对象和一个新的 HttpServletResponse 响应对象,然后将这两个对象作为参数传递给它调用的 Servlet 的 service() 方法,service 方法再根据请求方式分别调用 doGet() / doPost() 等方法。

在 web.xml 配置文件中,可以在 <servlet></servlet> 节点中添加 <load-on-startup>1</load-on-startup> 节点。

这个标记表示容器是否在启动的时候就加载这个 servlet

其中的 1 的意义:当值 >= 0 时,容器在应用启动时就加载这个 servlet

当值 < 0 或无此节点时,容器在该 servlet 被选择时才加载。正数的值越小,启动该 servlet 的优先级越高。

[Java.Web][Servlet]常用请求头.断点续传的更多相关文章

  1. [Java.Web][Servlet]常用请求头

    response.setStatus(302); response.setHeader("location", "/day04/1.html"); 这段代码可以 ...

  2. [Java][Web]Request 获取请求头和数据

    获取方式一 InputStream in = request.getInputStream(); int len = 0; byte buffer[] = new byte[1024]; while( ...

  3. Java Web Servlet知识点讲解(一)

    一.Web应用架构 如图所示: HTTP协议:一个简单的请求一响应协议,通常运行在TCP之上,它指定了客户端可能发送给服务器什么样的信息以及得到什么样的响应. JDBC:Java语言中用来规范客户端程 ...

  4. java web 一次请求从开始到响应结束的过程

    博客原文:   http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html   HTTP(HyperText Transfer ...

  5. HTTP常见响应状态码及解释、常用请求头及解释

    1.HTTP常见响应状态码及解释2XX Success(成功状态码) 200 表示从客户端发来的请求在服务器端被正常处理204 该状态码表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主 ...

  6. Java Web Servlet知识点讲解(二)

    一.定义Servlet: public class HelloServlet extends HttpServlet { @Override  protected void doGet(HttpSer ...

  7. 动手学servlet(三) 请求头和响应头信息

    获取请求头信息 package servletdemo; import java.io.IOException; import java.util.Enumeration; import javax. ...

  8. JAVA记录-Servlet RequestDispatcher请求转发

    RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...

  9. java web Servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

随机推荐

  1. cursor游标(mysql)

    /* 游标 cursor 什么是游标?为什么需要游标 使用存储过程对sql进行编程的时候,我们查询的语句可能是数据是多个,它总是一口气全部执行,我们无法针对每一条进行判断.也就是说,我们无法控制程序的 ...

  2. 安装spring报错:Cannot complete the install because of a conflicting dependency.

    问题: 在Eclipse里安装Spring插件,help->install new software用端点安装,说是出现软件依赖错误报错如下: Cannot complete the insta ...

  3. [Shell]bash的良好编码实践

    最好的bash脚本不仅可以工作,而且以易于理解和修改的方式编写.很多好的编码实践都是来自使用一致的变量名称和一致的编码风格.验证用户提供的参数是否正确,并检查命令是否能成功运行,以及长时间运行是否能保 ...

  4. iOS开发CocoaPods使用

    一.为什么用CocoaPods iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三 ...

  5. 怎么解决安装SqlServer2008总是提示Restart computer as failed

    安装SqlServer2008总是提示Restart computer as failed,重启电脑依然报这个錯.解决办法是在cmd窗口中使用命令setup.exe /SkipRules=Reboot ...

  6. grunt实现修改代码实时刷新浏览器

    grunt例子:https://github.com/Aquarius1993/gruntDemo grunt 实时刷新1:           1.安装chrome浏览器插件:liveReload ...

  7. Weinre(pc调试手机页面)

         Weinre是一款基于Web Inspector(Webkit)的远程调试工具,借助于网络,可以在PC上直接调试运行在移动设备上的远程页面,中文意思是远程Web检查器,有了Weinre,在P ...

  8. Git详解之六 Git工具

    以下内容转载自:http://www.open-open.com/lib/view/open1328070367499.html Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控 ...

  9. Why I am not afraid of AI (TBC)

    Freud! Yes, according to Freud's theory, most human activities are driven by libido (or aim-inhibite ...

  10. vc 编译器的一些精典报错

    本篇将平时遇到的一些编译错误 , 记录于此 , 同时帖上分析