URL(Uniform Resource Locator,统一资源定位符),作为网络资源的标准名称,使用一系列的信息标识来帮助我们定位网络资源,同时也告诉我们如何来获取资源。
实际上,URL是URI(Uniform Resource Identifier,统一资源标识符)的子集,URI作为一个基本概念,由URL和URN(Uniform Resource Name,统一资源名称)两部分组成。URL通过描述资源的位置来定位资源,而URN通过名字来查找资源,而不管资源是否被迁移。
但是,目前URN使用非常少,为了更有效的工作,URN需要一个支撑架构来解析资源的位置;所以,几乎所有的URI都是URL,因此,一般的网页链接我们可以称之为URL。
URL的一般格式为(“[]”内的为可选):
protocol://hostname[:port]/path/[;parameters][?query]#fragment
例如:
http://www.imailtone.com:80/news/index.asp?name=tom&;age=20#resume
从上面的URL可以看出,一个完整的URL包括以下几个部分:
1.协议部分:指访问服务器获取资源时,需要使用哪种协议。常用的有http、https、ftp协议等。本例中http后面的“//“为分隔符。
2.域名部分:指资源宿主服务器的主机名或IP地址。本例中的域名部分为:www.imailtone.com。URL中也可以使用IP作为域名。
3.端口部分:域名和端口之间使用“:“作为分隔符,端口不是一个URL必须的部分。http服务的默认端口是80,这种情况下端口号可以省略,如果使用了其他端口必须知名,例如:http://www.cnblogs.com:90/
注:80和8080是两种不同的端口。
80端口是http协议开放的,该协议为上网冲浪次数最多的协议,主要用于www(world wide web)即万维网传输的协议。
8080端口是被用于www代理服务的,可以实现网页浏览,经常在访问某个网站或者使用了代理服务时,会加上“:8080“端口号。另外,Apache Tomcat web server 安装后,默认的服务端口是8080。
4.虚拟目录部分:该部分说明了资源位于服务器的什么地方。从域名后的第一个“/“开始到最后一个“/“为止,是虚拟目录部分。本例中的虚拟目录是“/news/”。
5.文件名部分:从域名的最后一个”/“开始到”?“为止,是文件名部分。如果没有”?“,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。本例中的文件名是“index.asp”。
注:以上”4和5“的部分,就组成了path部分。
6.参数部分:为了向应用程序提供他们所需要的输入参数,以便正确的与服务器进行交互。URL中有个参数组件,由字符”;“将其与URL的其余部分分隔。
例如:”;type=7;nam=true“就是两个参数。
ftp://prep.mit.edu/pub;type=7;nam=true
7.查询部分:很多资源,比如数据库服务、搜索引擎,都可以通过提问问题或进行查询来缩小请求资源的范围。由字符串”?“将其与URL的其余部分分隔开来。从“?”开始到“#”为止之间的部分为参数部分。参数可以允许有多个,参数与参数之间用“&”作为分隔符。本例中的参数部分为“name=tom&;age=20”。
9.锚部分:”#“代表网页中的一个位置,其右面的字符就是该位置的标识符(一般情况下,锚链接会用到)。从“#”开始到最后,都是锚部分。本例中的锚部分是“resume”。锚部分也不是一个URL必须的部分。
参考文件链接:
1.http://blog.csdn.net/youyounou/article/details/41073399
2.http://blog.csdn.net/ergouge/article/details/8185219/
3.http://blog.csdn.net/c1052981766/article/details/79010446