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

如写成http://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 不再和文件一一对应,而是以功能、逻辑区分。后端框架会解析 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,不加可以提高安全性,虽然这个安全性现在看来没什么鸟用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值