博主信息
富贵人生
博文
87
粉丝
0
评论
0
访问量
3747
积分:0
P豆:174

【前端】为什么有些网站的页面地址,没有加上html或者php或者jsp的后辍名?

2021年10月12日 16:11:14阅读数:22博客 / 富贵人生

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

回答

因为不需要

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

scheme:[//[user:[email protected]]host[:port]][/]path[?query][#fragment]

via Wikipedia

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

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

而如今,网站几乎都是动态的了,URI 不再和文件一一对应,QQ靓号交易地图而是以功能、逻辑区分。后端框架会解析 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.

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

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

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

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


版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论