url解析

这几天一直在做网络管理;其中有一块需要设计一个后台的下载程序,本来想使用调用系统命令,但考虑到会多开两个进程,于是自己用socket写了一个下载程序,其中关键部分就是对下载链接url的解析。

统一资源定位符 (Uniform Resource Locator, URL)  
是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。
Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是Internet上的站点。简单地说,URL就是Web地址,俗称“网址”。
 
URI 方案集,包含如何访问 Internet 上的资源的明确指令。
 
URL 是统一的,因为它们采用相同的基本语法,无论寻址哪种特定类型的资源(网页、新闻组)或描述通过哪种机制获取该资源。  
 
对于 Internet 服务器或万维网服务器上的目标文件,可以使用“统一资源定位符 (URL)”地址(该地址以“http://”开始)。Web 服务器使用“超文本传输协议 (HTTP)”,一种“幕后的”Internet 信息传输协议。例如,http://www.microsoft.com/ 为 Microsoft 网站的万维网 URL 地址。  
 
URL的一般格式为(带方括号[]的为可选项):
 
protocol :// hostname[:port] / path / [;parameters][?query]#fragment  
 
例如:
 
http://www.imailtone.com:80/WebApplication1/WebForm1.aspx?name=tom&;age=20#resume
 
格式说明:
 
1、protocol(协议):指定使用的传输协议,下表列出 protocol 属性的有效方案名称。 最常用的是HTTP协议,它也是目前WWW中应用最广的协议。  
 
file  资源是本地计算机上的文件。格式file://  
ftp   通过 FTP访问资源。格式 FTP://
gopher 通过 Gopher 协议访问该资源。  
http  通过 HTTP 访问该资源。 格式 HTTP://  
https  通过安全的 HTTPS 访问该资源。  格式 target=_blank>HTTPS://
 
mailto 资源为电子邮件地址,通过 SMTP 访问。 格式 mailto:
MMS  通过 支持MMS(流媒体)协议的播放该资源。(代表软件:Windows Media Player)格式 MMS://
ed2k  通过 支持ed2k(专用下载链接)协议的P2P软件访问该资源。(代表软件:电驴) 格式 ed2k://
Flashget  通过 支持Flashget:(专用下载链接)协议的P2P软件访问该资源。(代表软件:快车) 格式 Flashget://
thunder  通过 支持thunder(专用下载链接)协议的P2P软件访问该资源。(代表软件:迅雷) 格式 thunder://
news  通过 NNTP 访问该资源。  
 
2、hostname(主机名):是指存放资源的服务器的域名系统 (DNS) 主机名或 IP 地址。有时,在主机名前也可以包含连接到服务器所需的用户名和密码(格式:username@password)。
 
3、:port(端口号):整数,可选,省略时使用方案的默认端口,各种传输协议都有默认的端口号,如http的默认端口为80。如果输入时省略,则使用默认端口号。有时候出于安全或其他考虑,可以在服务器上对端口进行重定义,即采用非标准端口号,此时,URL中就不能省略端口号这一项。
 
4、path(路径):由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
 
5、;parameters(参数):这是用于指定特殊参数的可选项。
 
6、?query(查询):可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。
 
7、fragment,信息片断,字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。
 
注意,Windows 主机不区分 URL 大小写,但是,Unix/Linux 主机区分大小写。
 
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。下表中列出了一些URL特殊符号及编码。
十六进制值  
1. +       URL 中+号表示空格                        %2B  
2. 空格   URL中的空格可以用+号或者编码      %20  
3. /        分隔目录和子目录                          %2F  
4. ?       分隔实际的 URL 和参数                  %3F  
5. %     指定特殊字符                                %25  
6. #      表示书签                                      %23  
7. &      URL 中指定的参数间的分隔符        %26  
8. =      URL 中指定参数的值                     %3D  
 
 
网站URL规范与网站结构分析
 
谈到网站URL和网站结构时,大家似乎觉得这两个问题很简单,从技术和理论角度分析,确实简单;但是从网站长期运营和搜索引擎友好方面去分析,网站URL和结构已经成为网站搜索引擎友好的最大基础性问题,网站URL和结构问题,早发现早优化,越是往后放,最后就成了制约网站运营和产品开发的决定性因素。
 
URL规范:
 
URL分为静态URL和动态URL,网站不管采用静态URL,还是动态URL,最后URL链接都要与具体对应页面发生关系,换句话说是页面状态决定了动态URL,还是静态URL,事实上页面本身完全可以不存在,内容存放在数据库中,如果数据库内容没有被前台页面调用,那么数据库的内容其实没有任何意义,对网站来说。当数据库内容被前台调用时,那么就产生了页面,至于页面使用动态URL还是静态URL,这个决定于网站本身和技术能力的问题。如果单从用户和搜索引擎角度考虑,把页面生成静态URL是最好的策略,考虑到网站内容数据海量和服务器承载压力,静态URL和动态URL配套使用是最佳的解决方案。说到这里,静态URL还可以细分为纯静态URL和伪静态URL,动态URL非常容易理解。这里我们先解释一下什么是静态URL?什么是动态URL?
 
静态URL:
 
静态网页使用语言:HTML(超文本标记语言) 纯静态URL后缀多以html、htm形式,例如:http://visa.yeegt.com/country-france.html  
伪静态URL后缀文件名称+“/”形式,
例如:http://www.yeegt.com/eurailpass/
 
动态URL:
 
动态网页使用语言:HTML+ASP 或 HTML+PHP 或 HTML+JSP 等 动态URL后缀多以编程语ASP 、PHP、JSP,或是传参数形式,例如:http://package.yeegt.com/Package.aspx?Id=529 动态URL、纯静态以及伪静态URL优势和劣势: 动态URL的优势是大幅度降低了技术维护工作量,易对网站进行规范化管理,是交互式、购物车、在线注册等特定功能必须使用的,而劣势是动态URL当用户访问时,才从数据库里待用内容并载入预前设定好的页面模板,对于用户访问速度造成了一定的延时影响,同时也消耗了服务器端带宽,不利用大规模用户群同时访问,对网站发展具有很多的局限性;且对搜索引擎蜘蛛爬行造成很大的不便,动态页面大部分是搜索引擎无法爬行和抓取的。
 
纯静态URL的优势是用户访问速度快,用户体验度高,对搜索引擎也很友好,纯静态链接地址被搜索引擎视为真实存在的页面,不易产生坏死链接,搜索引擎蜘蛛爬行速度快;而劣势是每次有新内容或是更新内容时都要直接生产静态页面,对服务器性能是一个严峻的考验,磁盘和内存消耗很大,同时也会轻微的影响服务器端反映速度,消耗了一部分带宽,但比动态URL消耗要小的多。
 
伪静态URL的出现是动态和纯静态的折中解决方案,伪静态最大的好处就是有利于搜索引擎,对用户体验也比较友好,在服务器端与动态URL的工作原理基本相似,但有不同之处,技术人员对整站动态URL制定新规范,对原来传参URL进行有规律的重写,如:http://group.yeegt.com/destination-country.aspx?countryId=133,可以伪静态成,http://group.yeegt.com/destination-country/133/ ,可以在服务器端批量将动态URL重写成伪静态等待搜索引擎蜘蛛来爬行和抓取。
 
URL规范化建议:实时更新的内容采用伪静态形式,不经常更新的内采用静态化形式,特定功能或交互式用动态URL形式。
 
网站结构:网站结构分为:物理结构与逻辑结构,物理路径是网站真实存在的物理绝对路径,而逻辑结构是网站虚拟的相对路径,比如:http://www.yeegt.com/theme/maldives/ 为物理路径结构,而http://www.yeegt.com/…/maldives/ 为虚拟路径结构,换句话说具体文件存放的地址是否真实。网站结构与URL的关系非常密切,互相影响。
 
一般情况下,网站结构采用物理路径还是逻辑路径都是通过URL来区别的,静态URL一般情况是真实反应了页面的物理存放路径,而伪静态多为虚拟路径,但不是说所有的伪静态已经都是虚拟路径。其实网站采用物理路径结构还是虚拟路径结构,对用户访问不会造成任何影响,但是对搜索引擎的影响是比较大的。很多网站静态页面,也就是静态URL也采用了相对虚拟路径,如:<a href=”yazhou.html” target=”_blank”>亚洲</a>,正确的写法应该是<a href=http://visa.yeegt.com/yazhou.html target=” _blank”>亚洲</a> 。
 
物理结构与逻辑结构对搜索引擎没有绝对的有利或是不利,不管是物理结构还是逻辑结构,层级过多都对搜索引擎产生不利的影响。经过四年SEO经验得出,扁平式的物理结构架构与底层数据逻辑结构嵌套模式,才是最佳的网站结构模式。
 
网站频道、栏目、专题采用扁平式物理架构,路径层数不超过3层,这样网站的基本框架就成型了,如果单一的采用逻辑结构,网站内容存放和管理绝对一团糟,为网站坏死链接打下了基础,日后造成的负面作用会非常之大。超出扁平式3层结构的底层数据,可以采用逻辑结构,保证底层数据易被搜索引擎抓取,且获得高权重,什么是底层数据呢?底层数据可以认为是终端页、详情页、或是存放路径比较深的页面。
 
例如:酒店 | 机票 | 自由行 | 团队游 | 目的地指南 频道采用扁平式物理结构 具体酒店页面 具体旅游线路页面 终端页可采用逻辑结构(一般的终端页路径层级已经远远超出了3-5层) 总结:本次主要对网站URL规范和网站结构进行了分析,不单从SEO角度考虑,更多的是从网站运营和产品管理本身出发,以及网站对搜索引擎、网站运营管理成本,特别是对用户体验的诸多有利和不利影响做了具体说明,理论源于实践,如有与现有部分理论有冲突之处,还需要大家一起去验证、实践,在实践中认识问题和分析问题,还原一个真实、完整的理论体系。谢谢大家的关注和阅读!
 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值