url重定向

转发和重定向

谁说我不能喝 提交于 2019-11-27 15:16:49
摘抄自百度 转发和重定向区别详解 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。 1、RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.sendRedirect 方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。如果传递给HttpServletResponse.sendRedirect 方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建RequestDispatcher对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。、 2、调用HttpServletResponse.sendRedirect方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而调用RequestDispatcher.forward 方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。 3、HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应

php – cURL从重定向获取url

纵饮孤独 提交于 2019-11-27 13:23:12
我目前正在使用cURL尝试从网站刮刀的重定向获取URL.我只需要网站上的网址.我在过去几天研究过stackoverflow和其他网站,但都没有成功.我目前使用的代码来自这个网站: $url = "http://www.someredirect.com"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt($ch, CURLOPT_NOBODY, true); $response = curl_exec($ch); preg_match_all('/^Location:(.*)$/mi', $response, $matches); curl_close($ch); echo !empty($matches[1]) ? trim(

在浏览器地址栏输入URL,按下回车后究竟发生了什么?

五迷三道 提交于 2019-11-27 11:28:51
第一步:浏览器输入域名 例如输入:www.csdn.net/ 第二步:浏览器查找域名的IP地址 浏览器会把输入的域名解析成对应的IP,其过程如下: 1.查找浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接返回IP,否则下一步。 2.查找系统缓存:浏览器缓存中找不到IP之后,浏览器会进行系统调用(windows中是gethostbyname),查找本机的hosts文件,如果找到,直接返回IP,否则下一步。 3.查找路由器缓存:如果1,2步都查询无果,则需要借助网络,路由器一般都有自己的DNS缓存,将前面的请求发给路由器,查找ISP 服务商缓存 DNS的服务器,如果查找到IP则直接返回,没有的话继续查找。 4.递归查询:如果以上步骤还找不到,则ISP的DNS服务器就会进行递归查询,所谓递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步查询。(本地域名服务器地址是通过DHPC协议获取地址,DHPC是负责分配IP地址的) 5.迭代查询:本地域名服务器采用迭代查询,它先向一个根域名服务器查询。本地域名服务器向根域名服务器的查询一般都是采用迭代查询

curl命令行工具

允我心安 提交于 2019-11-27 07:43:13
curl是一个命令行工具,通过指定的URL来上传或下载数据,并将数据展示出来。curl中的 c 表示client,而URL,就是URL。这里我们介绍一下curl的使用。 1. 命令行基础 1.1 命令行选项 1. 短形式 在curl中可以使用短形式的命令行选项,比如通知curl打开verbose模式,可以使用 -v 选项: $ curl -v www.baidu.com 这里, -v 就是短形式的选项,我们使用一个中划线(-)并紧跟着一个字母来指定一个短形式的选项。 在这个例子中, -v 就像一个开关一样,指定某个变量是 false 还是 true 。我们可以在一个中划线后面跟多个单字母的选项: $ curl -vL www.baidu.com 在curl中,命令行解析器总是解析整个命令行,因此,选项可以放在整个命令行的任何位置: $ curl www.baidu.com -vL 这个和上面的命令具有同样的效果。当然,虽然是任何位置,但不能放在 curl 前面啊: $ -vL curl www.baidu.com // No command '-vL' found 2. 长形式 单个字母的选项敲起来和用起来都很方便,但是字母的个数有限而需要控制的东西又太多,这个时候就可以使用选项的长形式。同样,为了使得命令便于阅读,绝大多数短形式都有一个对应的长形式。 和短形式不同的是

SEO优化 - canonical标签

自作多情 提交于 2019-11-27 03:45:37
前言 在给网站进行改版和换域名时,因为一些原因不能配置301重定向,可能会出于下策选择使用Canonical标签来标注新版页面的URL。为什么说这种做法是出于下策呢?因为Canonical标签并不能代替301重定向进行权重叠加的作用,是一种无奈之举。 什么是重定向 URL重定向(URL redirection,或称网址重定向或网域名称转址),是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网站网址,转成较短的网址。因为当要传播某网站的网址时,常常因为网址太长,不好记忆;又有可能因为换了网路的免费网页空间,网址又必须要变更,不知情的使用者还以为网站关闭了。这时就可以用网路上的转址服务了。这个技术使一个网页是可借由不同的统一资源定位符(URL)连结。 URL重定向就是把一个URL重定向到另一个URL上去。重定向即是把一个目录或者文件的访问请求转发至另外一个目录或者文件,当用户发出相应的访问请求时将自动跳转到指定的位置,常见的重定向有301(永久重定向)及302(暂时重定向)两种。 301永久性重定向: 在做搜索引擎优化时对URL进行重定向都会使用301永久性重定向,重定向常用于域名或者目录变更的情况,可以有效实现新旧域名或者新旧目录之间的无缝对接。不管是对于普通用户还是搜索引擎都是十分友好的

在浏览器地址栏输入URL,按下回车后究竟发生了什么?

可紊 提交于 2019-11-26 23:14:59
这是一道面试会经常问的问题,平时虽然很常见的操作,但是探究其底层原理,可能并不是一件简单的事情,于是我从各处搜罗整理下全过程,在这里做分享。 第一步:浏览器输入域名 例如输入: www.csdn.net/ 第二步:浏览器查找域名的IP地址 浏览器会把输入的域名解析成对应的 IP,其过程如下: 1.查找浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接返回IP,否则下一步。 2.查找系统缓存:浏览器缓存中找不到IP之后,浏览器会进行系统调用(windows中是 gethostbyname ),查找本机的hosts文件,如果找到,直接返回IP,否则下一步。 3.查找路由器缓存:如果1,2步都查询无果,则需要借助网络,路由器一般都有自己的DNS缓存,将前面的请求发给路由器,查找ISP 服务商缓存 DNS的服务器,如果查找到IP则直接返回,没有的话继续查找。 4.递归查询:如果以上步骤还找不到,则ISP的DNS服务器就会进行递归查询,所谓递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步查询。(本地域名服务器地址是通过 DHPC 协议获取地址, DHPC 是负责分配

转发与重定向的区别

穿精又带淫゛_ 提交于 2019-11-25 20:07:42
转发与重定向的区别如下: 转发是服务器行为,重定向是客户端行为 1.转发在服务器端完成的;重定向是在客户端完成的 2.转发的速度快;重定向速度慢 3.转发的是同一次请求;重定向是两次不同请求 4.转发不会执行转发后的代码;重定向会执行重定向之后的代码 5.转发地址栏没有变化;重定向地址栏有变化 6.转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成 在servlet中调用转发、重定向的语句如下: request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jsp response.sendRedirect("new.jsp");//重定向到new.jsp 转发过程:客户浏览器发送http请求,web服务器接受此请求,调用内部的一个方法在容器内部完成请求处理和转发动作,将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。 重定向过程:客户浏览器发送http请求,web服务器接受后发送302状态码响应及对应新的location给客户浏览器