一、Cookie和session
Cookie:(客户端)
Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊的信息,这些信息以文本的方式存放在客户端,然后客户端在每次向服务器发送请求的时候都会带上这些特殊的信息。
Session: (服务端)
Session是另外一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览服务器的时候,服务器把客户端信息以某种形式记录在服务器上。
区别:
- 存放的位置不同 客服端 VS 服务端
- 存取的方式不同 ASCII码 VS 任何类型
- 安全性的不同 cookie保存在浏览器可以被用户修改 VS 服务端保存
- 有效期的不同 cookie浏览器保存很长 VS session id
- 对服务器造成的压力不同 服务端保存太多的session造成性能问题
二、HTTP 和 HTTPS
HTTP 1.1 和 HTTP 1.0 存在的问题:
- 每次都要重新建立连接,增加了大量的延迟时间
- 所有的传输的内容都是明文,客户端和服务端无法验证对方的身份
- header里携带的内容过大,在一定程度上增加了传输的成本
- 支持了keep-alive来弥补多次创建连接产生的延迟,但是keep-alive使用多了也会给服务器带来大量的性能压力
HTTPS
Https实际就是在TCP层与http层加入了SSL/TLS来为上层的安全保驾护航,主要用到对称加密,非对称加密,证书等技术进行客户端与服务器的数据加密传输,最终达到保证整个通信的安全性。
SSL/TLS协议
SSL是一种安全传输协议,TLS是SSL v3.0的升级版
三、post和get的区别
- 提交的数据
- 提交数据的大小是否有限制
- 取得变量的值,Request.QueryString VS Request.Form
- 安全问题
四、密码学原理:
密钥:
密钥是一种参数,它是在使用密码cipher算法过程中输入的参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多的密码算法是公开的。
对称加密:
加密数据用的密钥和解密数据用的密钥是一样的。常见的对称加密算法有DES、3DES、AES、RC5、RC6.
优点是计算速度快,缺点是密钥需要在通讯的两端共享,不安全
不对称加密:
又称为公开密钥加密。服务端生成一对密钥,一个私钥保存在服务端,紧自己知道,另一个是公钥,可以自由发布供任何人使用。常见的有RSA加密算法。
用公钥加密数据传送给服务端,服务端用私钥来解密。
数字签名:
如何保证数据是真实服务器发送的而不被掉包呢,同时如何保证传输的数据没有被人篡改?
数字签名就是用于验证传输的内容是不是真是的服务器发送的数据,发送的数据有没有被篡改过。它只干这两件事,是非对称加密的一种应用场景。不过它是反过来用私钥加密,通过与之配对的公钥来解密。
数字证书:
数字证书就是网联网通讯中标志各方身份信息的一串数字,也是一个文件。
如何保证公钥就是服务器发给你的呢?
数字证书简称CA,它由权威机构给某网站颁发的一种认可凭证,这个凭证是被大家(浏览器)所认可的。
数字签名与数字证书形象的理解:
http://blog.youkuaiyun.com/oscar999/article/details/9364101
微信公众号