在WWW上,每一信息资源都有统一的且在网上的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址。

语法

URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。

也可认为由4部分组成:协议、主机、端口、路径

URL的一般语法格式为:protocol:// hostname[:port] / path / [:parameters][?query]#fragment

其中带方括号的为可选项

格式说明

protocol(协议)

指定使用的传输协议,下表列出 protocol属性的有效方案名称。 最常用的是HTTP协议,它也是WWW中应用最广的协议。

file 资源是本地计算机上的文件。格式file:///,注意后边应是三个斜杠。

ftp 通过 FTP访问资源。格式 FTP://

gopher 通过 Gopher 协议访问该资源。

http 通过 HTTP 访问该资源。 格式 HTTP://

https 通过安全的 HTTPS 访问该资源。 格式 HTTPS://

mailto 资源为电子邮件地址,通过 SMTP 访问。 格式 mailto:

MMS 通过 支持MMS(流媒体)协议的播放该资源。(代表软件:Windows Media Player)格式 MMS://

ed2k 通过支持ed2k(专用下载链接)协议的P2P软件访问该资源。(代表软件:电驴) 格式 ed2k://

Flashget 通过支持Flashget:(专用下载链接)协议的P2P软件访问该资源。(代表软件:快车) 格式 Flashget://

thunder 通过支持thunder(专用下载链接)协议的P2P软件访问该资源。(代表软件:迅雷) 格式 thunder://

news 通过 NNTP 访问该资源。

hostname(主机名)

是指存放资源的服务器的域名系统(DNS) 主机名或 IP地址。有时,在主机名前也可以包含连接到服务器所需的用户名和密码(格式:username:password@hostname)。

port(端口号)

整数,可选,省略时使用方案的默认端口,各种传输协议都有默认的端口号,如http的默认端口为80。如果输入时省略,则使用默认端口号。有时候出于安全或其他考虑,可以在服务器上对端口进行重定义,即采用非标准端口号,此时,URL中就不能省略端口号这一项。

path(路径)

由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

parameters(参数)

这是用于指定特殊参数的可选项,有服务器端程序自行解释。

query(查询)

可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。

fragment(信息片断)

字符串,用于指定网络资源中的片段。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。

案例说明

协议、主机、端口、路径





.net url 正则表达式 url地址正则表达式_网络


协议(HTTP):规定数据传输的方式

域名(IP):在网络环境中找到主机-------用 :// 与协议分隔开

端口(port):(常省略)在网络主机上,标识一个进程(应用程序)------用 : 与域名分隔开

资源路径:标识网络资源(文件,图片,音视频,变量...)------用 :// 与端口分隔开

查询参数:传递给资源路径对应的数据------用 ? 与资源路径分隔开,查询内部参数用 & 分隔多个键值对


.net url 正则表达式 url地址正则表达式_网络_02


https://www.baidu.com/

协议:https

域名(IP):www.baidu.com

端口(port):443

资源路径:当没有资源路径时,可以默认是 / ,在各个网站通常有默认的路径如index.html

协议,域名,端口,虚拟目录,文件名,锚,参数

protocol:// hostname[:port] / path / [;parameters][?query]#fragment

协议protocol:一般为http或https

域名hostname:一个URL中,也可以使用IP地址作为域名使用

端口port:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。

端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

虚拟目录path:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分

虚拟目录也不是一个URL必须的部分

文件名;parameters:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。

文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

锚fragment:从“#”开始到最后,都是锚部分。

锚部分也不是一个URL必须的部分

参数query:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

注意:URL 只能使用 ASCII 字符集来通过因特网进行发送。也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号 。

匹配URL的正则表达式(js代码)

var match = /^((([Hh][Tt])|(Ff))[Tt][Pp][Ss]?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/;

匹配:

(1)、直接匹配域名地址:


var matchString = '';
console.log(match.test(matchString)); // ==> true


(2)、匹配链接含(*.htm,*.html,*.php,*.aspx...)后缀的地址:


var matchString = 'EditPosts.aspx';
console.log(match.test(matchString)); // ==> true


(3)、匹配含参数的地址:


var matchString = 'EditPosts.aspx?opt=1';
console.log(match.test(matchString)); // ==> true


使用说明:

(1)、地址必须以http/https/ftp/ftps开头(不区分大小写);

(2)、地址不能包含双字节符号或非链接特殊字符。