http協議總結

什麼是時間戳?

時間戳作用

防止緩存,解決版本更新代碼不同步的問題。如果不加時間戳,當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,一般重定向在外部服務器,不會在本地服務器的,而轉發一般在本地服務器,所以重定向轉發後閾值會失效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章