手记

关于HTTP协议的一些名词解释

请求行:请求方式、请求的资源文件、协议版本

状态行:协议版本、状态码、描述(302重定向,304/307使用缓存)

请求头

Accept:告诉服务器,客户机支持得数据类型
Accept-Charset:客户机采用的编码
Accept-Encoding:客户机支持的数据压缩格式
Accept-Language:客户机的语言环境
Host:想访问的主机名
If-Modified-Since:资源的缓存时间
User-Agent:客户机的软件环境
Cookie:向服务器带数据
Referer:客户机从那个资源访问服务器(防盗链):
    String referer = request.getHeader("referer");
    if(referer == null || !referer.startsWith("http://localhost")){
        response.sendRedirect("/MyServlet/index.jsp");    return;
    }

响应头

Location:配合302状态码使用,用于重定向
    response.setStatus(302);
    response.setHeader("location", url);
Server:服务器通过这个头,告诉浏览器服务器的类型
Content-Encoding:数据的压缩格式
    response.setHeader("Content-Encoding", "gzip");
Content-Length:回送数据的长度
    response.setHeader("Content-Length", "length");
Content-Type:回送数据的类型
    response.setContentType("application/x-msdownload");  //这是一个需要下载的文件
Last-Modified:告诉浏览器当前资源缓存时间
Content-Dispostion:数据处理方式
    response.setHeader( "content-disposition", "attachment;filename=" +1.txt ); //手动处理是否下载

三种禁止所有浏览器缓存数据的方式:

response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0); //prevents catching at proxy server

建议都写上。

Refresh:告诉浏览器多久刷新一次

response.setHeader("refresh", "3;url='index.jsp'");
String message = "<meta http-equiv='refresh' content='3;url=/MyServlet/index.jsp'>  <br>3s后跳转,若无,请点击<a href=''>跳转</a>";
this.getServletContext().setAttribute("message", message);
2人推荐
随时随地看视频
慕课网APP