重定向 订阅
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。 展开全文
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
信息
外文名
Redirect
方    式
301 redirect、302 redirect
做    法
将各种网络请求转到其它位置
其他定向
Linux重定向
中文名
重定向
例    如
网页重定向、域名的重定向
需要的情况
网站调整,
重定向网页定向
我们在网站建设中,时常会遇到需要网页重定向的情况:1.网站调整(如改变网页目录结构);2.网页被移到一个新地址;3.网页扩展名改变(如应用需要把.php改成.Html或.shtml)。这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。
收起全文
精华内容
参与话题
问答
  • 重定向

    2019-03-04 18:06:41
    重定向
    1. 输出重定向 > ,追加输出>>
    2. 输入重定向 < ,内联输入重定向<<且指定一个文本划分输入数据的开始和结尾
      例如:
     wc << EOF  			
     test string1 			
     test string2
     EOF
    
    1. 重定向错误和正确数据
      2>是将错误输出重定向到test.txt文件中
      1>是将正确输出重定向到test.sh文件中
    ls -al text badtext 2> test.txt 1> test.sh
    
    1. 将错误和正确数据重定向到同一文件
    ls -al text badtext &> test.txt 
    
    展开全文
  • 转发和重定向区别详解 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。 1、RequestDispatcher.forward方法...

    转发和重定向区别详解

            作为一名java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。

          1、request.getRequestDispatcher().forward()方法,只能将请求转发给同一个WEB应用中的组件;而response.sendRedirect() 方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。

    如果传递给response.sendRedirect()方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建request.getRequestDispatcher()对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。

          2、重定向访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。

          3、HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求,这个过程好比有个绰号叫“浏览器”的人写信找张三借钱,张三回信说没有钱,让“浏览器”去找李四借,并将李四现在的通信地址告诉给了“浏览器”。于是,“浏览器”又按张三提供通信地址给李四写信借钱,李四收到信后就把钱汇给了“浏览器”。

    由此可见,重定向的时候,“浏览器”一共发出了两封信和收到了两次回复,“浏览器”也知道他借到的钱出自李四之手。

    request.getRequestDispatcher().forward()方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。这个过程好比绰号叫“浏览器”的人写信找张三借钱,张三没有钱,于是张三找李四借了一些钱,甚至还可以加上自己的一些钱,然后再将这些钱汇给了“浏览器”。

    由此可见,转发的时候,“浏览器”只发 出了一封信和收到了一次回复,他只知道从张三那里借到了钱,并不知道有一部分钱出自李四之手。

           4、request.getRequestDispatcher().forward()方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;

    而response.sendRedirect()方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。对于同一个WEB应用程序的内部资源之间的跳转,特别是跳转之前要对请求进行一些前期预处理,并要使用HttpServletRequest.setAttribute方法传递预处理结果,那就应该使用request.getRequestDispatcher().forward()方法。不同WEB应用程序之间的重定向,特别是要重定向到另外一个WEB站点上的资源的情况,都应该使用response.sendRedirect()方法。

            5、无论是request.getRequestDispatcher().forward()方法,还是response.sendRedirect()方法,在调用它们之前,都不能有内容已经被实际输出到了客户端。如果缓冲区中已经有了一些内容,这些内容将被从缓冲区中。

    以上五点的论述来源于:点击查看原文论述

    转发和重定向的图解

    两种跳转获得对象的方式

    //获得转发对象getRequestDispatcher()
    HttpServletRequest(httpServletRequest).getRequestDispatcher
    ServletContext.getRequestDispatcher();
    
    //获得重定向对象sendRedirect()
    HttpServletResponse(httpServletResponse).sendRedirect();

    转发和跳转的小结

          1、转发使用的是getRequestDispatcher()方法;重定向使用的是sendRedirect();

          2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;

          3、转发是服务器行为,重定向是客户端行为;

          4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;

          5、转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围)。

    转发和重定向的选择

          1、重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。

          2、因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。

    转发和重定向的应用场景

           在上面我已经提到了,转发是要比重定向快,因为重定向需要经过客户端,而转发没有。有时候,采用重定向会更好,若需要重定向到另外一个外部网站,则无法使用转发。另外,重定向还有一个应用场景:避免在用户重新加载页面时两次调用相同的动作。

           例如,当提交产品表单的时候,执行保存的方法将会被调用,并执行相应的动作;这在一个真实的应用程序中,很有可能将表单中的所有产品信息加入到数据库中。但是如果在提交表单后,重新加载页面,执行保存的方法就很有可能再次被调用。同样的产品信息就将可能再次被添加,为了避免这种情况,提交表单后,你可以将用户重定向到一个不同的页面,这样的话,这个网页任意重新加载都没有副作用;

           但是,使用重定向不太方便的地方是,使用它无法将值轻松地传递给目标页面。而采用转发,则可以简单地将属性添加到Model,使得目标视图可以轻松访问。由于重定向经过客户端,所以Model中的一切都会在重定向时丢失。但幸运的是,在Spring3.1版本以后,我们可以通过Flash属性,解决重定向时传值丢失的问题。

           要使用Flash属性,必须在Spring MVC的配置文件中添加一个<annotation-driven/>。然后,还必须再方法上添加一个新的参数类型:org.springframework.web.servlet.mvc.support.RedirectAttributes。

           如下所示:

    @RequestMapping(value="saveProduct",method=RequestMethod.POST)
    public String saveProduct(ProductForm productForm,RedirectAttributes redirectAttributes){
    
         //执行产品保存的业务逻辑等
      
         //传递参数
           redirectAttributes.addFlashAttribute("message","The product is saved successfully");
       
         //执行重定向
          return "redirect:/……";
    }

     

     

     

     

    展开全文
  • CATALOG前言对于三种隐藏技术的理解CDN技术隐藏C2域前置技术隐藏C2重定向技术隐藏C2三者的区别的总结其他阅读推荐 前言 这个课题前段时间已经分别做过研究,但没有写三者的区别分析,以为自己可以将三种技术永远记在...

    前言

    这个课题前段时间已经分别做过研究,但没有写三者的区别分析,以为自己可以将三种技术永远记在心里,但是事实是确实淡忘一部分知识点,导致现在对三者的理解出现偏差。
    反思:以后倘若需要做技术记录,一定要详细详细再详细,有备无患。不能抱有侥幸心理,因为你永远不知道,问题与遗忘哪一个会先来

    对于三种隐藏技术的理解

    CDN技术隐藏C2

    反溯源-cs和msf域名上线
    利用CDN隐藏C2地址
    使用CDN隐藏c2流量

    原理:让cdn转发合法的http或者https流量来达到隐藏的目的。

    这些文章写的很详细,总结一下流程:

    1. 配置了cdn
    2. 拥有一个公网域名
    3. 配置cdn的A记录解析使其能解析到C2的ip
    4. 将公网域名填写到cs listener的host处并填写可用的端口

    可达到的效果:受害主机上只会有跟cdn的ip通信的流量,不会有跟真实C2通信的流量,可以保护C2的ip,但是域名还是会暴露。

    技术实现重点:

    1. 一个不备案的域名,否则这个方式毫无用处
    2. 这种技术对http与https没有强制要求,都可以使用,而域前置技术要求是https

    域前置技术隐藏C2

    域前置技术的原理与CS上的实现这篇我写的文章里面有具体的操作步骤,下面主要说说自己的理解。

    域前置技术跟CDN技术比较类似,都是会用到CDN,但域前置技术必须要用https,因为它是基于TLS协议的,域前置还有一个特点是需要修改请求包的host头,修改方法是修改malleable profile文件,我的这篇malleable_profile文件配置概述写了修改方法,而CDN是创建好CDN后直接就可以使用的,不用做过多的配置不过效果也有不同,CDN技术只能用自己的域名,如果自己域名被放进黑名单基本就凉凉,但是域前置技术可以使用别人的高信誉域名来隐藏自己的真实域名,例如用微软的域名伪装自己,当然前提是微软的域名得跟你的域名再同一个CDN下,这种技术现在在不少的CDN厂商下都被禁止了,不一定会利用成功。

    原理:同一个cdn厂商下倘若有两个域名a.com,b.com,这时候我们使用curl命令访问第一个a.com并将host名改为b.com这时候,实际访问的是b.com的内容。而一般的监测机制是不会检测host头的。

    可达到的效果:通过一个高信任域名隐藏自己的真实域名与ip,且受害主机上的流量只有跟cdn通信的,不会有跟真实c2的。

    技术实现重点:

    1. 需要基于https
    2. 需要知道cdn上的其他高信誉域名或者ip
    3. 需要修改malleable profile文件

    重定向技术隐藏C2

    利用apache mod_rewrite模块实现重定向技术来隐藏CS的teamserver的原理与实现
    我的这篇文章写了原理与操作,同样的这次我主要说说我对这种技术的理解。
    这种技术有点像乞丐版的CDN或者域前置技术。总的来说就是得有两台vps,一台做重定向,一台是真正的C2,而受害者只与那台做重定向的机器通信,重定向机器只会转发来自beacon的特定流量到C2控制端主机,对于其他流量可以自定义设置处理方法,一般是采用重定向到一些高信誉域名上例如百度等。

    可达到的效果:受害者上只会有与重定向机器之间的流量,不会有与真实c2服务器的流量,重定向服务器会将非beacon的请求重定向到一些高信誉域名上,达到迷惑的目的,不过如果受害者ban掉了重定向机器的ip,对攻击者的损失也是很大的。

    技术实现重点:

    1. 两台服务器
    2. 配置apache_rewrite
    3. 配置malleable profile文件

    三者的区别的总结

    从成本上来说,cdn技术与域前置技术都需要配置cdn,而重定向技术需要两台服务器,总的来说成本基本差不多。
    从技术上来说:

    1. cdn技术仅仅利用了cdn对http与https流量进行转发来达到的隐匿效果,可以隐藏ip不能隐藏域名。
    2. 域前置技术高级一些,但是却基于https的,可以隐藏ip与域名,效果我认为是最好的,只是因为现在不少的cdn厂商已经禁止了域前置技术的存在,想用的话得自己去找还依旧允许域前置技术的厂商。
    3. 重定向技术对运维人员迷惑效果还是不错的,但对于很专业的运维人员可能效果就没有那么好,而且配置也是最复杂的,如果被发现ban了自己的重定向机器,对于攻击队来说损失也不小,总的来说还是没有cdn的方法好用。

    其他阅读推荐

    渗透利器 Cobalt Strike 在野利用情况专题分析
    CS 合法证书 + Powershell 上线

    展开全文
  • 之后启动服务,用户点击操作按钮,断点调试可以走到response.sendRedirect(...)这里,但是重定向后,页面并没有进行调整到登录页面。 ![图片说明](https://img-ask.csdn.net/upload/201702/23/1487819249_282307.png...
  • nohup 日志重定向

    万次阅读 2020-01-15 20:24:20
    nohup command > nohup.log 2>&1 & 以下来自:... 侵权删 用途:不挂断地运行命令。...语法:nohup Command [ Arg ......描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定...

    nohup command > nohup.log 2>&1 &

    以下来自:https://www.cnblogs.com/zhangwuji/p/8059539.html

    侵权删

    用途:不挂断地运行命令。
    语法:nohup Command [ Arg ... ] [ & ]
    描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

    操作系统中有三个常用的流:
      0:标准输入流 stdin
      1:标准输出流 stdout
      2:标准错误流 stderr

          一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。

    示例用法1:nohup ./start-dishi.sh >output 2>&1 &

    解释:
    1. 带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上); 

    2. 2>&1的意思

      这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的. 这就是为什么有人会写成: nohup ./command.sh >output 2>output出错的原因了 。

     

          0,1,2可以用来指定需要重定向的标准输入或输出。在一般使用时,默认的是标准输出,既1。当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:./program 2>log,这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。
          Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪,任何东西都可以定向到这里,但是却无法打开。这一点非常有用,一般很大的stdou和stderr当你不关心的时候或者当我们由于其他原因不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

    例如:

    # ls 1>/dev/null 2>/dev/null

    还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:

    # ls >/dev/null 2>&1

    注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null。

         

          由于使用nohup时,会自动将输出写入nohup.out文件中,如果文件很大的话,nohup.out就会不停的增大,这是我们不希望看到的,因此,可以利用/dev/null来解决这个问题。

    # nohup ./program >/dev/null 2>log &

    如果错误信息也不想要的话:

    # nohup ./program >/dev/null 2>&1 &

    展开全文
  • SpringBoot中处理的转发与重定向

    万次阅读 多人点赞 2018-11-06 23:15:45
    转发:一次请求,服务器内部调用另外的组件处理...重定向:两次请求,地址会改变,request和response不能共用,不能直接访问WEB-INF下面的资源, 根据所要跳转的资源,可以分为跳转到页面或者跳转到其他controll...
  • var password = '123456'; var replyUrl = 'urn:ietf:wg:oauth:2.0:oob'; ... ... var username= 'test111';...了之后后面写location 任然是localhost 什么什么的地址,要怎么重定向和获取重定向之后的地址呢 ?
  • Windows重定向

    千次阅读 2018-08-01 12:06:35
    重定向 System32与SysWow64 在C:\Windows目录下,存在System32和SysWOW64两个文件夹,而让人迷惑的是: System32文件夹下存放的是64位DLL SysWOW64文件夹下存放的是32位DLL 按照文件夹表面意思,...
  • 在做登录防止用户没有登录而访问其他web资源的时候,写了一个过滤器,却在浏览器无法打开,出现重定向次数过多 尝试清除cookie,试过没有用。 出现这个问题的原因是因为在过滤器中出现了无限循环重定向。 出现无限...
  • from scrapy.spider import CrawlSpider from scrapy.selector import Selector ...这是我的爬虫源码,如何阻止301/302重定向,要抓取的是百度所有词条,但是总会发生重定向导致无法获得想要的网页
  • 问题:spring security能请求到cas返回的用户,并且初始化了权限,但是又重定向回主页,在重定向的时候丢失了验证用户信息,导致变成游客。 如果设置自动重定向回请求页面,会导致循环重定向,游客请求--获取cas的...
  • <result name="success" type="redirect">login.nx?isPost=1&forwardAction=androidAppLoginRole.action&token=[fsVisitKey:${...所以必须要进行重定向,请问各位大神为什么重定向时会报302错误了?
  • nginx 能够动态重定向吗,比如 这是nginx 里面html目录 |-->html |—> a_file |—>static |-->jquery.js |—>ab_file |—>ab_index.html ...
  • 前提:现在有个登录接口需要测试,使用了302重定向。 如图我先使用GET方法,获取响应数据,然后利用正则表达式获取lt和execution,再次添加个POST请求(使用了跟随重定向),body data中将变量提交。执行线程组,...
  • 通过重定向到second.jsp... 我不明白这个死循环为什么还能执行 System.out.println("doFilter----first---end");??不是先执行 System.out.println("doFilter........first.");之后就重定向到second.jsp,然后在执行...
  • C语言重定向

    万次阅读 多人点赞 2017-03-14 16:07:06
    近段时间,又把C primer plus第五版翻了一下,查看以前由于不理解而跳过的地方,现在来看时,结合在其他书上看到的东西(在linux书上看到关于重定向的使用),发现自己居然能够理解了。 Unix、Linux和当前的DOS版本...
  • // 如何通过服务器让客户端重定向 // 1. 状态码设置为302 临时重定向,301永久重定向 // res.statusCode // 2. 在响应头中通过 location 告诉客户端往那里定向 // setHeader // 如果客户端发现收到服务器的响应状态...
  • 重定向和永久重定向

    2016-11-25 11:26:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • linux输入重定向、输出重定向
  • <!-- 前缀 --> <property name="prefix" value="/WEB-INF/"></property> <!-- 后缀 --> <property name="suffix" value=".html"></...这3种全部不行,重定向就报404 但是:return "index";就可以 这是为什么呢??
  • 使用vue2开发了微信公众号,现在登录后重定向出现如下问题 , 还望经验丰富的专家给与帮助。 流程 1、微信公众号按钮(指定的url) ; 2、router.beforeEach 拦截url判断有没有登录; 3、未登录,重定向到授权页面...
  • 重定向到http://www.xxx.cn/home 这么写为什么不起作用?怎么写。 ([a-z_]+)" /> 我想用 ([a-z_]+) 匹配,但是,在浏览器地址栏输入地址如http://www.xxx.cn/index.asp?module=home,没有发生...

空空如也

1 2 3 4 5 ... 20
收藏数 72,371
精华内容 28,948
关键字:

重定向