什麼是時間戳?
時間戳作用
防止緩存,解決版本更新代碼不同步的問題。如果不加時間戳,當http相應狀態爲304時,從本地緩存中讀取資源,而沒有請求到服務器。
http狀態304 表示從本地讀取。
解決非法盜用資源的方法?
通過判斷Referer來源進行過濾,代碼如下。
public class ImgFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String referer = request.getHeader("referer");
System.out.println("refer is" + "" + referer);
if (referer == null || !referer.contains(request.getServerName())) {
request.getRequestDispatcher("/static/error.png").forward(request, response);
} else {
filterChain.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
重定向的實現原理和轉發的區別
客戶端向服務器端發送請求,如果收到狀態碼爲302,它會取Location裏面的值,本地瀏覽器幫你跳轉到Location,一般重定向在外部服務器,不會在本地服務器的,而轉發一般在本地服務器,所以重定向轉發後閾值會失效。