对 <base>标签的设计评论

Plux posted @ 2013年4月18日 12:37 in Design with tags html html5 , 1675 阅读

 

今天又把上次改的东西重新改了一遍,因为相信世界是美好的。别人总是用比较好的思路来进行框架的设计。但事实上,理想是美好,现实是残酷的。

就像 <base> 标签的设置。

本来客户端的事情,应该交给客户端来处理。发送请求到服务器,是客户端的事情,而关于请求的地址,是客户端的事情。如果服务器不告诉客户端必须有某一个地址,那么客户端应该用他认为正确的地址与服务器进行通信。

如果,地址只是服务器的唯一标识,那么,由客户端或者服务器端处理都一样。但是,一个服务器确实可以处理多个不同的站点,称之为虚拟地址。于是,地址不在是唯一标识了。

而, 本来应该设置为定义整个站点的链接基础前缀,却没有遵循这个规则。 标签必须指明通信的地址,不能依靠客户端推断。只是近期到了 HTML 5 以后,才出现一些转折,支持相对路径(也就是客户端推断地址)。

实际上,这个也许就是当初设计的时候考虑不周的后果吧。

大概因为当时没考虑到,到底会有多少种地址存在。

现在想想,其实真正的地址大概有 3 种吧。因为地址的构成实际上是三部分,主机、端口、主机上地址。但是单凭主机和端口,实际上只能确定一个地址,就是根地址,这个地址不具有扩展性,而且是绝对地址的一个子集,所以,不在考虑之内;而地址实际上有 2 种,一种是相对路径绝对路径,实际上,是分别以当前路径和根路径为标准的两种地址表示方式;那么,而相对路径和绝对路径都必须以来主机和端口。但是如果没有给出主机端口的时候,客户端可以推断是当前的主机和端口,于是,实际上形成了 3 种地址方式。

  • 绝对资源地址:主机、端口、绝对地址
  • 绝对地址:只含有绝对地址(推断主机、端口为当前的主机、端口)
  • 相对地址:相对当前的地址(推断主机、端口为当前的主机、端口,并且,相对与当前的地址)

但是, 标签的设计却只考虑了第一种,而实际上,后两种也很常见。

或者 HTML 定制之初的 90 年代,当时简单的应用,就想到一个地址对应一个应用程序吧。但明显,Java 系的 ContextPath 已经突破了这个。现在大数据时代的到来,服务器平衡等早已经把服务器端做得越来越复杂,但是用户看起来却越来越简单……

Avatar_small
Plux 说:
Apr 20, 2013 08:36:31 AM

@依云: 吐槽一下 <base> 元素的设计。里面只能写绝对的地址(即包括主机名、路径)才可以用。也就是说,在视图上还要考虑请求主机的细节,我觉得这是不当的耦合。
这个细节会引起一些问题。例如,你的CSS等资源文件是统一放置在 /Context/resources 路径下,而你的页面在 /Context/folder1/folder2/ ,那么引用地址可以是 相对主机来说的绝对地址 /Context/resources/xxx 或者就使用相对路径 ../../resources/xxx 。而为了方便设计,使用模板继承后,除非你知道你的地址肯定是 Context 前缀的,否则,你将很难定义资源的地址。如果一个主机地址只对应一个网站(应用),那么无所谓的 Context 的问题,而如果一个主机地址要同时放多个网站(应用),那么 Context 就成为必须考虑的问题了。
如果可以使用 <base> 重定义基本地址,那么,其他地址将可以使用 resources/xxx 来直接引用地址了。
不过,这里实际上要讨论的是关于“什么是不变的”的问题。我觉得 Context 作为网站区别于其他应用的标示,在营运过程中,应该是可根据情况变的(可以根据网站的情况调整,路径冲突等),所以,我不觉得 Context 应该定死。同时,一个应用内的地址是不变的,因为这是由这个网站的开发者自己协调的。
以上只是我个人的理解,刚接触网络还不久,不知道我说的是否清楚,或者有什么问题,或者有更好的解决办法,希望能告知……

Avatar_small
依云 说:
Apr 20, 2013 10:42:43 AM

@Plux: 哦,这个呀。可是我不觉得(改进后的) <base> 标签有用耶,因为它对整个页面有效。如果一个应用有自己和公用的两类资源文件/链接呢?比如一个大应用下属的若干个小应用。

Avatar_small
Plux 说:
Apr 20, 2013 01:32:06 PM

@依云: 这个确实是一个问题。不过也是一个区分变与不变的问题吧。一个大项目里的小项目,还是一个项目里面的吧。那么根据我上面说过的,应该由本项目的开发者来解决冲突问题。也就是说,资源的地址还是在本项目范围内不变的……在于怎么看待这个问题了。
而最后的解决我也没用这个标签,而是自己开发了一套模拟普通的 HTML 标签有连接标签的 taglib,根据定义不同的 context 属性来定位不同项目的资源,如果默认则为当前的 context 。
不知道是否有更好的解决办法?

cleaning services 说:
Sep 10, 2019 04:56:34 PM

Dubai Housekeeping services keeps an important paramount look at all that modules to a household. Perhaps the most common house contains bathrooms, your kitchen's, living living room, bed houses, porch, hold room and even attics. During the process in deep maintaining, we pay attention to all a lot of these places. The room needs a different type cleaning operation. Even the kit and chemicals utilized for cleaning fluctuate. Lets discuss the way we tend to freshen up the household websites.

shawcorsuccess 说:
Nov 11, 2019 05:41:33 PM

Quite a few businesses in your local area might be open to at-home positions instead of know the item. Jobs that need many typing or maybe editing is usually great be employed by at-home individuals. Think about transforming into a medical or maybe legal transcriptionist.

atlanta black busine 说:
Mar 17, 2020 06:15:58 PM

Internet business list can be compiled and even updated every month with help of varied sources which includes yellow pages of content directories, business bank plastic, annual experiences, business and even industry databases, and call verification.

freeze business rate 说:
Mar 17, 2020 06:17:28 PM

Web-based Buisness, internet online affiliate marketing and operating a blog all turn together most certainly. In specified, you are able to add content material links to all your blog items. These shortcuts will send your website page viewer right through to your sales page for a affiliate course.

shawcor success 说:
Mar 17, 2020 06:18:45 PM

Any time you hate arising early in the day and travelling to work for another, then posts an home based online business. People achieve this for a number of reasons, like being aided by the kids possibly a modification of life.

river bank marketing 说:
Mar 17, 2020 06:20:04 PM

Handheld Marketing can be described as broad term these include advertising, encouraging, and strengthening pr announcements presence from businesses throughout digital stands. Some of this digital approaches that come under the outdoor umbrella of 'Digital Marketing' are actually digital selling, email online marketing, content online marketing, pay-per-click, over the internet brochures, and others.

siberyan health 说:
Mar 17, 2020 06:22:38 PM

General and Fundamental Health Policies - It gives a limited health coverage benefit from a considerably affordable insurance selling price. In picking these health coverage, it is that one should read typically the policy story giving special deal with covered assistance. There are actually plans that can not covers on numerous basic treatment methods, certain medical related services along the lines of chemotherapy, expectant mothers care and / or certain prescriptions.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter