Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在构建URL';什么是网站?_Php_Url_Resources_Web - Fatal编程技术网

Php 在构建URL';什么是网站?

Php 在构建URL';什么是网站?,php,url,resources,web,Php,Url,Resources,Web,这是我们的后续问题。在安全性和可伸缩性方面。请引用任何资源(在线/离线)。在安全性和可扩展性方面,您可以使用您想象的任何URL 影响URL构建规则的通常是人类可读性和可用性,或者(更常见的是)搜索引擎友谊 比如说,PHP.NET提供了一个著名的特性,可以方便快捷地访问函数描述。这就是创建此类URL的原因,而不是安全性。安全性和可伸缩性与URL的形成方式关系不大。有些网站确实使用神秘的URL作为保护图片的措施(如Facebook),这种类型的安全性通常不受欢迎,因为通过各种方式(浏览器缓存、代理缓

这是我们的后续问题。在安全性和可伸缩性方面。请引用任何资源(在线/离线)。

在安全性和可扩展性方面,您可以使用您想象的任何URL

影响URL构建规则的通常是人类可读性和可用性,或者(更常见的是)搜索引擎友谊


比如说,PHP.NET提供了一个著名的特性,可以方便快捷地访问函数描述。这就是创建此类URL的原因,而不是安全性。

安全性和可伸缩性与URL的形成方式关系不大。有些网站确实使用神秘的URL作为保护图片的措施(如Facebook),这种类型的安全性通常不受欢迎,因为通过各种方式(浏览器缓存、代理缓存等)知道URL的每个人都可以访问假定受保护的资源


虽然干净的URL有助于搜索引擎优化,但通常意味着响应速度较慢,因此可伸缩性降低。考虑一个URL,向你展示我的个人资料的个人资料页。如果我的帐户在数据库中不是通过我的帐户名而是通过一个(某个任意数字)链接的,那么系统首先必须查询用户表中我的代理项,以便获得其余信息。这会降低性能,因为必须再查询一个表。

虽然我完全同意Col.Shrapnel的回答,但在一些情况下,长的“神秘”ID有助于安全性,有时甚至可扩展性。ShareLocker(RapidShare和friends)通常在其URL中使用
/ID/Filename
结构,以通过模糊性增加安全性。对某人来说,测试所有整数或公共文件名并访问敏感信息太容易了

有些人还将某种校验和算法应用于他们的数据库ID,这使得某些人很难弄清楚底层结构并“隐藏”某些类型的信息:例如,我敢打赌,如果订单的URL是
/order/2/
,许多人会不愿意在线支付。使用校验和也有助于提高性能,因为您可以忽略无效ID,甚至不必查询数据库(当有人粗暴地强制您的URL时很有用)

长ID有助于提高可伸缩性,因为它们提供了更大范围的可能数字(两次假设“int(11)对每个人来说都足够了——对不起,找不到老故事),这就是为什么现在你会看到Twitter和朋友们使用不同的方法


当您使用更宽的ID时,还可以存储更多信息,例如时间戳、创建数据库记录的IP/主机名等,这在运行分布式数据库设置时非常重要。请查看文档以更好地了解其工作原理。

这可能太模糊,无法回答。你能想出一个具体的例子吗?当为动态用户生成的内容网站(如twitter)编写URL时,每个用户的帖子都会被赋予一些长整数。同样地,当我决定MySQL表中的数据类型,或者在为我的网站进行MODY重写时重写规则时,我应该考虑些什么……除非代理键被索引,在这种情况下,在解决模糊性(哪一个“拉尔斯”)的同时,性能将至少是相等的。此外,ShareLocker(RapidShare和friends)使用“/ID/Filename”结构通过模糊性增加安全性。是的,你可以通过索引来加快速度,但对于像twitter这样的高性能网站,直接使用主键仍然更好。整数搜索通常比字符串搜索快,索引这些搜索也会加快搜索速度。正因为如此,我认为你的答案没有多大意义,你似乎自相矛盾:surrugate键可以是主键(例如,自动递增的数字),并标识准确的“Lars”,而不是
n
“Lars”.我不同意-正如我所说,搜索字符串比搜索整数慢。对于索引也是如此。因此,通过我的代理访问我的个人资料,integer主键比使用我的名字作为主键要快。你的最后一句话真的让我感到困惑-我想你是说使用代理键会降低性能。我很抱歉误解了你