HTTP模拟post请求及长连接ob缓存机制,ajax轮询技术

HTTP协议综合应用:

        1:五种方式发送HTTP请求(使用方法自行百度了解)

            1:telnet 

            2: file_get_contents()

            3: fopen()

            4: curl()

            5: fsockopen()

        2:防盗链

            1:通过服务器的重写机制,判断请求来源。把指定范围外的所有不正规请求屏蔽掉。

        3:实时通讯--长连接等

            1:技术--ob缓存、长连接+ajax轮询

               1: 短轮询(polling):客户端按规定时间定时像服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。

扫描二维码关注公众号,回复: 1115958 查看本文章

                技术点:就是下面的js代码部分

<script type="text/javascript">

        var getting = {

        url:'server.php',

        dataType:'json',

        success:function(res) {

         console.log(res);

}

};

//关键在这里,Ajax定时访问服务端,不断获取数据 ,这里是1秒请求一次。

window.setInterval(function(){$.ajax(getting)},1000);

</script>

            2:长轮询----Ajax长轮询属于Ajax轮询的升级版,在客户端和服务端都进行了一些改造,使得消耗更低,速度更快。

<script type="text/javascript">

    //前端Ajax持续调用服务端,称为Ajax轮询技术

    var getting = {

        url:'server.php',

        dataType:'json',

        success:function(res) {

         console.log(res);

         $.ajax(getting); //关键在这里,回调函数内再次请求Ajax

}        
        //当请求时间过长(默认为60秒),就再次调用ajax长轮询
        error:function(res){
        $.ajax($getting);
        }

};

$.ajax(getting);

</script>

            最关键的地方在于前一次请求结束后,第二次请求立即不间断的发起,这个就叫做Ajax长轮询


2:ob缓存机制

说的简单点:

                    默认情况下,php会把输出的内容放到【程序缓存】中,待程序跑完,把【程序缓存】中的东西全部抛到浏览器中;现在使用ob缓存,开启后,所有的输出都会放到【ob缓存】中,头信息(header)等这些依旧存放到【程序缓存】中,

                      待程序跑完,【ob缓存】中的内容会被放到【程序缓存】内容后面,再送到浏览器。ob_flush()是把【ob缓存】中的内容放到【程序缓存】中,之前只有待程序跑完才会把【ob缓存】内容放到【程序缓存】中,现在用ob_flush()就可以在任意时候送到【程序缓存】中;flush()函数的作用是把【程序缓存】中的数据抛到浏览器中;

                        总结: ob_flush()把ob缓存中的内容放到程序缓存 ,flush()是把程序缓存中的内容送到浏览器缓存中

猜你喜欢

转载自blog.csdn.net/qq_33182756/article/details/79857308