客户请求的处理HTTP请求报头.pptVIP

  • 5
  • 0
  • 约5.91千字
  • 约 19页
  • 2015-09-26 发布于重庆
  • 举报
客户请求的处理HTTP请求报头

客户请求的处理:HTTP请求报头 主讲:刘晓涛 议程 HTTP请求报头的读取 制作所有请求报头的表格 了解各种请求报头 通过压缩页面减少下载时间 区分不同的浏览器类型 一个典型的HTTP请求 GET /servlet/Search?keywords=servlets+jsp HTTP/1.1 Accept: image/gif, image/jpg, */* Accept-Encoding: gzip Connection: Keep-Alive Cookie: userID=id456578 Host: Referer: /findbooks.html User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) 理解HTTP无疑会有助于更有效地使用servlet和JSP 请求报头的读取 (HttpServletRequest中的方法) 通用方法 getHeader (报头名对大小写不敏感) getHeaders getHeaderNames 专用方法 getCookies getAuthType和getRemoteUser getContentLength getContentType getDateHeader getIntHeader 获取相关信息的方法 getMethod, getRequestURI , getQueryString, getProtocol 缺失报头的检查 HTTP 1.0 所有请求报头都是可选的 HTTP 1.1 仅Host是必需的 结论 在试图使用由request.getHeader返回的值之前一定要检查它是否为null。 String val = request.getHeader(Some-Name); if (val != null) { … } 制作所有请求报头的表格 public class ShowRequestHeaders extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { out.println(docType + HTML\n + HEADTITLE+title+/TITLE/HEAD\n+ BODY BGCOLOR=\#FDF5E6\\n + H1 ALIGN=\CENTER\ + title + /H1\n + BRequest Method: /B + request.getMethod() + BR\n + BRequest URI: /B + request.getRequestURI() + BR\n + BRequest Protocol: /B + request.getProtocol() + BRBR\n + 制作所有请求报头的表格(续) TABLE BORDER=1 ALIGN=\CENTER\\n + TR BGCOLOR=\#FFAD00\\n + THHeader NameTHHeader Value); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = (String)headerNames.nextElement(); out.println(TRTD + headerName); out.println( TD+request.getHeader(headerName)); } out.println(/TABLE\n/BODY/HTML); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response);}} 常见HTTP 1.1请求报头 Accept 标示浏览器能够处理的MIME类型 可以向不同的客户程序发送不同的内容。例如,PNG文件拥有较好的压缩特性但并不被浏览器广泛支持。servlet可以检查浏览器是否支持PNG文件,如果支持则发送IMG SRC=picture.png ..否则发送IMG SRC=picture.gif ...。 警告:在点击Refresh按钮时,IE会错误在设置这个报头。但在最初的请求中,对这个报头的设置是正确的 Accept-Encod

文档评论(0)

1亿VIP精品文档

相关文档