Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTful URL的好处_Rest - Fatal编程技术网

RESTful URL的好处

RESTful URL的好处,rest,Rest,它的好处是什么 http://www.example.com/app/servlet/cat1/cat2/item 网址 结束 网址 如果我们使用第一个URL,可能会有任何问题,因为最初我们使用的是第一个URL并更改为第二个URL。这是在网站内容不断变化的大背景下。在这里,类别的数量可以是无限的。一个区别是,第二个URL没有命名类别,因此客户端代码和人类用户需要首先查找一些类别名称到编号的映射页面,存储这些映射,一直使用它们,并在遇到以前未知的类别时刷新列表等。。给定第一个URL,即使项目

它的好处是什么

 http://www.example.com/app/servlet/cat1/cat2/item 
网址

结束

网址


如果我们使用第一个URL,可能会有任何问题,因为最初我们使用的是第一个URL并更改为第二个URL。这是在网站内容不断变化的大背景下。在这里,类别的数量可以是无限的。

一个区别是,第二个URL没有命名类别,因此客户端代码和人类用户需要首先查找一些类别名称到编号的映射页面,存储这些映射,一直使用它们,并在遇到以前未知的类别时刷新列表等。。给定第一个URL,即使项目页面没有提到它们,您也必须知道这些类别(但是站点可能仍然需要某个地方的类别列表)


另一个区别是,第一种格式编码两个级别的分类,而第二种格式隐藏级别数。这可能会使事情变得更容易或更难,这取决于您希望深度的变化程度(现在或以后),以及是否有人不适当地将代码耦合到2级深度(例如,通过使用regexp解析URL,使用两个子组捕获类别)。当然,如果它们与id->category path mapping页面中列出的类别的当前深度相耦合,那么同样的问题也可能存在。…

就搜索引擎优化而言,如果这是您希望搜索引擎在它们下面索引的内容。大多数引擎都喜欢匹配搜索查询的URL。但是,如果类别名称可以更改,您可能需要在更改时进行维护。

第一个表单将更好地被搜索引擎索引,并且更便于缓存。后者既是一个优点(可以减少服务器上的负载),也是一个缺点(您不一定知道有人重新访问您的页面,页面更改可能不会立即传播给用户:为此必须小心谨慎)

第一个表单还需要(稍微)更繁重的处理来从URL获取所需的项目

如果您可以控制URL语法,我建议如下:

 http://www.example.com/app/servlet/cat1/cat2/item/12345
或者更好的是,通过URL重写

 http://www.example.com/cat1/cat2/item/12345

其中12345是资源ID。然后,当您访问数据(无论如何您都会这样做)时,您能够快速访问数据;您只需验证记录是否与cat1、cat2和item匹配。尝试页面缓存设置,确保发送ETag(可能基于ID?)和上次修改的标题,并检查是否自修改以来以及是否没有与标题请求匹配。

我们这里的问题不是“更好”的索引,而是相关性

因此,第一个URL会将您的页面标记为与主题更相关的页面(假设页面/类别名称与主题相关)

例如:假设我们都想为“红色耐克鞋”排名,说(为了简单起见)除了URL,我们在所有搜索引擎优化因素上都得到了相同的“分数”。 在第一种情况下,URL可以是
http://www.example.com/app/servlet/shoes/nike/red-nice
在第二个
http://www.example.com/app/servlet?itemid=12345

只需查看两个字符串,您就可以直观地感觉到哪一个更相关。。。 第一只会告诉你“是的,我喜欢红色的耐克鞋”,而第二只会咕哝着“红色的耐克鞋?你是说商品代码12345吗?”

此外,在URL中加入部分KW将帮助您获得更多的相关性,还可以帮助您在不做太多工作的情况下赢得“长尾”目标。(在URL中加入KW有时就足够了)

但问题更为严重。 第二种类型的URL包括参数,这些参数(99.9%)可能导致重复内容问题。使用参数时,您必须处理以下问题:

  • 不存在的catid会发生什么
  • 是否有参数验证?(这有多充分的证据?)
等等


那么为什么选择第二个版本呢?因为有时候你就是别无选择……:)

对于RESTful应用程序,您不应该关心URL模板。“更好的”是应用程序更容易生成的

关于索引和SEO,很抱歉,但是搜索引擎不太可能理解您的超媒体API来索引它

为了更好地了解URL,请查看:


你好,托尼,谢谢你的回复。如果我们从第二个URL更改为第一个URL,你能看到使用第一个URL时出现的任何问题吗。如果我们有无限多的类别。
 http://www.example.com/cat1/cat2/item/12345