zoukankan      html  css  js  c++  java
  • HTTP协议和防盗链

    http 协议:

      对浏览器客户端和服务器端之间数据传输的格式规范
      支持无连接和无状态
    http 协议版本
      http1.0:当前浏览器客户端与服务器端建立连接之后,
           只能发送一次请求,一次请求之后连接关闭。
      http1.1:当前浏览器客户端与服务器端建立连接之后,
           可以在一次连接中发送多次请求。
    tcp协议:
      以二进制文件格式传输
    常见的请求方式:
       GET 、 POST、 HEAD、 TRACE、 PUT、 CONNECT 、DELETE
       POST:常用于表单提交,携带数据,数据封装在请求体中
       GET:url地址栏中显示数据;K=Y形式传输
    常用的请求方式:
       GET 和 POST
    同步:
      会发生阻塞HTTP建立连接后只能处理一次请求,会按顺序执行,当前请求没结束,不能再次发送请求
    异步:
      不会等待服务器做出相应,发送完请求就结束
    无连接:
      代表一次连接只能完成一次请求
    无状态:
      不会记录事务,不会保存状态,Cookie记录

     

     防盗链:

    package com.wdksoft;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * 过滤图片请求
     * @author FLC
     *
     */
    public class ImageFilter implements Filter{
    
    	@Override
    	public void destroy() {
    		System.out.println("过滤器销毁");
    		
    	}
    
    	@Override
    	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    			throws IOException, ServletException {
    		System.out.println("dofilter");
    		//获取到当前请求的连接地址和上一个发送请求的地址
    		HttpServletRequest httprequest=(HttpServletRequest)request;
    		HttpServletResponse httpresponse=(HttpServletResponse)response;
    		
    		//获取上一个发送请求的连接
    		String referer = httprequest.getHeader("Referer");
    		String serverName = httprequest.getServerName();
    		System.out.println(referer+"	"+serverName);
    		if(referer==null||!referer.contains(serverName)) {
    			request.getRequestDispatcher("/img/002.png").forward(request, response);
    			return;
    		}
    		
    		//放行
    		chain.doFilter(request, response);
    		
    	}
    
    	@Override
    	public void init(FilterConfig arg0) throws ServletException {
    		System.out.println("过滤器启动");
    	}
    
    }
    

      

  • 相关阅读:
    关于进程exit后,内存释放释放的实践
    《C语言基础日常笔记》
    阿里巴巴重磅推出,让你的电脑变成云服务器,只要 5 分钟! 5 分钟! 5 分钟!
    vs2010下使用绘图控件MsChart的方法
    归纳整理Linux下C语言常用的库函数----文件操作
    归纳整理Linux下C语言常用的库函数----字符串转换、字符测试、及内存控制
    参考 generate-parentheses
    初步整理数仓知识 2017
    论文学习 数码相机系统
    论文学习:数码相机处理器的结构设计
  • 原文地址:https://www.cnblogs.com/F017/p/12260719.html
Copyright © 2011-2022 走看看