《 URL各部分组成》

1,173 阅读6分钟

URL

由来

URL:统一资源定位符(Uniform Resource Locator)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

根据以上图片对各个组成部分进行讲解:

1. HTTP 和 HTTPS 协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

工作原理:HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

但是HTTP协议传输的数据都是未加密的,也就是明文,因此使用HTTP协议传输隐私信息非常不安全。HTTP使用80端口通讯,而HTTPS占用443端口通讯。在计算机网络上,HTTPS经由超文本传输协议(HTTP)进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网的身份认证,保护交换数据的隐私与完整性。

HTTPS的工作原理:HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。

握手过程的具体描述如下:

  • 浏览器将自己支持的一套加密规则发送给网站。
  • 网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
  • 浏览器获得网站证书之后浏览器要做以下工作: 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
  • 网站接收浏览器发来的数据之后要做以下的操作: ;使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。 使用密码加密一段握手消息,发送给浏览器。
  • 浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。

这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:

  • 非对称加密算法:RSA,DSA/DSS
  • 对称加密算法:AES,RC4,3DES
  • HASH算法:MD5,SHA1,SHA256

HTTPS对应的通信时序图如下:

HTTPS协议和HTTP协议的区别:

  • https协议需要到ca申请证书,一般免费证书很少,需要交费。
  • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的 。
  • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。

  点击查看更多

2.IP(Internet Protocal)

作用:定位一台设备、封装数据报文,以跟其他设备进行交流

2.1 外网的ip获取

本地路由器连接上宽带的服务器即可获得。

2.2 内网的IP获取

路由器会创建一个内网,内网连接下的设备使用的都是内网IP(手机、电脑)一般路由器ip为:198.168.1.1,其他内网设备IP地址以此类推。

2.3路由器充当的角色

  • 路由器有内网IP和外网IP
  • 内网中的设备可以相互访问,但不能直接访问外网
  • 内网设备访问外网必须要经过路由器中转
  • 外网的设备可以相互访问,但是不能访问内网
  • 内网和外网是隔绝开的,中间的桥梁是路由器

2.4特殊的IP地址

  • 127.0.0.1 表示自己(可以通过host文件,用字符代替它本身)
  • localhost 通过host指定为自己
  • 0.0.0.0不表示任何设备
  • http-server -c-1 查看自己的IP访问地址

2.4 端口

IP定位设备,端口是定位一个设备的服务 常用端口:

  • http: 80
  • https: 443
  • ftp: 21

其中0~1023的端口为系统特属端口,其余可自行进行配置(65535端口)。

3.域名

IP的别称 例如:baidu.com对应的IP地址:ping baidu.com

  • 一个域名可以对应不同IP(均衡负载)
  • 一个IP可以对应多个域名(共享主机) 通过DNS(Domation Name System)将域名和IP地址对应起来。

具体过程:浏览器——运营商的DNS服务器获取IP地址——返回浏览器——端口发出请求——请求的内容,查看网页

补充::www.hejiajin.com 和hejiajin.com 不是同一域名

  • com是顶级域名
  • hejiajin.com 是二级域名(俗称一级域名)
  • www.hejiajim.com 是三级域名(俗称二级域名)
  • 父子关系

4.路径

请求不同的页面,对应的路径也不同。

5.查询参数

同一页面,不同内容

6.锚点

同一内容,不同位置

其中要注意的是:锚点本例中看起来有中文,实际上不支持中文,锚点无法在Network面板上可视化,而且不会传给服务器。 具体怎么样的情况呢?

复制当前的网址:

粘贴以后是这个样子:developer.mozilla.org/zh-CN/docs/… 说明URL不支持中文,而我们输入的文字是可以被编译为数字的形式。

从以下这张图可以看到:我们输入的锚点在URL上是不显示的,相当于我们已经把资源下载到了本地,经过锚点进行定位,当然锚点也不会上传到服务器中去。

补充

(1) 通过ping 知道域名对应的ip地址

ping 网址

(2) 通过 nslookup 知道域名对应的ip的个数