书签如何运作?

时间:2011-05-29 21:34:35

标签: php url url-routing bookmarks

我很感兴趣的是书签如何适用于像facebook这样的社交网站,例如当你查看别人的个人资料时

www.facebook.com/customname

或者如果他们还没有制作一个

www.facebook.com/generatedname

是否有某个获取请求我失踪了?是

www.facebook.com/profile.php?key= 

隐藏在网址中?但是服务器如何知道解释网址以查找某人的个人资料页面?它是如何工作的!!!!!谢谢!

3 个答案:

答案 0 :(得分:5)

是的,通常会使用rewrite engines隐藏请求,例如mod_rewrite

facebook.com/customname这样的东西被重写为facebook.com/profile.php?key=customname,然后在内部从数据库中查找正确的个人资料页面。

答案 1 :(得分:1)

有一种称为 mod_rewrite 的解决方案,它实际上翻译用户访问的网址(并且 用户可见 )进入脚本的路径(以及所有参数)。

示例:当您访问例如。 http://www.facebook.com/ben,服务器实际上可能会将其转换为www.facebook.com/profile.php?name=ben,而不会注意到它(因为它发生在服务器端)。

这就是它的完成方式。

但是还有另一个松散相关的解决方案发生在客户端(在用户的浏览器内,而不是在服务器上)。此解决方案称为 pushState ,它是HTML5的功能(HTML5是新标准,支持现代浏览器中类似应用程序的行为)。

只需查看this demonstration(它允许您更改URL,来回移动,但如果您直接键入访问过的URL,则会显示服务器上没有任何内容)。要做类似的事情,你需要学习JavaScript(在浏览器端执行的脚本的语言)。

另外pushState某些网页(如Twitter和 - afair - Facebook)使用基于位置哈希的解决方案(#之后的网址部分),它们保持与某些已弃用的浏览器的兼容性,如IE7等。

也许这对你的问题来说太过分了,但你现在应该非常了解用户可见的URL与真正调用的URL有何不同。

如果您还有其他问题,请与我们联系。

答案 2 :(得分:0)

他们可能使用.htaccess或类似机制将所有请求重定向到单个条目文件。该文件开始处理请求,还可以检查是否在网址上指定了customname帐户。