httpgetheader 取头信息

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/site")
public class SiteController {
    @Autowired
    private HttpServletRequest request;
    @RequestMapping(value = "/{input:.+}", method = RequestMethod.GET)
    public ModelAndView getDomain(@PathVariable("input") String input) {
        ModelAndView modelandView = new ModelAndView("result");
        modelandView.addObject("user-agent", getUserAgent());
        modelandView.addObject("headers", getHeadersInfo());
        return modelandView;
    }
    //get user agent
    private String getUserAgent() {
        return request.getHeader("user-agent");
    }
    //get request headers
    private Map<String, String> getHeadersInfo() {
        Map<String, String> map = new HashMap<String, String>();
        Enumeration headerNames = request.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String key = (String) headerNames.nextElement();
            String value = request.getHeader(key);
            map.put(key, value);
        }
        return map;
    }
}

也 许有人会说,Http Header  是可以模拟的,那么自己可以构造一个用来欺骗这些系统, 是的,的确是这样,所以在用Http Header 来传值得时候,一定要记得,所有的请求都必须经过 portal 来处理,然后 forward 到各子系统,就不会出现这个问题了。因为portal 首先拦截用户发起的所有的请求,如果是构造的用户,在portal 的sessiion 也是没有记录的,仍然会跳转到登录页面,如果在protal 的 session 中记录,而且  Http Header 中也有记录,那么在子系统就是合法的用户,然后自己可以根据一些要求处理业务逻辑了

JSP/Java获取HTTP header信息(request)例子

<%
//header.jsp
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Scheme: " + request.getScheme() + "<br>");
out.println("Server Name: " + request.getServerName() + "<br>" );
out.println("Server Port: " + request.getServerPort() + "<br>");
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo() + "<br>");
out.println("Remote Addr: " + request.getRemoteAddr() + "<br>");
out.println("Remote Host: " + request.getRemoteHost() + "<br>");
out.println("Character Encoding: " + request.getCharacterEncoding() + "<br>");
out.println("Content Length: " + request.getContentLength() + "<br>");
out.println("Content Type: "+ request.getContentType() + "<br>");
out.println("Auth Type: " + request.getAuthType() + "<br>");
out.println("HTTP Method: " + request.getMethod() + "<br>");
out.println("Path Info: " + request.getPathInfo() + "<br>");
out.println("Path Trans: " + request.getPathTranslated() + "<br>");
out.println("Query String: " + request.getQueryString() + "<br>");
out.println("Remote User: " + request.getRemoteUser() + "<br>");
out.println("Session Id: " + request.getRequestedSessionId() + "<br>");
out.println("Request URL: " + request.getRequestURL() + "<br>");
out.println("Request URI: " + request.getRequestURI() + "<br>");
out.println("Servlet Path: " + request.getServletPath() + "<br>");
out.println("Created : " + session.getCreationTime() + "<br>");
out.println("LastAccessed : " + session.getLastAccessedTime() + "<br>");

out.println("Accept: " + request.getHeader("Accept") + "<br>");
out.println("Host: " + request.getHeader("Host") + "<br>");
out.println("Referer : " + request.getHeader("Referer") + "<br>");
out.println("Accept-Language : " + request.getHeader("Accept-Language") + "<br>");
out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding") + "<br>");
out.println("User-Agent : " + request.getHeader("User-Agent") + "<br>");
out.println("Connection : " + request.getHeader("Connection") + "<br>");
out.println("Cookie : " + request.getHeader("Cookie") + "<br>");
%>

时间: 2024-10-13 11:55:31

httpgetheader 取头信息的相关文章

HTTP头信息(转)--1

转自:http://www.cnblogs.com/9988/archive/2012/03/21/2409086.html 我用抓包软件抓了http的包,发现accept大多数有两种情况. 第一种:Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, a

隐藏web服务的头信息

一.隐藏nginx头信息 什么是header信息?header信息是访客访问你的网站时,web服务返回给客户端的一段信息,包含了网页的一些基本情况.那么为什么要修改 header信息呢?主要是为了防止被居心不良的人利用来获取漏洞信息,例如:通过最最简单的获取header信息发现你的web服务器版本是 nginx/0.7.60,现在又已知这个版本的nginx有某个漏洞,那么就可以利用这个漏洞来攻击你了.互联网信息更新非常快,web服务程序的更新 也是很频繁,我们很多时候由于种种原因不能及时打上补丁

头信息的作用

<html> <!-- 头信息的作用 1. 可以设置网页的标题. 2. 可以通知浏览使用指定的码表解释html页面. 3. 可以标注网站的作用,用于搜索引擎蜘蛛抓取 --> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>这个是我的第一个网页</title> <meta n

PHP设置头信息,取得返回头信息

php 设置头信息,取得返回头信息 张映 发表于 2011-05-27 分类目录: php 设置请求的头信息,我们可以用header函数,可以用fsockopen,可以用curl等,本文主要讲的是用curl来设置头信息,并取得返回后的头信息. 一,请求方设置自己的头信息,header.php 查看复制打印? <?php function FormatHeader($url, $myIp = null,$xml = null) { // 解悉url $temp = parse_url($url);

根据身份证号或营业执照编号取省市区信息

根据身份证号或营业执照编号取省市区信息 代码为c#,原始的编码与地区对应信息用xml存放(不完全正确,但不影响使用),读取处理后放到hastable,可根据需要改写,这里只是个示范 /// <summary> /// 身份证(营业执照)前6位对应的地区信息 hastable /// </summary> /// <returns></returns> public static Hashtable GetRegionCode() { try { var ds

AFNetworking 2.0获取响应头信息

转载请注明出处:http://blog.csdn.net/dengbin9009/article/details/43304813 前文有提到在初始化的时候可以设置Http的头信息,这没有任何问题,但是在笔者使用过程中,时常是要获取Http返回的一些头信息,在初次用AFNetworking2.0新特性NSURLSessionDataTask的时候,为了获取返回的头信息,搞了两个晚上,先是度娘,谷歌,StackOverflow,然后各种那个群找人,嘴壶问同事找大神,最后都说没有用过.就在想要放弃,

视图函数获取请求头信息

视图函数获取相关信息请求头信息 Django 的request 中封装的了所有的信息,之前我们只是使用了POST,GET的方法来获取数据 查看request类 def index(request): print(type(request)) return HttpResponse('ko') #输出 <class 'django.core.handlers.wsgi.WSGIRequest'> 导入这个类看看有什么方法 def index (request): from django.core

Zuul网关过滤器中转发头信息不起作用

大家应该都知道在做Zuul网关过滤的时候,如果不在网关过滤时转发头信息,经过网关时头信息就会丢失. 但我用 addZuulRequestHeader转发头信息时,却不起作用,在子服务的controller取不到头信息的内容,代码如下: 1.引入依赖 1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.cloud</groupId> 4 <artifactId>spring-

WSDL项目---添加头信息和附件

用于底层协议的SOAP请求是HTTP,可以添加两个自定义HTTP头(例如用于身份验证或会话)和附件. 让我们看一下这两个. 1. 自定义HTTP标头 直接添加自定义HTTP头: 我们已经添加了自定义内容类型头将覆盖标准的内容类型用于SOAP请求(“text / xml;charset = utf - 8”). 发送请求,查看器显示原始的请求 当然你可以根据需要添加任意数量的头信息,可以包含扩展属性值. 相应的响应标签显示了所有HTTP头信息: 2. 附件和内联文件 SoapUI支持以下技术处理文