URL规范化(url normalization)其实就是一个标准化URL的过程,其实也就是将一个URL转化为一个符合规范的等价URL(如http://www.blog.com /shudo转化为http://www.blog.com/shudo/),这样程序可以确定这两个URL是等价的。
URL规范化用于搜索引擎可以减少对页面的重复索引,同时也可以减少爬虫的重复抓取。浏览器端识别用户是否访问过一个URL也需要使用URL规范化。
* 1 URL组成
* 2 不规范的URL
* 3 URL规范化过程
* 4 SEO URL规范化
URL组成:
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
协议://主机名[:端口]/ 路径/[:参数] [?查询]#Fragment
不规范的URL:
1 URL中多余的字符
1.1 子域名的URL中包含"www": "http://www.shudo.blog.com/"
1.2 含有默认端口: "http://www.blog.com:80/shudo/"
1.3 松散的URL: "http://www.chapters.indigo.ca/books/amazon-sucks-donkey-balls/9780470170779-item.html"
1.4 多余默认文件名index.html,default.aspx等:"http://www.blog.com/shudo/index.html"
1.5 文件路径中
(1) 多余的"/":"http://www.blog.com/shudo//"
(2) 多余的点修饰串:"x/y/z/http://www.blog.com/a/b/http://www.blog.com/../page.html"
1.6 查询串中多余的
(1) ? (空查询串):http://www.blog.com/shudo?
(2) &
(3) 无用的查询变量:http://www.example.com/display?id=123&faint=faint
2 URL缺少字符串
2.1 缺少"/":"http://www.blog.com/shudo"
2.2 查询串缺少名称或者值:"http://www.example.com/display?id=" 或者 "http://www.example.com/display?=123"
3 其他不规范的URL
3.1 "http://shudo.blog.com/" 与 "http://www.blog.com/shudo/"其实是相同的内容
3.2 使用IP代替域名
3.3 含有扩充字符(extended characters),大小写敏感("http://www.google.cn/Intl/zh-CN/about.html" 和"http://www.google.cn/intl/zh-CN/about.html")
3.4 "+"和"%20"混用
3.5 查询变量顺序混乱:"http://www.example.com/test.aspx?bar=1&a=test"
3.6 含临时的状态变量:http://www.example.com/test?back=/prevpage.aspx
URL规范化过程:
1.URL协议名和主机名小写化
HTTP://WWW.EXAMPLE.com/test -> http://www.example.com/test
2.escape序列转化为大写,因为escape序列大小敏感
%3a ->%3A
3.删除Fragment(#)
http://www.example.com/test/index.html#seo -> http://www.example.com/test/index.html
4.删除空查询串的'?'
http://www.example.com/test? -> http://www.example.com/test
5.删除默认后缀
http://www.example.com/test/index.html -> http://www.example.com/test/
6.删除多余的点修复符
http://www.example.com/../a/b/../c/./d.html -> http://www.example.com/a/c/d.html
7.删除多余的"www"
http://www.test.example.com/ -> http://test.example.com/
8.对查询变量排序
http://www.example.com/test?id=123&fakefoo=fakebar → http://www.example.com/test?id=123 \
9.删除取默认值的变量
http://www.example.com/test?id=&sort=ascending → http://www.example.com/test
10.删除多余的查询串,如?,&
http://www.example.com/test? → http://www.example.com/test
11.Dust 规则(Schonfeld 等人提出的启发式方法)
http://www.example.com/test?id=123 -> http://www.example.com/test_123
SEO URL规范化:
不规范的URL会造成网站很多重复的URL,导致爬虫重复抓取同一内容,影响网站有效的内容被抓取,同时也就影响索引。
多个不规范URL造成PR稀疏,本来流向同一页面的PR,结果造成了流向多个不规范的URL。
还有一个用户体验问题,复杂或者不规范的URL容易使用户对网站造成不良印象。
Google管理员增加了URL规范化的工具,可以删除URL中无用的参数。
分享到:
相关推荐
在Laravel 4中,框架对请求的URI进行规范化,确保所有请求都能被正确解析和路由,无论用户如何输入URL。这个过程对于保持应用程序的一致性和可预测性至关重要。 首先,了解URI(统一资源标识符)是理解这一过程的...
规范化网址 URL 当您需要显示,存储,重复数据删除,排序,比较等URL时很有用。 安装 $ npm install normalize-url 如果需要在浏览器中使用它,请使用版本4: npm i normalize-url@4 用法 const normalizeUrl = ...
网址模式算法 Web搜索引擎中用于url规范化、网页分类和web信息整合的基本算法 该算法的思想来自A Pattern Tree-based Approach to Learning URL Normalization Rules(来自WWW),我根据实际应用。
此外,数据库的规范化(normalization)虽然有助于减少数据冗余,但在大数据环境中,这种规范化可能会导致查询效率降低,增加系统的复杂性。 ### 非关系型数据库的优势 相比于关系型数据库,非关系型数据库(NoSQL...
协议中还涉及了各种消息格式,如键值对(Key-Value)、名值对(Name-Value)和消息摘要(Message Authentication Code, MAC),以及信息的规范化(normalization)以确保一致性。此外,安全方面的重要概念包括共享...
在设计数据库时,应遵循 normalization 规范,减少数据冗余,提高数据一致性。同时,通过合理的索引优化,可以提升查询性能,确保系统在大量并发访问时仍能快速响应。 结合Struts2和MSSQL,开发者可以创建一个高效...
数据库设计需要遵循 normalization 规范,确保数据的一致性和完整性。 5. **前端技术**:HTML、CSS和JavaScript是构建用户界面的基础。现代前端框架如React、Vue.js或Angular能提升用户体验,提供动态交互功能。...
在进行数据库操作时,特别是增加新记录时,必须遵循一定的流程和规范以确保数据的完整性和一致性。以下是对标题"数据库增加用例RUCM文本描述_v21"以及描述中提到的知识点的详细解释: 1. **数据库配置**: - 开发...
在关系型数据库设计中,遵循 normalization 规范(如1NF、2NF、3NF和BCNF)能减少数据冗余,提高数据一致性。此外,索引的合理使用可以显著提升查询性能,但也会占用额外的存储空间并可能影响插入和更新速度。 在...
在数据库设计时,通常会遵循 normalization 规范,确保数据的一致性和减少冗余。这八个表可能包括用户表(User)、宠物表(Pet)、服务类型表(ServiceType)、服务记录表(ServiceRecord)等。每个表都有其特定的...
20. 数据库系统:数据库并不能完全避免数据的重复,但是可以通过规范化(Normalization)来减少数据冗余,提高数据一致性。 21. 数据不一致原因:数据不一致的根本原因通常是数据冗余,冗余的数据容易导致数据更新...
数据库设计应遵循 normalization 规范,确保数据的一致性和减少冗余。 五、应用程序架构 为了实现完整的二维码管理系统,可能需要采用MVC(Model-View-Controller)或MVVM(Model-View-ViewModel)设计模式。模型...
数据库设计需遵循 normalization 规范,确保数据的一致性和减少冗余。 5. **用户认证与授权**:系统可能实现了用户登录功能,涉及到身份验证(验证用户名和密码)和授权(确定用户可以访问哪些资源)。这可能使用...
对于数据库设计,需遵循 normalization 规范,以减少数据冗余和提高数据一致性。 七、运行与部署 该系统运行时,需要先在本地或服务器上安装并配置好Java环境、Tomcat服务器和MySQL数据库。将项目部署到服务器后,...
- 数据库设计应遵循 normalization 规范,提高数据的完整性和一致性。 4. **SSL证书与HTTPS**: - SSL(Secure Socket Layer)证书是网络安全的一种机制,用于加密浏览器和服务器之间的通信,防止数据被窃取。 -...
数据库设计需遵循 normalization 规范,如第一范式(1NF)、第二范式(2NF)和第三范式(3NF),确保数据结构合理且易于维护。 3. **身份验证与授权**:为了保护用户安全,C# BBS系统需要实现用户登录、注册功能,...
- **Normalization**:将接收到的数据进行规范化,确保数据结构的一致性,便于缓存和复用。 ### 4. Fragment 和 Query - **Fragments**:在 Relay 中,组件通过定义 `Fragment` 来声明它们需要的数据。`Relay ...
数据库设计应遵循 normalization 规范,以减少数据冗余和保证数据一致性。在项目中,可能存在的问题包括数据结构不合理、查询效率低下或数据安全问题。 4. **API接口设计**: API接口用于前端与后端的通信,常用...
此外,页面设计需符合微信小程序的规范,提供良好的用户体验。 在后端,使用了PHP的ThinkPHP5框架。TP5是一个基于MVC模式的开源PHP框架,它的核心特点是快速、简洁和高效。开发者可以利用TP5的路由功能定义URL规则...