一  location :*****   302   重定向 

private void doWork(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置响应 code
resp.setStatus(302);
// 设置响应 header 参数 ,通知浏览器进行重定向
resp.setHeader("location", "index.jsp");
}

二   refresh :3;url=index.jsp  浏览器自动刷新

 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置响应 header 参数,通知浏览器 3 秒后进行自动刷新,重定向至 url 指定地址
resp.setHeader("refresh","3;url=index.jsp"); }

三  content-type: image/png   告知浏览器调用哪个模块打开,比如:显示图片、显示 html 信息

    @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置 header 参数 ,告知浏览器调用何种模块打开
resp.setHeader("content-type", "image/png");
// 使用 IO 流返回图片字节信息
InputStream inputStream = new FileInputStream("E:\\trunck\\chapter02\\servletTest2\\web\\test.png");
int len = -1;
byte[] bytes = new byte[1024];
while ((len = inputStream.read(bytes)) != -1) {
resp.getOutputStream().write(bytes, 0, len);
}
inputStream.close(); }

四   Content-Disposition :attachment;filename=文件名   通知浏览器下载该文件

   @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
File file=new File("E:\\trunck\\chapter02\\servletTest2\\web\\test.png");
// 设置 header 参数,通知浏览器下载该文件
resp.setHeader("Content-Disposition","attachment;filename="+file.getName());
InputStream inputStream=new FileInputStream(file);
int len = -1 ;
byte[] bytes=new byte[1024];
while ((len=inputStream.read(bytes))!=-1){
resp.getOutputStream().write(bytes,0,len);
}
inputStream.close();
}

五   content-encoding : gzip(服务器端响应过来的压缩模式)    content-length :字节长度

Accept-Encoding: gzip, deflate (客户端通知服务端,浏览器所支持的压缩模式)

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Encoding

  @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String content = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
System.out.println("字符串长度:" + content.length());
System.out.println("字符串转数组长度:" + content.getBytes().length);
// IO 流中 ByteArrayOutputStream
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
gzipOutputStream.write(content.getBytes());
gzipOutputStream.close(); byte[] bytes = byteArrayOutputStream.toByteArray();
System.out.println("压缩后数组长度:" + bytes.length); resp.setHeader("content-encoding", "gzip");
resp.setHeader("content-length", bytes.length + "");
resp.getOutputStream().write(bytes); }

六   expires :-1(HTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期)    cache-control:no-cache pragma:no-cache  告知浏览器不进行缓存

  @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("expires", "-1");
resp.setHeader("cache-control", "no-cache");
resp.setHeader("pragma", "no-cache"); resp.getWriter().write("abccc");
}

java EE : http 协议响应头部信息验证的更多相关文章

  1. Java Web ——http协议响应报文

    HTTP 响应报文 HTTP 响应报文由状态行.响应头部.空行 和 响应包体 4 个部分组成,如下图所示: 下面对响应报文格式进行简单的分析: 状态行:状态行由 HTTP 协议版本字段.状态码和状态码 ...

  2. java EE : http 协议之请求报文、响应报文

    1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行 b)请求头 c)请求的内容,如果没有,就是空白字符 2)服务端->客户端(响应response)有三部 ...

  3. Ajax获取服务器响应头部信息

    $.ajax({ type: 'HEAD', // 获取头信息,type=HEAD即可 url : window.location.href, complete: function( xhr,data ...

  4. Java EE.Servlet.生成响应

    Servlet的核心职责就是根据客户端的请求生成动态响应. 1.编码类型 2.流操作(下载文件) servlet支持两种格式的输入/输出流.一种是字符输入输出流.另一种是字节输入输出流. 3.重定向

  5. HTTP请求头和响应头部包括的信息有哪些?(转)

    转载自:https://www.cnblogs.com/hxc555/p/6506154.html 每个HTTP请求和响应都会带有相应的头部信息.默认情况下,在发送XHR请求的同时,还会发送下列头部信 ...

  6. HTTP请求头和响应头部包括的信息有哪些?

    每个HTTP请求和响应都会带有相应的头部信息.默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 ...

  7. wget/curl查看请求响应头信息

    wget / curl 是两个比较方便的测试http功能的命令行工具,大多数情况下,测试http功能主要是查看请求响应 头信息 ,而给这两个工具加上适当的命令行参数即可轻易做到,其实查man手册就能找 ...

  8. curl/wget 测试http请求的响应头信息

    1. wget –debug wget可以使用debug信息来查看信息头,如下: [root@localhost ~]# wget --debug http://192.168.1.101:8080/ ...

  9. 深入理解ajax系列第三篇——头部信息

    前面的话 每个HTTP请求和响应都会带有相应的头部信息,其中有的对开发人员有用.XHR对象提供了操作头部信息的方法.本文将详细介绍HTTP的头部信息 默认信息 默认情况下,在发送XHR请求的同时,还会 ...

随机推荐

  1. C++ 局部静态变量,全局变量,全局静态变量,局部变量的区别和联系

    C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域. 从作用域看: 全局变量具有全局作用域.全局变量只需在一个源文件 ...

  2. python基础7--集合

    集合set Python的set集合是一个无序不重复元素集.基本功能包括关系测试和消除重复元素.集合对象还支持union(并集).intersection(交集).difference(差集) 和 s ...

  3. CSS3实现文本垂直排列

    最近的一个项目中要使文字垂直排列,也就是运用了CSS的writing-mode属性. writing-mode最初时ie中支持的一个属性,后来在CSS3中增添了这一新的属性,所以在ie中和其他浏览器中 ...

  4. 图论&搜索:K短路-启发式搜索

    判断第k短路的权值是否小于T 直接把队友的代码拿过来了,一定很经典 #include <iostream> #include <queue> #include <cstr ...

  5. 2015/9/28 Python基础(19):类的定制和私有性

    用特殊方法定制类前面我们讲了方法的两个重要方面:首先,方法必须在调用前被绑定(到它们相应类的某个实例中):其次,有两个特殊方法可以分别作为构造器和解构器的功能,分别名为__init__()和__del ...

  6. Python学习笔记(二十)调试

    摘抄自: https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143191557 ...

  7. <LC刷题一>相加为0的数之leetcode1&2&15&16

    --题目导航见页面左上角的悬浮框#目录导航#-- 相似题型导航 1.1 twosum两数之和  ||  2.2 3Sum三数之和  ||  2.3 3Sum Closest最接近的三数之和 ----- ...

  8. 用Matlab实现字符串分割(split)

    用Matlab实现字符串分割(split)Posted on 2011/08/08 Matlab的字符串处理没有C#强大,本身又没有提供OO特性,需要依赖别的手段完成这项任务. 我们在这里借助正则表达 ...

  9. JQuery的链式编程,隐式迭代是啥意思?

    链式编程 1.好处 "一句话,链式编程可以省去很多重复的代码." 这话什么意思呢?举个例子. /*设置obj对象的两个属性*/ //普通做法是这样的 obj.name = '小明' ...

  10. 基本控件文档-UITableView---iOS-Apple苹果官方文档翻译

    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3496969.html 技术博客http://www.cnblogs.com/ChenYi ...