网络安全之URL介绍
目录
网络安全之URL介绍
定义
资源:
组成部分
协议(scheme)
主机(host)
端口
路径(path)
查询参数(parameter)
锚点(anchor)
URL字符
绝对URL和相对URL
绝对URL
相对URL
URL的特殊简写
网络安全之URL介绍
定义
URL 是“统一资源定位符”(Uniform Resource Locator)的首字母缩写,中文译为“网址”,表示各种资源的互联网地址。下面就是一个典型的 URL
https://www.example.com/path/index.html
URL 是互联网的基础。互联网之所以“互联”,就是因为网页可以通过“链接”(link),包含其他 URL。用户只要点击,就可以从一个 URL 跳转到另一个 URL,前往不同的网站。
资源:
简单理解成各种可以通过互联网访问的文件,如网页、图像、音频、视频、JavaScript 脚本等等。只有知道了它们的 URL,才能在互联网上获取它们。
注意:
一个URL对应一个资源,但是同一个资源可能对应多个URL
组成部分
https://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#anchor
http+tls
加密流程
dns工作原理A NS MX ftp://20 21
1-65535
1-1023
25 smtp 邮件
53
67 68 dhcp dhcp 1 discover br 2 offer 3 request 4 ack 5 arp 3次 免费arpip地址冲突arp分类80
110 pop3
135 139
445 共享协议 ms17-010 永恒之蓝 win7
arp欺骗
389 ldap 域控制器 Active director ldap 注入
3306 mysql 关系型
6379 redis 非关系型 select 70% update insert delete 30%
协议(scheme)
定义 --- 是浏览器请求服务器资源的方法。例:https://
的部分,表示使用 HTTPS 协议。
互联网支持多种协议,不许指明网址使用哪一种协议,默认是HTTP协议。也就是说,如果省略协议,直接在了浏览器地址栏输入www.example.com
,那么浏览器默认会访问http://www.example.com
注意:
1.HTTPS 是 HTTP 的加密版本,出于安全考虑,越来越多的网站使用这个协议。
2.HTTP 和 HTTPS 的协议名称后面,紧跟着一个冒号和两个斜杠(
://
)。其他协议不一定如此,邮件地址协议mailto:
的协议名后面只有一个冒号,比如mailto:foo@example.com
。
主机(host)
定义 --- 是资源所在的网站名或服务器的名字,又称为域名。例:www.example.com
为主机
有些主机没有域名,只有 IP 地址,比如192.168.2.15
。这种情况常常出现在局域网。
端口
同一个域名下面可能同时包含多个网站,它们之间通过端口(port)区分。“端口”就是一个整数,可以简单理解成,访问者告诉服务器,想要访问哪一个网站。HTTP 协议的默认端口是80,如果省略了这个参数,服务器就会返回80端口的网站。
端口紧跟在域名后面,两者之间使用冒号分隔,比如www.example.com:80
路径(path)
定义 --- 是资源在网站的位置。例:/path/index.html
这个路径,指向网站的/path
子目录下面的网页文件index.html
注意:
互联网的早期,路径是真实存在的物理位置。现在由于服务器可以模拟这些位置,所以路径只是虚拟位置。
路径可能只包含目录,不包含文件名,比如/foo/
,甚至结尾的斜杠都可以省略。这时,服务器通常会默认跳转到该目录里面的index.html
文件(即等同于请求/foo/index.html
),但也可能有其他的处理(比如列出目录里面的所有文件),这取决于服务器的设置。一般来说,访问www.example.com
这个网址,很可能返回的是网页文件www.example.com/index.html
。
查询参数(parameter)
定义 --- 提供给服务器的额外信息。参数的位置是在路径后面,两者之间使用?
分隔,上例是?key1=value1&key2=value2
查询参数可以有一组或多组。每组参数都是键值对(key-value pair)的形式,同时具有键名(key)和键值(value),它们之间使用等号(=
)连接。例:key1=value
就是一个键值对,key1
是键名,value1
是键值。
多组参数之间使用 &
连接,比如key1=value1&key2=value2
。
锚点(anchor)
定义 --- 是网页内部的定位点,使用#
加上锚点名称,放在网址的最后,例:#anchor
。浏览器加载页面以后,会自动滚动到锚点所在的位置。锚点名称通过网页元素的id
属性命名
URL字符
URL 的各个组成部分,只能使用以下这些字符。
26个英语字母(包括大写和小写)
10个阿拉伯数字
连词号(
-
)句点(
.
)下划线(
_
)
此外,还有18个字符属于 URL 的保留字符,只能在给定的位置出现。比如,查询参数的开头是问号(?
),也就是说,问号只能出现查询参数的开头,出现在其他位置就是非法的,会导致网址解析错误。网址的其他部分如果要使用这些保留字符,必须使用它们的转义形式。
URL 字符转义的方法是,在这些字符的十六进制 ASCII 码前面加上百分号(%
)。下面是这18个字符及其转义形式。
! :%21
|
( :%28
|
/ :%2F
|
@ :%40
|
# :%23
|
) :%29
|
: :%3A
|
[ :%5B
|
$ :%24
|
* :%2A
|
; :%3B
|
] :%5D
|
& :%26
|
+ :%2B
|
= :%3D
|
|
' :%27
|
, :%2C
|
? :%3F
|
举例来说,有一个网页的 URL 是foo?bar.html
,即文件里面包含一个问号,那么需要写成foo%3Fbar.html
。
URL 的合法字符,其实也可以采用这种转义方法,但是不建议使用。比如,字母a
的十六进制 ASCII 码是61
,转义形式后就是%61
。因此,www.apple.com
又可以写成www.%61pple.com
,浏览器一样识别。
注意:
空格的转义形式是
%20
。对于那些包含空格的文件名,这个转义是必须的。
既不属于合法字符、也不属于保留字符的其他字符(比如汉字),理论上不需要手动转义,可以直接写在 URL 里面,比如www.example.com/中国.html
,浏览器会自动将它们转义,发给服务器。转义方法是使用这些字符的十六进制 UTF-8 编码,每两位算作一组,然后每组头部添加百分号(%
)。
举例来说,汉字中
的 UTF-8 十六进制编码是e4b8ad
,每两个字符一组,URL 转义后就为%e4%b8%ad
。也就是说,URL 里面凡是有汉字中
的地方,都要写成%e4%b8%ad
。因此,访问www.example.com/中国.html
这个网址,需要写成下面的样子。
www.example.com/%e4%b8%ad%e5%9b%bd.html中 --- %e4%b8%ad
国 --- %e5%9b%bd
绝对URL和相对URL
绝对URL
定义 --- 只靠 URL 本身就能确定资源的位置。这意味着,URL 必须带有资源的完整信息,包含协议、主机、路径等部分。前面的例子都是绝对 URL。
相对URL
定义 --- URL 不包含资源位置的全部信息,必须结合当前网页的位置,才能定位资源。例:,当前网页的 URL 是https://www.example.com/path/index.html
,该网页上面有一个资源,URL 指向a.html
,这个就是相对 URL。因为只知道a.html
,并不能定位资源。浏览器假定,a.html
与当前网址在同一个子目录下面,从而得到绝对 URL https://www.example.com/path/a.html
。
相对 URL 如果以斜杠(/
)开头,就表示网站的根目录。否则,必须以当前目录为起点,推算资源的位置。例:相对 URL /foo/bar.html
表示网站根目录的子目录foo
,foo/bar.html
表示在当前目录的foo
子目录
URL的特殊简写
1. .
:表示当前目录,比如./a.html
(当前目录下的a.html
文件)
2. ..
:表示上级目录,比如../a.html
(上级目录下的a.html
文件)
注意:
这两种简写可以多个连用,比如
../../
表示上两级目录。绝对 URL 也可以使用这两个简写,例:
www.example.com/./index.html
等同于www.example.com/index.html
,这时.
相当于根目录的当前目录,即根目录本身。
<base>
定义 --- 标签指定网页内部的所有相对 URL 的计算基准。整张网页只能有一个<base>
标签,而且只能放在<head>
里面。它是单独使用的标签,没有闭合标签,下面是一个例子
<head>
<base href="https://www.example.com/files/" target="_blank">
</head>
注意:
href
属性给出计算的基准网址,target
属性给出如何打开链接的说明
<base>
标签必须至少具有href
属性或target
属性之一
<base href="http://foo.com/app/">
<base target="_blank">
一旦设置了<base>
,就对整个网页都有效。如果要改变某个链接的行为,只能用绝对链接替代相对链接。尤其需要注意锚点,这时锚点也是针对<base>
计算的,而不是针对当前网页的 URL。
<html>
<head>
<base href="http://www.w3school.com.cn/i/" />
<base target="_blank" />
</head><body>
<img src="eg_smile.gif" /><br />
<p>请注意,我们已经为图像规定了一个相对地址。由于我们已经在 head 部分规定了一个基准 URL,浏览器将在如下地址寻找图片:</p>
<p>"http://www.w3school.com.cn/i/eg_smile.gif"</p><br /><br />
<p><a href="http://www.w3school.com.cn">W3School</a></p>
<p>请注意,链接会在新窗口中打开,即使链接中没有 target="_blank" 属性。这是因为 base 元素的 target 属性已经被设置为 "_blank" 了。</p></body>
</html>
网络安全之URL介绍相关推荐
- 信息安全保障人员(CISAW)工控网络安全方向认证介绍
信息安全保障人员(CISAW)工控网络安全方向认证a信息安全保障人员(CISAW)工控网络安全方向认证介绍~ 中国网络安全审查技术与认证中心依据<信息安全人员认证准则>,发布了信息安全保障 ...
- 一些学习网络安全的平台介绍
一些学习网络安全的平台介绍 文章目录 一些学习网络安全的平台介绍 一.攻防世界 二.hackingloops 三.securitytube 四.hacking-tutorial 结语 一.攻防世界 h ...
- GBase8s jdbc 驱动url介绍
GBase8s jdbc 驱动url介绍 GBase8s jdbc驱动是一款实现jdbc3.0规范以及jdbc4.0绝大部分规范的标准通用接口,故在使用方式上同其它数据库驱动一样,并不存在学习成本.下 ...
- 创建Django项目 目录结构 Url介绍 路由配置
创建Django项目 文章目录 创建Django项目 创建项目的指令 Django项目的目录结构 `settings.py` 文件介绍 URL 介绍 URL定义 Django如何处理一个URL对应的请 ...
- 网络安全--入侵阶段介绍
目录 1.预攻击阶段 1.1信息收集 1.2漏洞扫描 2.攻击阶段 2.1Web应用入侵 2.2绕过IDS.防火墙及蜜罐 2.3Web服务器入侵 2.4拒绝服务 2.5缓冲区溢出 3.后攻击阶段 3. ...
- 网络安全--SQL注入介绍
课程目标:讲解SQL注入的原理.特点.危害,SQL注入的攻击手法和MySQL注入的常用函数,讲解相关工具,如何去防御SQL注入. 任务目标:了解SQL注入相关概念,掌握SQL注入攻击手法,了解SQL注 ...
- 【海康威视】RTSP 和 HTTP URL 介绍
本文档主要介绍海康威视设备预览.回放.流媒体取流的 RTSP URL 和 IE 直接预览.回放的 HTTP URL. RTSP 为取流协议,取到码流后需要解码显示, 可以通过 VLC 播放器进行测试, ...
- 百度推广 计算机访问url,介绍一下百度推广显示URL与访问URL
介绍一下百度推广显示URL与访问URL (2012-01-08 21:09:23) 标签: 淄博百度运营商 显示url 访问url 杂谈 工作过程中淄博百度运营商遇到很多客户,问百度推广管理后台里显示 ...
- html中input元素的email,HTML5 input元素类型:email及url介绍
我们已经讨论了一些html5/' target='_blank'>HTML5改进的地方,比如placeholder,prefetching以及webStorage,下面我要介绍的是两个新的inp ...
最新文章
- 计算机二叉树讲解ppt,数据结构二叉树.ppt
- Python3 Scrapy爬取猫眼TOP100代码示例
- ArcGIS操作小技巧(七)之制作漂亮的萤火虫图
- python显示图片_python Image 模块处理图片
- Node.js 4493图片批量下载爬虫1.00
- ubuntu upgrade problem
- 随心所遇,随遇而安。
- 《认知与设计——理解UI设计准则》笔记(1) 我们感知自己的期望
- 下载想看的英文kindle 电子书
- 美化微信小程序的界面--微信小程序开发中使用vant的完整步骤
- 华为自带计算机怎么添加桌面,如何在华为手机的桌面上设置天气和时间
- TOP 云平台虚拟机内外网互通
- spring的继承与依赖
- Linux 网络包接收过程的监控与调优
- 程序员该造轮子吗,造轮子能升职加薪吗?
- 基于ZYNQ-7000的AI加速器设计之GP接口的实现
- 麦哥个人简介及代码获取方式
- 交换机原理和IP地址
- liunx系统安装docker
- 【mysql 定时任务】每天凌晨1点执行存储过程