`

设置响应头字段的些许应用

阅读更多
禁止浏览器缓存当前文档内容

只要增加如下的响应头字段:

response.setDateHeader("Expires",0);
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");

不是所有的浏览器都能完全支持上面的三个响应头,因此最好是同时使用上面三个响应头,只有浏览器能支持其中任何一种,就能可靠地禁止浏览器缓存当前页面。

还可以在HTML文档中利用<meta>标签的http-equiv属性来达到这一效果。
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">

实现动态文件内容下载

1.Servlet程序必须告诉浏览器其说输出的内容的类型不是普通的文本文件或HTML文件,而是一个要保存到本地的下载文件,这就需要通过HttpServletResponse.setContentType方法设置Content-Type头字段的值为浏览器无法使用某种方式或激活某个程序来处理的MIME类型,例如:“application/octet-stream”或"application/x-msdownload"等。
2.需要通过HttpServletResponse.setHeader方法设置Content-Disposition头的值为"attachment;filename=文件名"。
3.因为附件文件可以是各种类型的文件,要讲附件文件中的内容传送给客户端,其中的内容应被当做二进制处理,所以应该调用HttpServletResponse.getOutputStream方法返回的ServletOutputStream对象来向客户端写入附件文件内容,而不应使用Http
ServletResponse.getWriter方法返回的PrintWriter对象。

利用Referer请求头阻止“盗链”

防止盗链,需要检查请求的来路,只接受本站内的页面链接进来的下载请求,而阻止其他站点的页面链接进来的下载请求。要实现这样的功能,就需要检查请求消息的referer头字段是否与本站匹配。

代码片段:
String referrer = request.getHeader("referer");
String sitePart = "http://" + request.getServerName();
if(referrer!=null && referrer.startsWith(sitePart))
{
//处理下载请求...
}
else
{
//非法下载请求跳转到本站的下载说明页
RequestDispatcher rd = request.getRequestDispatcher("/down.html");
rd.forward(request,response);
}

利用Referer请求头隐藏JavaScript源代码

利用JavaScript可以实现许多网页特效功能,但是,访问者可以轻松查看到所有的JavaScript源代码,即使是把代码放在js文件中也无法保密。如果让js文件通过一个服务器端程序动态创建,结合使用Referer请求头字段就可以防止他人查看到JavaScript源码。

大致原理和上面的防盗链类似
在servlet中加入下面的代码块:

String referrer = request.getHeader("referer");
String sitePart = "http://" + request.getServerName();
response.setContentType("text/javascript;charset=utf-8");
PrintWriter out = response.getWriter();
if(referrer!=null && referrer.startsWith(sitePart))
{
out.println(
//向客户端输出JavaScript的代码块
);

}

在显示页面中要加入JavaScript代码的时候这样设置:
<script type="text/javascript" src="servlet的访问路径">
</script>
有些浏览器在有缓存网页的情况下,还是可以看到JavaScript源码的,只要在servlet代码里加上防止缓存的代码即可。

分享到:
评论

相关推荐

    HTTP各状态码生成原理,请求头、响应头各字段含义(爬虫深入必备知识).docx

    响应头则有Server(标识服务器软件)、Content-Type(指示响应体的数据类型)、Set-Cookie(设置客户端的cookie)等字段。例如,Cache-Control和Pragma头用于控制缓存策略,Location头在3xx重定向时指示新的URL,而...

    Http通过响应头控制浏览器行为

    3. 响应头:响应头字段包括`Content-Type`(指示响应体的MIME类型)、`Server`(服务器软件信息)、`Location`(重定向时提供新URL)等。特别地,`Cache-Control`和`Expires`字段可以控制缓存策略,减少不必要的网络...

    JavaWeb开发技术-HTTP响应消息 HTTP响应头.pptx

    JavaWeb开发技术-HTTP响应消息HTTP响应头 JavaWeb开发技术中,HTTP响应消息头是服务器向客户端发送的响应消息的重要组成部分。HTTP响应消息头是指在响应状态行之后的多行文本,它们是由头字段名称和值构成的,每个...

    HTTP协议头字段及分析

    ### HTTP协议头字段及分析 #### 一、概述 HTTP(HyperText Transfer Protocol)作为互联网上应用最为广泛的一种网络协议,主要用于规定客户端与服务器之间如何通信。它是一种基于请求与响应模型的应用层协议,用于...

    Http协议之请求头和响应头

    在深入探讨HTTP协议中的请求头和响应头之前,我们首先简要回顾一下HTTP协议的基本概念。HTTP(Hypertext Transfer Protocol)是用于从万维网服务器传输超文本到本地浏览器的传输协议,它允许数据在客户端和服务器...

    PB数据窗口根据字段内容设置字段宽度

    6. **考虑多语言环境**:如果应用支持多语言,还需要考虑不同语言的字符宽度差异,以避免字段显示不全。 7. **使用脚本事件**:可以利用数据窗口的`ItemStateChange`事件来实时检测字段内容变化,并相应调整宽度。 ...

    常见请求和响应头-说明.docx

    HTTP 请求和响应头字段详解 HTTP 请求头字段是指在 HTTP 请求中,客户端发送给服务器的头信息,用于告诉服务器客户端的需求和限制。下面是常见的 HTTP 请求头字段: 1. Accept: 指定客户端能够接收的内容类型,...

    DBF文件头及字段模板

    在深入理解DBF文件头及字段模板之前,我们先来了解一下DBF文件的基本结构。 **DBF文件头** DBF文件头包含了文件的基本信息,包括文件创建日期、记录数量、字段个数、每条记录的大小等。具体来说,文件头通常包含...

    常见请求和响应头-说明.doc

    请求头主要用于指示客户端的偏好和能力,而响应头则包含了服务器对请求的响应信息。以下是一些常见的请求头和响应头及其详细解释: 1. Accept:这个头字段用于指定客户端能够接收的内容类型,例如文本、HTML、JSON...

    Java 实例 - 获取 URL 响应头信息源代码+详细指导教程.zip

    除了基本的`getHeaderFields()`方法,还可以使用`getHeaderField(String name)`来获取特定的响应头字段。例如,如果我们只关心"Content-Type"头,可以这样写: ```java String contentType = connection....

    python使用scapy实现修改pcap响应头中的Date字段内容

    修改pcap包,如果包含http响应头,修改其中的date字段,重新生成新的pcap。 python环境3.9.9,scapy版本:2.5.0

    【JavaScript源代码】Ajax解决跨域之设置CORS响应头实现跨域案例详解.docx

    ### JavaScript源代码:Ajax解决跨域之设置CORS响应头实现跨域案例详解 #### 跨源资源共享(CORS)概述 跨源资源共享(Cross-Origin Resource Sharing,简称CORS)是一种安全机制,允许Web应用程序从不同的域名...

    WAPI协议完整性测试——WAI头部字段报文

    - **针对单播密钥协商确认分组的WAI类型的协议完整性测试**:评估设备对于异常类型字段值的响应。 - **针对组播密钥通告分组的WAI分组序号的协议完整性测试**:通过发送具有异常分组序号的组播密钥通告分组,来测试...

    设置表的字段属性PPT学习教案.pptx

    在数据库管理中,设置表的字段属性是一项至关重要的任务,它直接影响着数据的存储、管理和使用效率。本PPT学习教案主要围绕会计学中的数据库管理,详细讲解了如何设置表的字段属性,包括知识目标、技能目标和情感...

    02HTTP请求头响应头详解1

    分隔响应头和响应正文的必须空行。 4. 响应正文: 服务器返回给客户端的实际内容,可以是HTML、JSON、图片或其他类型的数据。 三、HTTP方法的区别 1. GET与POST的主要区别: - GET是幂等的,意味着多次执行...

    Oracle自增字段的实际应用

    Oracle自增字段的实际应用,对比各种数据库自增字段的应用!

    python获取响应某个字段值的3种实现方法

    当响应数据是字符串格式时,可以使用正则表达式来匹配并提取目标字段值。首先导入`requests`和`re`库。假设我们需要从XML响应中获取`值&gt;`标签内的内容,可以编写如下代码: ```python import requests import re...

    http头部cache-control字段解析

    本文将深入解析`Cache-Control`字段的含义、作用及其各种指令,帮助你更好地理解和应用这个关键的HTTP头信息。 一、`Cache-Control`简介 `Cache-Control`头字段是在HTTP/1.1中引入的,用于替代或扩展早期HTTP版本中...

    从零开始学习Node.js系列教程之设置HTTP头的方法示例

    在Node.js中设置HTTP头主要使用res.setHeader()方法,这个方法允许我们为响应头添加字段,最常见的设置包括Content-Type、Content-Length、Set-Cookie等。Content-Type通常用于指示响应的内容类型,比如"text/html"...

    Oracle 12c不可见字段的应用.pdf

    【Oracle 12c不可见字段的应用】 Oracle 12c是Oracle数据库的一个重要版本,引入了许多创新特性,其中就包括“不可见字段”的概念。不可见字段是一种数据隐藏技术,它允许数据库管理员在表中定义某些列,但这些列在...

Global site tag (gtag.js) - Google Analytics