系列笔记目录
第一章 HTML的概述
第二章 URL简介
前言
此为读阮一峰先生的《HTML语言教程》所作的个人学习笔记,朋友们如有兴趣可直接跳转链接进行学习。
同时推荐一个学习网站进击的皇虫的书栈网,网站界面友好简洁,IT技术领域的书籍和文档可谓保罗万象,学习这一站足矣。
一、概述
URL是“统一资源定位符”(Uniform Resource Locator),中文翻译为“网址”,只有知道了它们的URL,才可能在互联网上获取它们。
URL是互联网的基础。互联网之所以“互联”,就是因为网页可以通过“链接”(link),包含其他URL。用户只要点击,就可以从一个URL跳转到另一个URL,前往不同的网站。
二、网址的组成部分
URL由多个部分组成,下面是一个比较复杂的URL示例
https://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#anchor
协议
协议(scheme)是浏览器请求服务器资源的方法,上例https://
,表示使用HTTPS协议
HTTP和HTTPS协议后面,紧跟着一个冒号和两个斜杠(://
)。其他协议不一定,例如邮件地址协议mailto:foo@example.com
。
主机
主机(host)是资源所在的网站名或服务器的名字,又称为域名。上例的主机是www.example.com
。
有些主机没有域名,只有IP地址,比如192.168.2.15。这种情况常常出现在局域网。
端口
同一个域名下面可能同时包含多个网站,它们之间通过端口(port)区分。默认端口是80,如果省略了这个参数,服务器就会返回80端口的网站。
路径
路径(path)是资源在网站的位置。比如/path/index.html
这个路径,指向网站的/path
子目录下面的网页文件index.html
。互联网的早期,路径是真实存在的物理地址。现在由于服务器可以模拟这些位置,所以路径只是虚拟位置。
路径可能只包含目录,不包含文件名,比如/foo/
,甚至结尾的斜杠都可以省略。这是,服务器通常会默认跳转到该目录里面的index.html
文件(即等同于请求/foo/index.html
),但也可能有其他的处理(比如列出目录里面的所有文件),这取决于服务器的设置。
查询参数
查询参数(parameter)是提供给服务器的额外信息。参数的位置是在路径后面,两者之间使用?
分隔,上例是key1=value1&key2=value2
。
查询参数可以有一组或多组。每组参数都是键值对的形式,多个参数之间使用&
连接。
锚点
锚点(anchor)是网页内部的定位点,使用#
加上锚点名称,放在网址的后面,比如anchor
。浏览器加载页面后,会自动滚动到锚点所在的位置。
锚点名称通过网页元素的id
属性命名,详见《元素的属性》一章
三、URL字符
URL字符的各个组成部分,只能使用以下这些字符。
- 26个英文字母(包括大小写)
- 10个阿拉伯数字
- 连词号
-
- 句点
.
- 下划线
_
此外,还有18个字符属于URL的保留字符,只能在给定的位置出现。比如,查询参数的开头是问号?
,也就是说,问号只能出现查询参数的开头,出现在其他位置就是非法的,会导致网址解析错误。网址的其他部分如果要使用这些保留祖父,必须使用它们的转义形式。
URL字符转义的方法是,在这些字符的十六进制ASCII码前面加上百分号%
。下面是这18个字符及其转义形式。
!
:%21- !:%21
#
:%23$
:%24&
:%26'
:%27(
:%28)
:%29*
:%2A+
:%2B,
:%2C/
:%2F:
:%3A;
:%3B=
:%3D?
:%3F@
:%40[
:%5B]
:%5D
四、绝对URL和相对URL
这个问题的概念同Linux操作系统的绝对路径和相对路径的概念。