首页 > 代码库 > php与http协议

php与http协议

1.预定义变量$_SERVER

    $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。

    可以再后台输出 

            foreach($_SERVER as $key=>$val)

                        echo "$key=$val <br/>"; 

     来看后台二次处理的HTTP协议。(后台的模块将接受的http协议进行二次封装)。在输出的path中,是服务器的中的环境变量。key为$REMOVE_ADDR的值为访问者的ip地址。可以在后台判定来禁止某些ip的访问者:

            if($_SERVER[‘REMOVE_ADDR‘]==192.168,1,100)

            {

                            //做一些处理,比如直接退出,或者跳转到其他页面

                            //页面跳转也是属于http协议中的部分

                            header("Location:somePage.php");

             }

 

    一般用$_SERVER[‘DOCUMENT_ROOT‘]来获取文件在服务器中的路径;

 

    具体参数参考php手册(预定义变量)

 

 

2.防盗链Reference

    若只希望本网站的的页面去访问,可以查看http消息体里的reference来判定,如下代码

         if(isset($_SERVER[‘HTTP_REFERER‘]))

         {

                if(strpos($_SERVER[‘HTTP_REFERER‘],"http://localhost/www")==0)

                {

                        //说明为本网站的站点访问,则可以继续访问

                }

                else

                {

                        header("Location:somePage.php");

                }

         }

 

3.GET与POST请求的区别(还有其他的请求方式,这两种只是常用的)

  (1)get请求是放在地址栏中。post请求是放在http协议的消息体里面。

  (2)大小

 

4.header的意义

        header是往http消息体里面写入东西,例如:

                header("Location:somePage.php");

        就是重新跳转。

        返回给 浏览器的状态码是302而不是200,所以发生跳转实在客户端(浏览器)。

 

5.状态码

    304代表服务器没有更新这个文件,将不会再发送该文件给浏览器。