一些常见的协议的解释http和HTTPS,session和cookie

### HTTPHTTPS
HTTP协议传输的数据都是未加密的,HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。
**HTTPSHTTP的区别**
- HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
- HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。
- HTTPHTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
- HTTP的连接很简单,是无状态的;HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
### CookieSession
- **Cookie/Cookies: **是指某些网站为了*辨别用户身份**进行session跟踪**储存在用户本地*终端上的数据(通常经过加密)。
- **Session**服务端为客户端访问所建立和维持的会话,通常会生成一个唯一的id,会话有一定的有效期。
由于HTTP是无状态的,即服务器不知道用户上一次做了什么,默认也无法识别用户身份。
比较流行的做法是:
- 用户访问时服务端建立会话(Session
- 将会话idSession ID)随响应返回,并保存在客户端的Cookies
- 后续的访问中,服务器通过辨识,客户端请求时携带的Cookies内容来识别用户
![用户首次访问服务器向客户端设置Cookie](https://upload-images.jianshu.io/upload_images/7575721-ecc0f69142c1f0c2.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![后续访问时携带Cookie](https://upload-images.jianshu.io/upload_images/7575721-80561012c8f03f2c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**CookieSession的区别**
- cookie是存在客户端(浏览器)的进程内存中和客户端所在的机器硬盘上
- cookie只能能够存储少量文本,大概4K大小
- cookie是不能在不同浏览器之间共享
- Session存在服务器端,存在网站进程的内存中
- Session在初次设置session的时候,会在session池中实例化一个session对象,以sessionid 的值作为key,同时会将keycookie的形式保存到客户端的内存中
- Session的作用域只存在当前浏览器的会话中,当浏览器关闭以后就会将sessionid丢失,但是服务器的Session对象要20分钟以后才会回收
### 授权与加密
常见的接口安全策略:
1. Session/Cookie机制: 即需要登录,登录后可访问各个接口,最常用的一种策略,适用于内部接口。
2. 固定appid模式: 用户注册时会生成一个唯一的appid,用户调用接口时需要携带appid,适用于公开接口,安全性较差。
3. 动态token模式: token即身份令牌,用户访问接口需要使用个人appid临时申请一个tokentoken有一定有效期,适用于公开接口,安全性较appid模式好。
4. 开放协议: Basic Auth/ Oauth1.0 / Oauth2.0: 适用于开放接口。
5. 数字签名: 将所有请求参数及参数值进行排列拼接,加上用户私钥,再进行Md5或其他加密生成一个请求的签名(sign,请求是需要携带签名,服务器收到请求后,

会对请求重新计算签名并核实与请求所携带签名是否一致。安全性较高,可以有效防止请求被篡改。适用于内部接口及微服务接口。
**常见的加密算法**
在接口数据传输过程中常对一些敏感数据(如密码)进行Base64编码或MD5加密,以增加安全性。
加密算法分为对称式加密算法和非对称式加密算法,对称式加解密使用同一个秘钥,非对称式使用不同的秘钥。
- 对称式加密
- DES: 数据加密标准,速度较快,适用于加密大量数据的场合
- AES: 高级加密标准,速度快,安全级别高
- 非对称式加密
- RSA: 是一个支持变长密钥的公共密钥算法, 分公钥和私钥,SSH协议使用该算法
- MD5: 最常用的一种加密方法,是一种摘要算法。

### 缓存
HTTP 缓存机制作是 web 性能优化的重要手段,当用户第一次请求服务器资源时,服务器将资源缓存到客户端本地,在一定时间内(缓存有效期内)当用户再次向服务器请求同样的资源时,

可以直接从缓存中读取,而不用从服务器下载。

猜你喜欢

转载自www.cnblogs.com/python-django-spid/p/10436540.html