Http请求头和响应头

    xiaoxiao2021-04-01  33

    package com.tcm.web.controller.request.demo; import java.util.Collection; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; /** * 测试请求头哪些内容 * 参考资料: * 1. HTTP Content-Type的对照:http://tool.oschina.net/commons * 2. HTTP状态码详解:http://tool.oschina.net/commons?type=5 * 3. HTTP请求头和响应头的对照:http://tools.jb51.net/table/http_header * @author TCM * @create 2017年3月28日下午2:30:17 */ @Controller public class HeaderController { @RequestMapping("/req/header") public String getHeader(HttpServletRequest request, HttpServletResponse response, ModelMap map){ map.addAttribute("method",request.getMethod()); /******************************************************* * 获取客户端信息 * *******************************************************/ //获取请求路径 System.out.println("getServletPath():"+request.getServletPath()); //获取完整URL System.out.println("getRequestURL():"+request.getRequestURL()); //获取资源URI System.out.println("getRequestURI():"+request.getRequestURI()); //获取服务器id System.out.println("getLocalAddr():"+request.getLocalAddr()); //获取服务器名 System.out.println("getLocalName():"+request.getLocalName()); //获取客户机ip System.out.println("getRemoteAddr():"+request.getRemoteAddr()); //获取客户主机名 System.out.println("getRemoteHost():"+request.getRemoteHost()); //获取服务器的项目名 System.out.println("ContextPath():"+request.getContextPath()); //获取HttpSessionId System.out.println("getRequestedSessionId():"+request.getRequestedSessionId()); //获取HttpSession对象 System.out.println("getSession():"+request.getSession().getId()); //请求方式 System.out.println("getMethod():"+request.getMethod()); //获取查询字符串(?ni=123) System.out.println("getQueryString():"+request.getQueryString()); //获取当前登录用户 System.out.println("getRemoteUser():"+request.getRemoteUser()); //获取当前登录用户的授权类型 System.out.println("getAuthType():"+request.getAuthType()); //获取Cookie[] System.out.println("getCookies():"+request.getCookies().length); /******************************************************* * 获取请求头信息 *参考资料: *http://tools.jb51.net/table/http_header *http://www.cnblogs.com/wangyang108/p/5755525.html *******************************************************/ System.out.println("\n"+"----------------获取请求头信息--------------------"); //客户端能够接收的内容类型 System.out.println("Accept:"+request.getHeader("Accept")); //客户端可以支持的web服务器返回内容压缩编码类型 System.out.println("Accept-Encoding:"+request.getHeader("Accept-Encoding")); //请求体对应的MIME信息 System.out.println("Content-Type:"+request.getHeader("Content-Type")); //服务器的域名和端口号 System.out.println("Host:"+request.getHeader("Host")); //请求的内容长度 System.out.println("Content-Length:"+request.getHeader("Content-Length")); //请求用户的信息 System.out.println("User-Agent:"+request.getHeader("User-Agent")); //请求域名下的所有cookie值一起发送给web服务器 System.out.println("Cookie:"+request.getHeader("Cookie")); //是否持久连接 //Keep-Alive:不会断开,当客户端发送另外一个请求时,就使用这条已经建立的连接 System.out.println("Connection:"+request.getHeader("Connection")); //发出请求的时间 System.out.println("Date:"+request.getHeader("Date")); //指定请求和响应遵循的缓存机制 //max-age>0 时直接从游览器缓存中提取 ;max-age<=0 时 向server发送http请求确认 ,该资源是否有修改 System.out.println("Cache-Control:"+request.getHeader("Cache-Control")); //HTTP授权的授权证书 System.out.println("Authorization:"+request.getHeader("Authorization")); //发出请求的客户的email System.out.println("From:"+request.getHeader("From")); /******************************************************* * 获取请求参数 *******************************************************/ System.out.println("\n"+"----------------获取请求参数--------------------"); //获取指定的请求参数 System.out.println("getParameter():"+request.getParameter("ni")); //获取所有请求参数 Map<String, String[]> params = request.getParameterMap(); Map<String, String[]> sorted = new TreeMap<String, String[]>(); sorted.putAll(params); Iterator<Entry<String, String[]>> pairs = sorted.entrySet().iterator(); while (pairs.hasNext()) { Map.Entry<String, String[]> pair = pairs.next(); if (pair.getValue() != null) { System.out.println(pair.getKey() + "=" + (pair.getValue())[0]); } else { System.out.println(pair.getKey() + "="); } } /******************************************************* * 响应部分 *******************************************************/ System.out.println("\n"+"----------------响应参数--------------------"); //url编码重定向 System.out.println("encodeRedirectURL():"+response.encodeRedirectURL(request.getRequestURL().toString())); //设置响应体类型 response.setContentType("application/vnd.ms-excel;charset=utf-8"); //响应体的MIME类型 System.out.println("getContentType():"+response.getContentType()); //返回编码集 System.out.println("getCharacterEncoding():"+response.getCharacterEncoding()); //响应状态 System.out.println("getStatus():"+response.getStatus()); //缓存大小 System.out.println("getBufferSize():"+response.getBufferSize()); //清空缓存内容,不清空headers和状态码 response.resetBuffer(); //清空缓存内容、headers、状态码 response.reset(); System.out.println("getStatus():"+response.getStatus()); System.out.println("\n"+"----------------响应头--------------------"); Collection<String> list = response.getHeaderNames(); Iterator<String> ite = list.iterator(); while (ite.hasNext()) { String head = ite.next(); System.out.println(head); } System.out.println("\n"+"----------------响应头--------------------"); //设置响应头 // response.setHeader("Content-Encoding", "gzip"); //web服务器支持的返回内容压缩编码类型 System.out.println("Content-Encoding:"+response.getHeader("Content-Encoding")); //返回资源的MD5校验值 System.out.println("Content-MD5:"+response.getHeader("Content-MD5")); //返回内容的MIME类型 System.out.println("Content-Type:"+response.getHeader("Content-Type")); //原始服务器消息发出的时间 System.out.println("Date:"+response.getHeader("Date")); //web服务器软件名称 System.out.println("Server:"+response.getHeader("Server")); //重定向URL的位置 System.out.println("Location:"+response.getHeader("Location")); //web服务器软件名称 System.out.println("Server:"+response.getHeader("Server")); return "header/requestInfo"; } }
    转载请注明原文地址: https://ju.6miu.com/read-665574.html

    最新回复(0)