java EE : http 协议响应头部信息验证
一 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 协议响应头部信息验证的更多相关文章
- Java Web ——http协议响应报文
HTTP 响应报文 HTTP 响应报文由状态行.响应头部.空行 和 响应包体 4 个部分组成,如下图所示: 下面对响应报文格式进行简单的分析: 状态行:状态行由 HTTP 协议版本字段.状态码和状态码 ...
- java EE : http 协议之请求报文、响应报文
1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行 b)请求头 c)请求的内容,如果没有,就是空白字符 2)服务端->客户端(响应response)有三部 ...
- Ajax获取服务器响应头部信息
$.ajax({ type: 'HEAD', // 获取头信息,type=HEAD即可 url : window.location.href, complete: function( xhr,data ...
- Java EE.Servlet.生成响应
Servlet的核心职责就是根据客户端的请求生成动态响应. 1.编码类型 2.流操作(下载文件) servlet支持两种格式的输入/输出流.一种是字符输入输出流.另一种是字节输入输出流. 3.重定向
- HTTP请求头和响应头部包括的信息有哪些?(转)
转载自:https://www.cnblogs.com/hxc555/p/6506154.html 每个HTTP请求和响应都会带有相应的头部信息.默认情况下,在发送XHR请求的同时,还会发送下列头部信 ...
- HTTP请求头和响应头部包括的信息有哪些?
每个HTTP请求和响应都会带有相应的头部信息.默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 ...
- wget/curl查看请求响应头信息
wget / curl 是两个比较方便的测试http功能的命令行工具,大多数情况下,测试http功能主要是查看请求响应 头信息 ,而给这两个工具加上适当的命令行参数即可轻易做到,其实查man手册就能找 ...
- curl/wget 测试http请求的响应头信息
1. wget –debug wget可以使用debug信息来查看信息头,如下: [root@localhost ~]# wget --debug http://192.168.1.101:8080/ ...
- 深入理解ajax系列第三篇——头部信息
前面的话 每个HTTP请求和响应都会带有相应的头部信息,其中有的对开发人员有用.XHR对象提供了操作头部信息的方法.本文将详细介绍HTTP的头部信息 默认信息 默认情况下,在发送XHR请求的同时,还会 ...
随机推荐
- C++单例模式设计与实现
C++单例模式主要用途就是整个程序中只实例化一个对象,之后获取到的都是该对象本身进行处理问题. 单例模式一般都是在函数中采用局部静态变量完成的,因为局部的静态变量生命周期是随着程序的生命周期 一起结束 ...
- 【题解】【LibreOJ Beta Round #5】游戏 LOJ 531 基环树 博弈论
Prelude 题目链接:萌萌哒传送门♪(^∇^*) Subtask 1 & 2 这是什么鬼题面... 首先要看出,这就是一个基环树博弈. 具体题意:给出一个基环内向树,一个棋子初始在\(1\ ...
- 题解【luogu2045 方格取数游戏加强版】
Description 给出一个 \(n*n\) 的矩阵,每一格有一个非负整数 \(A_{i,j}\) ,(\(A_{i,j} <= 1000\))现在从 \((1,1)\) 出发,可以往右或者 ...
- sessionStorage和localStorage的使用
不管是sessionStorage,还是localStorage,可使用的API都相同,常用的有如下几个(以localStorage为例): 保存数据:localStorage.setItem(key ...
- JavaSE的学习路线
基于现阶段的JavaEE学习的对象,主要是趋向于Web的方向,主要就是说在JavaWeb的基础上进行进一步的开发和学习,下面我会将自己总结的对于自己的一点关于JavaEE学习路线会逐步讲解. 第一部分 ...
- 前端PHP入门-020-重点日期函数之获取时期时间信息函数
你需要知道关于时间的几个概念: 时区/世界时/unix时间戳 1.时区 这个概念,之前大家听说过很多.我们来啰嗦两句,我们现实生活中使用的实区,在电脑里面也是一样有规定的. 1884年在华盛顿召开国际 ...
- 在服务器上运行Jar包
在服务器上运行Jar包 并且该Jar包依赖其他的Jar文件的时候,采用如下格式 java -Djava.ext.dirs=你依赖的Jar文件路径 -jar 你要运行的Jar文件 包名+类名 例如: j ...
- LightOJ 1364 树形DP
52张扑克牌,问拿到指定数量的4个花色的最少次数期望是多少,其中拿到joker必须马上将其视作一种花色,且要使后续期望最小. 转移很容易想到,主要是两张joker的处理,一个状态除了普通的4个方向的转 ...
- 对WebView进行的一些设置
webView.getSettings().setJavaScriptEnabled(true); //使用setting WebSettings webSettings = webView.getS ...
- MyBatis笔记之配置输出日志并打印输出SQL语句
1. 引入Log4J的Maven依赖: <dependency> <groupId>log4j</groupId> <artifactId>log4j& ...