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请求,都有可能。加上这个,会让浏览器认为这是一个新的地址,从而保证重新获取资源。

三、&说明

不同参数的间隔符