昨天过了一遍网络监听的类,整的脑袋瓜子嗡嗡的,哈哈
在我们平时的开发中,对网络连接安全方面所做的努力,应该占据很重要的位置。
在解释今天AFSecurityPolicy之前,我们先把基础的http/https知识简单的普及一下。
具体内容你们移步精读《图解HTTP》 - 知乎 去查看吧。
HTTP:
1.HTTp协议用于客户端和服务器之间的通信
2.通过请求和相应的交换达成通信
客户端请求:
服务端响应:
3.HTTP是不保存状态的协议
HTTP本身不会对请求和相应之间的通信状态进行保存。什么意思呢?就是说,当有新的请求到来的时候,HTTP就会产生新的响应,对之前的请求和响应的信息不做任何存储。这也是为了快速的处理事务,保持良好的可伸展性而特意设置成这样的。
4.请求URI定位资源
URI算是一个位置的索引,这样就能很方便的访问到互联网上的各种资源。
5.告知服务器意图的HTTP方法
①GET: 直接访问URI识别的资源,也就是说根据URI来获取资源。URI和URL的区别比较与理解_小猛同学的博客-CSDN博客_uri 这里讲了URI和URL的区别。
②POST: 用来传输实体的主体。
③PUT: 用来传输文件。
④HEAD: 用来获取报文首部,和GET方法差不多,只是响应部分不会返回主体内容。
⑤DELETE: 删除文件,和PUT恰恰相反。按照请求的URI来删除指定位置的资源。
⑥OPTIONS: 询问支持的方法,用来查询针对请求URI指定的资源支持的方法。
⑦TRACE: 追踪路径,返回服务器端之前的请求通信环信息。
⑧CONNECT: 要求用隧道协议连接代理,要求在与代理服务器通信时简历隧道,实现用隧道协议进行TCP通信。SSL(Secure Sockets Layer)和TLS(Transport Layer Security)就是把通信内容加密后进行隧道传输的。
6.管线化让服务器具备了相应多个请求的能力
7.Cookie让HTTP有迹可循
HTTP是一套很简单的通信协议,因此也非常的高效。但是由于通信数据都是明文发送的,很容易被拦截后造成破坏。在互联网越来越发达的时代,对通信数据的安全要求也越来越高。
HTTPS
HTTPS是一个通信安全的解决方案,可以说相对已经非常安全。为什么他会是一个很安全的协议呢?下面会做出解释
大家可以看这边文章,解释的很有意思。简单粗暴系列之HTTPS原理 - 简书
HTTP+加密+认证+完整性保护 = HTTPS
其实HTTPS是身披SSL外壳的HTTP,这句话怎么理解呢?
大家应该都知道HTTP是应用层协议,但是HTTPS并非是应用层的一种新协议,知识HTTP通信接口部分用SSL或TLS协议代替而已。
通常HTTP直接和TCP通信,当使用SSL时就不同了。要先和SSL通信,再由SSL和TCP通信。
这里再说一些关于加密的题外话:
现如今,通常加密和解密的算法都是公开的。举个例子:a*b = 200,假如a是你知道的密码,b是需要被加密的数据。那么这个*号就是一个很简单的加密算法。这个算法是如此简单。但是如果想要在不知道a和b其中一个的情况下进行破解也是很困难的。就算我们知道了200然后得到ab这个也很难。假设知道了密码a那么b就很容易算出b = 200/a。
实际中的加密算法比这个要负责的多。
介绍两种常用的加密方法:
1.共享密钥加密
2.公开密钥加密
共享密钥加密就是加密和解密通用一个密钥,也称为对称加密。优点是加密解密速度快,缺点是一旦密钥泄露,别人也能解密数据。
公开密钥加密恰恰能解决共享密钥加密的困