Java.Web - Http协议初步接触

【HTTP请求消息头】
( Request-Line)     GET /manager/html HTTP/1.1     请求行,使用的HTTP规范...
下面是消息头
Accept      */*
Accept-Encoding     gzip, deflate      可以接收gzip文件,或者默认
Accept-Language     zh-CN        支持中文
Connection     Keep-Alive      保存常连接
Host     127.0.0.1:8080
Referer     http://127.0.0.1:8080/     告诉服务器我来自哪里?可以防盗链 
User-Agent     Mozilla/4.0     浏览器内核
(空行)
内容

Servlet 中获取头信息 --> String host = request.getHeader("HOST");
    可以通过获取 Referer 信息,来判断用户是从那个页面跳转过来的,来防止盗链
    直接 在浏览器输入 跳转过来,Referer 的值为null

【HTTP响应消息头】

Location    用于重定向,向浏览器发送一个新URI地址。 
    response.setStatus(302);
    response.setHeader("Location","URL");

Content-Disposition    用于下载文件
  •     演示下载文件 
    // 设置消息头 下载
    response.setHeader("Content-Disposition", "attachment;filename=test.jpg");    /* 1.读文件 */    // 获取文件全路径    String path = getServletContext().getRealPath("/images/test.jpg");    // 创建一个文件输入流
    FileInputStream fis = new FileInputStream(path);
    // 缓冲区
    byte[] buffer = new byte[1024];
    int length;
    while ((length = fis.read(buffer)) > 0) {/* 2.写文件 */out.write(buffer, 0, length);    }
  •     通过合适地设置Content-disposition的值
    S ervlet能指示浏览器是“内嵌”显示文件还是把它当作附件处理。
例1.内嵌显示一个文件
    Content-disposition: inline; filename=foobar.pdf
例2.往response里附加一个文件
    Content-disposition: attachment; filename=foobar.pdf

Expires 应该在什么时候认为文档已经过期,从而不再缓存它?
  • 设置页面不缓存
    response.setDateHeader(" Expires ",-1); //-1则表示不缓存(IE)
    // 下面两句代码是为了兼容性
    response.setHeader("Cache-Control","no-cache");
    response.setHeader("Pragma","no-cache");
  • 设置页面缓存一定时间
    response.setDateHeader(" Expires ",  System.currentTimeMillis()+3600*1000*24 );  // 缓存一天




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值