常用Http头信息解析应用
2015-05-18 11:48
323 查看
1. 通过response控制响应状态码
200 OK 302 重定向 304 not modified 查找本地 404 页面不存在 500 服务器内部错误在Servlet中用法:response.setStatus(404);
2. 通过302状态码 和 Location头信息字段 完成重定向
response.setStatus(302);response.setHeader("Location", "welcome.jsp");
重定向代码可以 通过response.sendRedirect简化
response.sendRedirect("welcome.jsp");
3. 设置响应数据的MIME格式
如果响应数据为html代码:response.setContentType("text/html;charset=utf-8");
如果是一个下载文件的程序:
File file = new File("c:/mm.jpg");
查找tomcat/conf/web.xml 获得文件对应mime类型:
response.setContentType(getServletContext().getMimeType(file.getName()));
4. 通过refresh 头信息,控制页面自动刷新
5秒后自动跳转 itcast主页:response.setHeader("refresh", "5;url=http://www.itcast.cn");// 单位是秒
5. 设置响应的内容不缓存
写三个头信息 为了解决浏览器兼容问题:response.setHeader("expires", "-1");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
设置数据缓存,缓存一小时:
response.setDateHeader("expires",
System.currentTimeMillis() + 1000 * 60 * 60);// 过期时间 = 当前时间+缓存时长
6. 通过content-disposition 控制文件以附件下载
File file = new File("d:/love.mp3");response.setContentType(getServletContext().getMimeType(file.getName()));
response.setHeader("Content-Disposition", "attachment;filename="+
URLEncoder.encode(file.getName(), "utf-8"));//将文件名进行编码
7. 将响应数据 以gzip格式压缩
response.setHeader("content-encoding", "gzip");String s = "fgasfgdsfgadsfgasfgaskldfjlaskdfasdklfhasdfjkadshfjkasdhfjkasdhfasjkldfhkladshfklasdfksldhfkadskhfladsfhkladsfhasldhflkadsfklasldfhklasdfhaskldfhkladshfklasdhfklasdhfashldfkls";
// 压缩前的数据
byte[] b1 = s.getBytes();
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(out);
gzipOutputStream.write(b1);
gzipOutputStream.flush();
gzipOutputStream.close();
System.out.println("原来大小:" + b1.length);
// 压缩后的内容
byte[] b2 = out.toByteArray();
System.out.println("压缩后大小:" + b2.length);
response.setHeader("content-length", b2.length + "");
response.getOutputStream().write(b2);
8. 通过请求头字段 referer防止盗链
String referer = request.getHeader("referer");// referer不能为空 且 以网站路径开始
if (referer != null && referer.startsWith("http://www.estore.com")) {
// 不是盗链
} else {
// 盗链
}
相关文章推荐
- 常用HTTP响应头和请求头信息
- java应用集锦9:httpclient4.2.2的几个常用方法,登录之后访问页面问题,下载文件
- Linux下查看源码编译的常用应用服务的信息
- HtmlUnit、httpclient、jsoup爬取网页信息并解析
- 【慕课笔记】4-8 应用DOM4J及JDOM方式解析XML—应用DOM4J解析子节点的信息
- HTTP在.NET中的一些应用和解析
- Linux 系统应用编程——网络编程(常用命令解析)
- HTTP常用配置信息详解
- WEUI应用,用JS封装常用信息—Progress
- HttpServletRequest、request常用方法、request常见应用、请求转发、RequestDispatcher
- Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
- iOS代码分享:分享、加密、解析、二维码、Http多线程、重力感应、常用界面重载等
- Linux 系统应用编程——网络编程(常用命令解析)
- HTTP常用状态码查询全面解析
- C语言解析pcap文件得到HTTP信息实例
- Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
- 常用HTTP Content-type头信息及文件类型对照
- Http+XMl报文解析常用方法示例
- HttpServletRequest、request常用方法、request常见应用、请求转发、RequestDispatcher
- 基于HttpServletRequest 相关常用方法的应用