web高级第一节

1.HTTP协议

 

 

常见协议: HTTP协议,scoket: TPC/UDP ,HTTPS协议SSL+安全认证证书,FTP

HTTP协议:超文本传输协议,用来客户端与服务器之间进行数据传输格式的协议,支持无连接也支持无状态

无连接

代表的是一次连接只能处理一次请求.

无状态
不会记录事务,代表不保存状态,HTTP协议自身不对客户端和服务器的状态进行保存,也就是说请求和响应不做持久化处理

同步:阻塞,HTTP建立连接口只能处理一次请求,按顺序执行,当当前请求没有结束,其他不能
再次发送请求
异步:不会等待服务器做出相应。发送完请求后就结束

 

2.时间戳:版本更新,解决浏览器缓存
  缓存:200 from memory cache 不访问服务器,直接读取缓存 ,从内存当中读取
  200 from disk cache 不访问服务器,直接读取缓存,从磁盘当中读取
  304 访问服务器,发现数据没有更新,服务器返回次状态码,然后再从缓存中读取数据

3.防盗链
  Java代码手段防止非法请求,思路如下:
    1.获取到当前请求的域名,如www.a.com
    2.获取到请求资源的上一个地址
    3.判断上一个地址是否为空,如果为空代表的是直接访问的资源,非法
  还有一种情况就是B项目访问时上一个地址www.b.com/xxx 不是资源所在地址,非法
新建一个过滤器,实现逻辑,如果非法则显示图像,拦截return ,否则放行

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+"\t"+serverName);
                if(referer==null||!referer.contains(serverName)) {
                    request.getRequestDispatcher("/img/ffqq.png").forward(request, response);
                    return;
                }
                
                //放行
                chain.doFilter(request, response);
                
            }

            @Override
            public void init(FilterConfig arg0) throws ServletException {
                System.out.println("过滤器启动");
            }

        }
    web.xml配置过滤地址:
        <filter>
            <filter-name>imgFilter</filter-name>
            <filter-class>com.wdksoft.ImageFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>imgFilter</filter-name>
            <url-pattern>/img/*</url-pattern>
        </filter-mapping>

效果如下:

  正常访问

 

   非法访问

 

4.重定向机制

 

posted @ 2020-02-04 15:03  琴昕LNS~  阅读(154)  评论(0编辑  收藏  举报