url的组成

2023-02-03 09:18:49
URL (Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址 一个标准的url应该具备有以下几个部分 **scheme: // login:password @ address :port /path/to/resource ?query_string #fragment** **scheme:** 这个字段表示传输协议,常见的传输协议有 1. file :访问本机的文件 2. ftp:访问ftp服务器的协议 3. https :通过SSL协议的HTTP访问WEB服务器资源 4. mailto:访问资源属于电子邮箱地址,通过SMTP协议访问,打开当前计算机系统中默认的电子邮件客户端软件 5. ed2k,flashget,thunde等,通过支持专用下载协议的p2p软件访问资源 **//** URL层级URL标记符号 根据RFC 1738规定的语法,在授权信息之前,每个层级结构的URL中都会包括固定的”//“符号 非层级结构的URL:mailto **login:password** 访问资源的身份验证 在URL中,身份验证属于可选项,在向服务器申请资源时,在某些情况下,需要指定一个用户名和密码。如果没有身份验证字段,浏览器默认以匿名的方式访问网站。它与域名之间用@链接(如果有login:password才使用@符号) **address** 域名, 完整的层级URL,必须有一个域名,ipv4或者IPV6地址作为服务器的位置。域名不区分大小写,ipv6需要括在方括号中 **:port** 端口号 (默认为80)基本上浏览器支持的协议都会关联的默认服务接口,不过默认接口可以在URL中进行修改 **/path/to/resource**(路径)URL的这部分被称为层级文件路径,这一结构源自于UNIX目录语义保留了对/../ ,/ ./的支持 **?query_string** 查询字符串是一个非必须的字段,只要负责将一系列非层级格式的任意参数传给服务器。可同时传递多个参数,参数之间用`&`符号连接,每个参数名与值用=隔开。例子: www.baidu.com?uid=777&qqq=666 **#fragment** 片段ID是应用有别于普通字符串 就是锚点,当你打开网站的某个连接的时候,自动跳到网站的某一个锚点(就是光标默认在哪里),该属性应用于客户端,并不会上传到服务器端 注意,遇到特殊字符需要编码,常见编码字符如下: | 空格 | ! | # | $ | % | + | @ | : | = | ? | , | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -- | | %20 | %21 | %23 | %24 | %25 | %2B | %40 | %3A | %3D | %3F | %2C|