URL HTML 统一资源定位器,Uniform Resource Locators
URL 是一个网页地址。
URL可以由字母组成,如"runoob.com",或互联网协议(IP)地址: 192.68.20.50。大多数人进入网站使用网站域名来访问,因为 名字比数字更容易记住。
URL - 统一资源定位器
Web浏览器通过URL从Web服务器请求页面。
当您点击 HTML 页面中的某个链接时,对应的 <a> 标签指向万维网上的一个地址。
一个统一资源定位器(URL) 用于定位万维网上的文档。
一个网页地址实例: http://www.runoob.com/html/html-tutorial.html 语法规则:
scheme://host.domain:port/path/filename
说明:
- scheme - 定义因特网服务的类型。最常见的类型是 http
- host - 定义域主机(http 的默认主机是 www)
- domain - 定义因特网域名,比如 runoob.com
- :port - 定义主机上的端口号(http 的默认端口号是 80)
- path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。
- filename - 定义文档/资源的名称
常见的 URL Scheme
以下是一些URL scheme:
Scheme | 访问 | 用于... |
---|---|---|
http | 超文本传输协议 | 以 http:// 开头的普通网页。不加密。 |
https | 安全超文本传输协议 | 安全网页,加密所有信息交换。 |
ftp | 文件传输协议 | 用于将文件下载或上传至网站。 |
file | 您计算机上的文件。 |
URL 字符编码
URL 只能使用 ASCII 字符集.
来通过因特网进行发送。由于 URL 常常会包含 ASCII 集合之外的字符,URL 必须转换为有效的 ASCII 格式。
URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符。
URL 不能包含空格。URL 编码通常使用 + 来替换空格。
一个URL(统一资源路径地址)包含哪些部分呢?举个例子,比如 “http://www.baidu.com/index.html?name=mo&age=25#dowell”,在这个例子中我们可以分成六部分;
1、传输协议:http,https
2、域名: 例www.baidu.com为网站名字。 baidu.com为一级域名,www是服务器
3、端口: 不填写的话默认走的是80端口号
4、路径 http://www.baidu.com/路径1/路径1.2。/表示根目录
5、携带的参数:?name=mo
6、哈希值:#dowell
传输协议
传输协议是用来完成客户端和服务器端之间数据传输的;
传输协议可分为三类
1、http:超文本传输协议
客户端和服务器端传输的内容除了文本以外,还可以传输图片、音频和视频等文件流(二进制编码 | base64码),以及XML格式的数据等,是目前应用最广泛的。
2、https:http ssl,它比http更加安全,因为数据内容的传输通道是经过SSL加密的(需要在服务器端进行特殊的处理),涉及金融类的网站一般都是使用https。
3、ftp:资源文件传输协议
用于客户端把资源文件(不是代码)上传到服务器端,或者从服务器端下载一些资源文件(一般传输的内容会比http这类协议传输的内容多)。
域名
用于解析对应的IP地址,便于记忆;
顶级域名(一级域名):baidu.com;
二级域名:www.baidu.com sports.baidu.com ai.baidu.com
三级域名:my.sports.baidu.com;
端口号
在服务器发布项目的时候,我们可以通过端口号区分当前服务器上不同的项目。如:www.baidu.com:8080,一台服务器的端口号取值范围在 0 ~ 65535 之间,如果电脑上安装了很多程序,有一些端口号是被占用的;
http:默认端口号80
https:默认端口号443
ftp:默认端口号21
对于以上三个端口号其实很重要,如果被其他程序占用,则我们就不能使用了,所以服务器上一般是禁止安装其他程序的。
资源文件路径名称
在服务器中发布项目的时候,我们一般都会配置一些默认文档,即使用户不输入文件的名称,服务器也会默认找到配置好的文档(一般默认文档都是index.**)。
为了做SEO优化,会把一些动态页面的地址(xxx.php、xxx.aspx、xxx.asp、 xxx.jsp)进行URL重写(需要服务器处理)。
问号传参(可有可无)
把一些值通过 “key=value” 的方式放在一个URL的末尾,通过?传递;
作用:
1、在ajax请求中,我们可以通过问号传递参数的方式,在客户端把一些信息传递给服务器,服务器根据传递信息的不一样,返回不同的数据;
2、清除ajax get方法的缓存,?math_random=0.123456;
3、通过URL传递参数的方式,实现页面之间的通信;
HASH值(可有可无)
作用
1、可做页面中的锚点定位
2、在单页应用开发中作为前端路由使用(Vue Router、React Router);
---------------------
就以下面这个URL为例,介绍下普通URL的各部分组成
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
从上面的URL可以看出,一个完整的URL包括以下几部分:
1、协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符
2、域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用
3、端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80
4、虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”
5、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
6、锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分
7、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
---------------------
目录
一、#说明
二、?说明
三、&说明
一、#说明
1、#的涵义
#代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,http://www.example.com/index.html#print就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。
为网页位置指定标识符,有两个方法。一是使用锚点,比如<a name="print"></a>,二是使用id属性,比如<div , func, false);
对于不支持onhashchange的浏览器,可以用setInterval监控location.hash的变化。
说明:这是一个监听事件,监听#的变化,具体行为自定义完成。
二、?说明
1、连接作用
http://www.xxx.com/Show.asp?id=77&nameid=2905210001&page=1
通过?来带参数,连接域名和参数,经常会用到。
2、清除缓存
http://www.xxxxx.com/index.html
http://www.xxxxx.com/index.html?test123123
两个url打开的页面一样,但是后面这个有问号,说明不调用缓存的内容,而认为是一个新地址,重新读取。
因为在做http请求的时候,如果浏览器检测到你的地址完全没变,会从缓存里读取先前请求过的数据,不再发送请求。有些时候是页面资源的加载,有些时候是API的get请求,都有可能。加上这个,会让浏览器认为这是一个新的地址,从而保证重新获取资源。
三、&说明
不同参数的间隔符