• 关于重定向与转发


    其实这个问题一直比较模糊。今天有人讨论这个东西,比较浅显的比较了一番。

    我是从http这个角度来看的。

      我用来测试的PHP代码

    <?php
        $key = empty($_GET['key'])?0:$_GET['key'];
        echo $key;
        if($key == 'redirect'){
            header("location:demo_1.php");
        }else{
             include('demo_1.php');
        //print_r(file_get_contents('demo_1.php'));这也是可以的 }
    ?>

      我们的需求是通过redirect.php 访问demo_1.php的内容

      重定向:重定向是加入客户端发送请求A页面,A页面返回请求内容  头信息中 Status Code:302 Found 这个状态码告诉浏览器,页面发生了重定向,需再次像目标路径发起请求location:demo_1.php,然后第二次发起请求,服务器返回结果。以下是测试的头部信息

    Request URL:http://www.stu.com/redirect.php?key=redirect
    Request Method:GET
    Status Code:302 Found
    Request Headersview source
    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Encoding:gzip,deflate,sdch
    Accept-Language:zh-CN,zh;q=0.8
    Connection:keep-alive
    Host:www.stu.com
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
    Query String Parametersview sourceview URL encoded
    key:redirect
    Response Headersview source
    Connection:Keep-Alive
    Content-Length:8
    Content-Type:text/html
    Date:Wed, 13 Aug 2014 06:22:44 GMT
    Keep-Alive:timeout=5, max=100
    location:demo_1.php
    Server:Apache/2.4.4 (Win64) PHP/5.4.12
    X-Powered-By:PHP/5.4.12

     以上是重定向流程。

     转发:转发我在PHP 中是用的

     include('demo_1.php');
    print_r(file_get_contents('demo_1.php')
    这俩个方法的源码我没了解,这个从http角度来说只发送了一次请求到redirect.php 然后在redirect.php 在引入了demo_1.php 这个文件(
    include('demo_1.php')) 二另外一种获取了demo_1.php的内容再输出来了。所以这俩者都没发送http请求。

    区别二:
      重定向路径会发生变化,转发不会。
    区别三:
      带的参数,重定向后失效,转发不会。
    积累知识,分享知识,学习知识。
  • 相关阅读:
    Ext.dataGroupingStore/JsonStore/SimpleStore
    转:LinQ操作汇总(From CSharpSamples)
    XSLT教程 比较全的
    使用ASP.Net Forms模式实现WebService身份验证
    关于DataRow的RowState和RowVersion
    C#日志工具汇总
    转 Using log4net,
    js//初始话日期
    两个数据库表的连接 查询
    ExtJS入门之三 查询
  • 原文地址:https://www.cnblogs.com/bin-pureLife/p/3910195.html
Copyright © 2020-2023  润新知