繁体   English   中英

从相对URL确定完整URL的最快方法是什么(给定基本URL)

[英]What's the fastest way to determine a full URL from a relative URL (given a base URL)

我目前正在使用模块URI::URL URL从相对URL生成完整的URL; 然而,它并没有像我希望的那样快速运行。 有没有人知道另一种方法可能会更快?

刚发生在这篇文章中 ,指出了Perl的Redhat / Centos / Fedora实现中的缺点,它们深刻地影响了URI

如果您正在运行其中一种Linux版本,则可能需要从原始源(而不是RPM源)重新编译Perl。

我意识到在Redhat 5.2,Centos 5.2或Fedora 9上使用perl解释器运行perl代码的人很可能是受害者。 是的,即使您的代码不使用花哨的祝福/过载习语,许多CPAN模块也可以! 这个谷歌搜索显示1500多个模块使用祝福/过载成语,它们包括一些非常流行的,如URI,JSON。 ...

...此时,我决定从源代码重新编译perl。 虫子消失了。 而差异是令人震惊的。 一切都变得非常快。 CPU负载低于0.10,我们处理的数据速度提高了100倍到1000倍!

以下代码应该有效。

$uri = URI->new_abs( $str, $base_uri )

您还应该查看search.cpan.org的URI页面

布兰登,我应该澄清一点,我无法保证相对路径会是什么样子。 它可能非常棘手(例如前面有斜线,没有斜线,有“../”等)。

彼得,这就是我现在正在使用的东西。 或者使用URI :: URL-> new($ path) - > abs更快?

可能有点依赖于你如何获得这两个字符串。 可能安全,防火的方法就是在URI :: URL或类似的库中,其中包括恶意的所有替代品都将被考虑在内。 也许速度较慢,但​​在某些环境中,子弹的速度会更快。

但是,如果你期望有一些简单而不棘手的东西可以看到它是以/,或者任何其他字符串开头的。 第一个将服务器名称+ url,第二个切断路径从基础uri直到进入其他两个替代方案之一,或者只是将其添加到基本URL。

也许我得到了错误的结束,但不会,

$full_url = $base_url . $relative_url

工作? IIRC Perl文本处理非常快。

Ah sure yes of course. 当然可以肯定是的。 对不起我无法帮助,我的Perl非常生疏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM