目录
回复讨论(解决方案)
首页 后端开发 php教程 header跳转和file_get_contents,哪种速度快些?

header跳转和file_get_contents,哪种速度快些?

Jun 23, 2016 pm 02:16 PM

header file_get_contents

不管是显示还是下载,就是比较它们的速度。我不会,请叫大家。

第一种写法:
header(url地址);
exit();

第二种写法:
echo @file_get_contents(url地址);
exit();

回复讨论(解决方案)

个人认为应该是header更快,看看我的思路:

header()  访问-输出
file_get_contents() 访问-返回数据-输出

本帖最后由 xuzuning 于 2013-02-19 17:23:37 编辑

这要看:
客户端到目标页

服务器到目标页 + 服务器到客户端

哪个快了

个人认为应该是header更快,看看我的思路:

header()  访问-输出
file_get_contents() 访问-返回数据-输出

header() 访问-跳转-输出显示
file_get_contents() 访问-返回时间-输出显示

组长让我测试一下,然后通过数据告诉他,但我迷茫啊......

引用 1 楼 kyzy_yy_pm 的回复:个人认为应该是header更快,看看我的思路:

header()  访问-输出
file_get_contents() 访问-返回数据-输出

header() 访问-跳转-输出显示
file_get_contents() 访问-返回时间-输出显示

组长让我测试一下,然后通过数据告诉他,但我迷茫啊......……

我个人认为,header() 访问- 跳转-输出显示中的跳转可以放到这里考虑吗?因为说的是跳转其实就是访问,我认为应该是这样

这要看:
客户端到目标页

客户端到服务器 + 服务器到目标页

哪个快了

我们的这样的,URL对应的文件在A服务器上,网站在B服务器上。

引用 1 楼 kyzy_yy_pm 的回复:个人认为应该是header更快,看看我的思路:

header()  访问-输出
file_get_contents() 访问-返回数据-输出

header() 访问-跳转-输出显示
file_get_contents() 访问-返回时间-输出显示

组长让我测试一下,然后通过数据告诉他,但我迷茫啊......……[


引用 3 楼 xiongmao000738 的回复:引用 1 楼 kyzy_yy_pm 的回复:个人认为应该是header更快,看看我的思路:

header()  访问-输出
file_get_contents() 访问-返回数据-输出

header() 访问-跳转-输出显示
file_get_contents() 访问-返回时间-输出显示

组长让我……
懂你的意思了,刚刚理解错误了。

在服务器上用file_get_contents获取目标页后发送给用户
相当于客户端使用代理访问目标页

至于谁快谁慢,需要实地测试

在服务器上用file_get_contents获取目标页后发送给用户
相当于客户端使用代理访问目标页

至于谁快谁慢,需要实地测试
具体应该怎么测啊?不会啊......

引用 7 楼 xuzuning 的回复:在服务器上用file_get_contents获取目标页后发送给用户
相当于客户端使用代理访问目标页

至于谁快谁慢,需要实地测试
具体应该怎么测啊?不会啊......
每种方式都循环100次看看所用时间哪个大,当然了两种测试要间隔一段时间在测试,不然会出现误差

引用 8 楼 xiongmao000738 的回复:引用 7 楼 xuzuning 的回复:在服务器上用file_get_contents获取目标页后发送给用户
相当于客户端使用代理访问目标页

至于谁快谁慢,需要实地测试
具体应该怎么测啊?不会啊......
每种方式都循环100次看看所用时间哪个大,当然了两种测试要间隔一段时间在测试,不然会出现误差
    ……
最好是重启机器或者清理内存,不然上次的测试所占用的内存影响下次测试的结果

外在因素太多,首先性质就是不一样一个站内一个站外,header访问考验两次客户端到服务器端的响应时间,file_get_contents 考验客户端到服务器 服务器到源文件服务器两个响应时间,这种东西没法具体判断,只能做分析

这个东西真没测试过,要看需求定吧。

最终是这么测试的。循环500访问同一个地址。ftpstorefile.php里面就是我写的文件下载方法。

$time1 =  time() ;
$url = 'http://192.168.84.72:9500/ftpstorefile.php?fileid=73574';
for($i=0; $i $img_file_str = file_get_contents($url);
$time2 =  time() ;

var_dump($time2 - $time1);
?>

最终得出来的结果是:header跳转需要20秒左右。file_get_contents大概8秒左右。

可能是因为文件服务器和网站服务器是局域网,所以file_get_contents的速度会快些。

你file_get_contents得到的结果没有输出,所以影响了结果的时间,你应该输出,因为不输出无法得到header类似的结果,这样是不公平的

header跳转 是在服务器端直接转向的吗 还是响应到客户端,客户端进行跳转的

根据我的理解header是 服务器响应客户端时候返回的HTTP报头,告诉客户端跳转到这个地址
也就是客户端访问了两次服务器端。
file_get_contents是服务器端读取文件内容返回,客户端只访问了一次服务器 

如果文件是在另一台服务器上的话,就是客户端访问了一次服务器,web服务器访问了一次文件服务器,同样是两次访问,但是我想服务器的速度应该比客户端快吧,包括网速

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

11个最佳PHP URL缩短脚本(免费和高级) 11个最佳PHP URL缩短脚本(免费和高级) Mar 03, 2025 am 10:49 AM

11个最佳PHP URL缩短脚本(免费和高级)

在Laravel中使用Flash会话数据 在Laravel中使用Flash会话数据 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash会话数据

构建具有Laravel后端的React应用程序:第2部分,React 构建具有Laravel后端的React应用程序:第2部分,React Mar 04, 2025 am 09:33 AM

构建具有Laravel后端的React应用程序:第2部分,React

简化的HTTP响应在Laravel测试中模拟了 简化的HTTP响应在Laravel测试中模拟了 Mar 12, 2025 pm 05:09 PM

简化的HTTP响应在Laravel测试中模拟了

php中的卷曲:如何在REST API中使用PHP卷曲扩展 php中的卷曲:如何在REST API中使用PHP卷曲扩展 Mar 14, 2025 am 11:42 AM

php中的卷曲:如何在REST API中使用PHP卷曲扩展

在Codecanyon上的12个最佳PHP聊天脚本 在Codecanyon上的12个最佳PHP聊天脚本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12个最佳PHP聊天脚本

Laravel中的通知 Laravel中的通知 Mar 04, 2025 am 09:22 AM

Laravel中的通知

宣布 2025 年 PHP 形势调查 宣布 2025 年 PHP 形势调查 Mar 03, 2025 pm 04:20 PM

宣布 2025 年 PHP 形势调查

See all articles