url结构解析
来源说明
版权声明:本段内容【url结构解析】为CSDN博主「冰雪_318」的原创文章修改而来
格式
URL的一般格式为([]内的为可选):
protocol://hostname[:port]/path/[;parameters][?query]#fragment
使用中文来表示就是
协议部分://域名部分[:端口部分]/路径部分/[;参数部分][?查询部分]#片段标识符部分
例如:
http://www.imailtone.com:80/news/index.asp?name=tom&;age=20#resume
格式解析
例如:
http://www.imailtone.com:80/news/index.asp?name=tom&;age=20#resume
-
协议部分:指访问服务器获取资源时,需要使用哪种协议。常用的有http、https、ftp协议等。本例中http后面的“//“为分隔符。
-
域名部分:指资源宿主服务器的主机名或IP地址。本例中的域名部分为:
www.imailtone.com。URL中也可以使用IP作为域名。 -
端口部分:域名和端口之间使用“:“作为分隔符,端口不是一个URL必须的部分。http服务的默认端口是80,这种情况下端口号可以省略,如果使用了其他端口必须书写,例如:
http://www.cnblogs.com:90/
注:80和8080是两种不同的端口。
80端口是http协议开放的,该协议为上网冲浪次数最多的协议,主要用于www(world wide web)即万维网传输的协议。
8080端口是被用于www代理服务的,可以实现网页浏览,经常在访问某个网站或者使用了代理服务时,会加上“:8080“端口号。另外,Apache Tomcat web server 安装后,默认的服务端口是8080。
-
虚拟目录部分:该部分说明了资源位于服务器的什么地方。从域名后的第一个“/“开始到最后一个“/“为止,是虚拟目录部分。本例中的虚拟目录是“/news/”。
-
文件名部分:从域名的最后一个”/“开始到”?“为止,是文件名部分。如果没有”?“,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。本例中的文件名是“index.asp”。
注:以上”4和5“的部分,就组成了path部分【路径部分】。
- 参数部分:为了向应用程序提供他们所需要的输入参数,以便正确的与服务器进行交互。URL中有个参数组件,由字符
;将其与URL的其余部分分隔。
例如:”;type=7;nam=true“就是两个参数。
ftp://prep.mit.edu/pub;type=7;nam=true
-
查询部分:很多资源,比如数据库服务、搜索引擎,都可以通过提问问题或进行查询来缩小请求资源的范围。由字符串”?“将其与URL的其余部分分隔开来。从“?”开始到“#”为止之间的部分为参数部分。参数可以允许有多个,参数与参数之间用“&”作为分隔符。本例中的参数部分为
name=tom&;age=20。 -
片段标识符部分:”#“代表网页中的一个位置,其右面的字符就是该位置的标识符。从“#”开始到最后,都是锚部分。本例中的片段标识符部分是
resume。锚部分也不是一个URL必须的部分。
:target伪类
url的片段标识符部分所指向的文档片段在css中称为target【目标】,使用:target伪类可以使得target被选中。
当片段标识符与文档中多个元素相对应【id错误的写成一样】时,这些元素将会同时被该伪类选中。
:lang()伪类
该伪类可以根据文本使用的语言来选择元素,:lang(要搜索的语言)作用与[lang|="要搜索的语言"]类似但不相同。
[lang|="要搜索的语言"]只能根据lang属性进行搜索,只有元素拥有lang时才能匹配。
:lang(要搜索的语言)可以匹配设定语言的元素的后代,且不用有lang属性,通过其他方式设定语言也可以匹配到。
在H5中,语言可以通过lang属性、meta元素以及协议【比如:http首部的字段】来进行设定