2012-01-04 40 views
3

我喜欢飞行>座位>预订的资源结构,所以保留属于某个座位属于一个特定的航班:分层与平板URL

http://example.com/jdf_3prGPS4/1/jMBDy46PbNc 
        ----------- - ----------- 
         |  |  | 
         |  |  | 
        flight seat reservation 

由于客户得到这个(有点丑陋)为后来取消我认为离开了资源结构,缩短的链接预约网址:

http://example.com/reservation/jMBDy46PbNc      

你看不到任何理由(与用户相关的)不缩短这个网址?

+0

假设网站会做同样的事情,那么它们肯定是可以互换的?只有你可以告诉我们他们是否真的做了同样的事情。 :) – Chris 2012-01-04 11:14:28

+0

是的,这些网址是可以互换的,并且会导致完全相同的资源。 – deamon 2012-01-04 11:19:02

+0

然后我看不出没有理由不缩短网址。 :) – Chris 2012-01-04 11:32:34

回答

2

最终用户并不在乎urls结构是什么。事实上,考虑到他们在那里的样子,他们几乎肯定不想看到他们,而只是点击鼠标。这只是出于功能上的考虑。

如果URL导致完全相同的资源,并且资源的行为与不同的URL完全相同,那么几乎根据定义,您使用哪一个并不重要。

我想唯一真正的因素可能是是否有任何安全隐患。我能猜到预订ID吗?这是否让我在任何地方(即我仍然需要登录或什么)?如果有座位和航班,他们必须能够猜出所有三个组合的有效组合,这显然比仅仅强制预订ID更难。

如果最后不是一个问题,然后我看不出有任何理由要永远使用较长的网址...

+0

我现在正在使用短变体。 – deamon 2012-01-05 16:18:21

3

无论您提供的或长或短的网址是不是一个大问题,而是你是否提供只有其中一个或两个是。如果两个URL都返回相同的内容,那么在缓存中(无论是服务器端,中介还是客户端)都会有重复的信息,并且这些信息可能会在两个资源之间不同步,特别是如果它们缓存在不同的位置寿命。理想情况下,你应该提供一个或另一个。如果你真的想提供两者,你应该有一个重定向到另一个,而不是重复它。

+0

好点。我只提供一个网址。 – deamon 2012-01-04 19:53:19