(4)请求头:referer。响应头:状态行、refresh、Content-Disposition、页面缓存
来源:互联网 发布:react.js angularjs 编辑:程序博客网 时间:2024/05/16 06:38
一、请求头
POST /day10/get_post.html HTTP/1.1
Host: localhost:8080 —–(必须的)当前请求访问的目标地址(主机:端口号)
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0—-浏览器类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 —-浏览器接收的数据类型
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate ——浏览器接收的数据压缩方式
Content-Type: application/x-www-form-urlencoded
Content-Length: 13
Referer: http://localhost:8080/day10/get_post.html —-当前请求来自哪里 ,可以防盗连
Connection: keep-alive—-浏览器和服务器的连接状态(close/keep-alive)
user=1&psw=12—–实体内容
referer:防盗连
防盗链:通过手动在地址栏输入URL或者通过一个与此项目无关的超链接,不能访问相应内容。
必须是与该项目有关(根据实际情况)的一个超链接转入到相应的页面,才能访问该servlet的相应内容。
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); //获取用户浏览器Referer String referer=request.getHeader("Referer"); out.println("referer="+referer); if(referer==null||!referer.startsWith("http://localhost:8080/TongPeiFu")) { //跳转到Error界面 response.sendRedirect("/TongPeiFu/Error"); return; } out.println("这是非常重要的信息1224....."); }
获取消息头信息方法Interface HttpServletRequest
二、响应头
(1)状态行
200:就是整个请求和相应没有发生错误,这是最常见的。
302:表示当你请求一个资源的时候,服务返回302,让浏览器转向另一个资源
public class demo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); response.setStatus(302); response.setHeader("location", "/servlet03/demo2"); //response.sendRedirect("/servlet03/demo2");也可以这样写 }}demo2简单不写了
①302状态
②200状态
③500状态
比如i=900/0,即服务器端错误
(2)响应头信息
①refresh: 应用于重定向或一个新的资源被创造,在5秒之后重定向
response.setHeader(“Refresh”, “5;/servlet03/demo2”);
②Content-Disposition
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); //演示下载文件,有时文件名是中文,会出现乱码情况,用以下方式解决 String temp=java.net.URLEncoder.encode("图片.png","utf-8"); response.setHeader("Content-Disposition", "attachment;filename="+temp); //打开文件。说明一下web站点下载文件的原理 //1.获取要下载文件的全路径 String path=this.getServletContext().getRealPath("/images/图片.png"); //2.创建文件输入字节流(读) FileInputStream fis=new FileInputStream(path); //做一个缓冲字节数组 byte buff[] =new byte[1024]; int len=0;//实际每次读取的字节数 OutputStream os=response.getOutputStream(); while((len=fis.read(buff))!=-1) { os.write(buff, 0, len); } //关闭 os.close(); fis.close(); }
③缓存页面举例说明
1)一些网站(股票)对及时性要求高,不用缓存页面
response.setDateHeader("Expires", -1);//不缓存 //为了保证兼容性 response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma","no-cache");
2)缓存一段时间
//缓存一段时间,如2分钟 response.setDateHeader("Expires",System.currentTimeMillis()+2*1000); //为了保证兼容性 response.setHeader("Cache-Control", "System.currentTimeMillis()+2*1000"); response.setHeader("Pragma","System.currentTimeMillis()+2*1000");
- (4)请求头:referer。响应头:状态行、refresh、Content-Disposition、页面缓存
- Content-Disposition 响应头
- Content-Disposition 响应头
- Content-Disposition 响应头
- HTTP请求头、响应头、状态码
- JavaWeb---response头--Refresh(刷新)、禁用浏览器缓存、响应体
- 【HTTP协议】HTTP请求、请求头、HTTP响应、状态吗、响应头、使用响应头编程
- 设置响应头的Content-Disposition属性,实现文件下载示例
- Servlet——使用http响应头Content-Disposition下载文件的示例
- Content-Disposition 响应头,设置文件在浏览器打开还是下载
- HTTP中与缓存有关请求头,响应头字段
- http请求头,响应头以及状态码
- HTTP请求头、响应头和状态码
- Java Web -- Servlet(9) Http协议详细分析--HTTP响应部分(Refresh、Content-Disposition、缓存例子)(2)
- javaweb之response refresh响应头控制浏览器刷新(几秒后跳转页面)
- http请求头响应头
- 请求头和响应头
- 请求头、响应头小记
- 搭建VUE脚手架的时候,fsevents报错问题;
- CSS3 linear-gradient实现三角形
- 对2017年8月26日(北京时间17日)梅威瑟和麦格雷戈跨界大战的预测
- AWS免费1年服务
- javascript创建对象属性
- (4)请求头:referer。响应头:状态行、refresh、Content-Disposition、页面缓存
- react-router4的坑
- Jenkins 环境搭建
- AWS配置使用 SKYNET
- Revit多版本代码编译
- vi编辑器
- JavaSE总结之第一个java程序
- POJ 3176 Cow Bowling
- 测绘案例分析