html5 - 为什么有些网站的页面地址,没有加上html或者php或者jsp的后辍名?
高洛峰
高洛峰 2017-04-17 12:00:40
[HTML讨论组]

如写成http://www.例子.com/page/help的形式

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(6)
迷茫

因为不需要

Every HTTP URL conforms to the syntax of a generic URI. A generic URI is of the form:

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

via Wikipedia

可见 URI 并不需要以后缀名结尾。

早期的 URI 常见以后缀名结尾,是由于当时的网站多为静态伪静态的,访问一个 URI 相当于 访问 服务器上的一个文件,由服务器直接返回或解析其中的脚本后返回(ASP or PHP)。

而如今,网站几乎都是动态的了,URI 不再和文件一一对应,而是以功能、逻辑区分。后端框架会解析 URI,并将请求分配到对应的处理函数(handler),然后返回处理结果。

大家讲道理

path只是個字符串
他可以映射到服務器的一個文件名 (.php, .asp)
在framework或rewrite的支持下也可以不映射

django的教程有這麼一段:

Because the URL patterns are regular expressions, there really is no limit on what you can do with them. And there’s no need to add URL cruft such as .html – unless you want to, in which case you can do something like this:

url(r'^polls/latest\.html$', views.index),

But, don’t do that. It’s silly.
大家讲道理

能想到的有两种情况,一是help只是个文件夹,在他下面有默认文件名的index.php或者index.html.二是网站设置了路由规则,也就是这个url会被网站重新解析到指定路径

黄舟

在j2ee的web框架spring mvc或者struts中,这个应该是url映射,比如你上面的help映射成框架里的控制器,然后控制器处理完相应业务逻辑之后跳转到指定页面显示处理结果。

PHPz

现在的网站基本是动态的,URL不不代表网站的真实目录,因为已经rewrite,也就是服务器可以控制要不要加,也可以完全重写URL,不加可以提高安全性,虽然这个安全性现在看来没什么鸟用。

大家讲道理

因为路由,给一个url(有没有后缀名都行),服务器会根据url返回相应的页面.jsp,.php,.html等。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号