我正在PHP5中创建一个需要为网站存储唯一URL的应用程序。例如,如果用户输入“ http://www.google.com/ ”,则在解析后将其作为“ google.com ”存储在数据库中。基本上我需要一个一致的URL约定,以便同一站点没有多个条目。
基本上,从输入的所有网址中取出“www”是否可以?或者我应该保留它?
我很想听听你的意见。
提前致谢!
答案 0 :(得分:11)
虽然区别并不总是重要,但 www.google.com 指的是与 google.com 不同的DNS条目,并且可能会返回不同的数据。例如,您偶尔会看到 www2.foo.com ,而 foo.com 可能会因为出于奇怪的负载平衡原因而重定向到它。
所以,糟糕的主意。
答案 1 :(得分:7)
保持它。这些是大多数网站视为相同的两个不同的网址。它唯一的缺点是4个字节的数据,因此没有很好的技术理由不存储它。当你在那里时,不要丢弃协议(“http://”)也许是一个好主意。
当您向最终用户显示网址时,当我删除“http://www时 。
答案 2 :(得分:4)
一种方法可能是对网站执行GET操作,并存储您收到的任何重定向的结果。因此,如果您有www.stackoverflow.com
重定向到stackoverflow.com
的网站,那么您只会将规范网址存储一次。
不要假设网站所有者想要什么;让他们告诉你。
答案 3 :(得分:2)
这取决于你所说的“同一网站”。 anything.sitename.com由www.sitename.com所有者拥有。事实上,anything.sitename.com是www.sitename.com的子域。
大多数时候,
www.sitename.com == sitename.com
但是,
blog.sitename.com != sitename.com
答案 4 :(得分:1)
你真的很难存储4个字节会破坏银行存储吗?可能不是。它可能看起来像一个节省空间的功能,但是一旦你遇到没有非www网站别名的网址,你就必须围绕它进行编码。然后,如果您的网址不是www以外的子网域,那么您也必须围绕这些网址进行编码。
从长远来看,最好将网址保留原样并将其吸入原始存储空间,除非您要存储数亿个网址。
答案 5 :(得分:1)
如果您考虑/关心某些网站/应用程序在www.domain.com与domain.com上提供相同内容的事实,而有些则没有,那么截断www可能不是一个好的假设
答案 6 :(得分:1)
答案 7 :(得分:1)
如果您想在同一个域中拥有一些子域,最好保留它。这可能有助于降低您的请求带宽。
例如:
在这种情况下,当您使用谷歌地图时,www网站上的cookie不会在每次请求时发送。
答案 8 :(得分:0)
与http://
不同,在100%的情况下不会假设www
。实际上,www
在大多数情况下是foo.com
的子域。部署网站的方式多种多样,因此裸域与www
相同。最常用的两种是DNS别名,其中www
与顶级域相同,子网重定向为foo.com
与www.foo.com
不同的虚拟目录,并且有一个页面可重定向所有流量到www.foo.com
。
因此,剥离www
并不安全,因为它是同一URL的裸版本的不同地址。另外,对于那些使用HTTP重定向方法的网站,您也可能会产生重定向成本,例如: http://google.com