Socket
Socket只是对TCP/IP协议栈操作的抽象,即Socket是TCP/IP协议的API
Web Server都是基于Socket编程,又称之为网络编程,网络协议通过一个叫做Socket的对象抽象出来,Socket可以建立网络连接,读数据,写数据。
HTTPS:
由于http请求是明文的,链路上的任意一个路由,都可以任意修改数据,没有任何安全可言。因此HTTPS就诞生了。
1、https需要到CA申请证书,一般免费证书很少需要收费
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
4、http的连接很简单,是无状态的,https协议是由ssl(安全套接层)+http协议构建的可进行加密传输、身份认证的网络协议,比http安全。
5、https比http页面加载慢一些,不如HTTP高效,但更安全。
对称加密:数据使用A密匙加密,变成加密后的数据,加密后的数据使用A密匙解密,变成数据。
非对称加密:数据使用A密匙加密,变成加密后的数据,然后加密后的数据经过B密匙解密,变成明文。然后相反的,数据经过B加密以后,也能通过A解密。
对称加密+非对称加密:对称加密算法的速度比RSA算法(非对称加密算法)快上百倍。提出:(1)生成一个对称加密算法的密匙,用RSA的方式安全地发给对方(2)随后就不用RSA了,只用这个密匙,利用对称加密算法来通信。
公匙可能会被中间人劫持,解决:数字证书
CA的证书如何验证?实际上CA本身也有证书来表明自己的身份,由CA的上一级来验证,形成了一根分级的链条,在链条的根部就是操作系统/浏览器预置的顶层CA证书,自动地相信它们。
Cookie和Session:
因为HTTP是无状态的协议,因此需要引入一种机制跟踪对话。因此有了Cookie和Session。Cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。
Cookie机制:
1、cookie是以文本文件的方式存放在客户端,每次客户端向服务器发送请求都会带上这些信息。
2、cookie的主要内容包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。域限定网站,路径限定这个网站下的路径。
3、若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。
4、会话cookie一般不会存储在硬盘而是保存在内存里。若设置了过期时间,浏览器就会把cookie保存在硬盘上。
5、cookie信息都是放在请求头和响应头里。
6、cookie具有不可跨域名性,即一个网站只能取得它放在你的电脑中的信息,它无法从其它的cookie文件中取得信息,也无法得到你的电脑上的其他任何东西。
7、客户端存放的cookie中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道他们真正的含义。
Session机制:
Session思想:分布式和去中心化Session共享
1、Session是由tomcat创建的,cookie也是
2、session机制是一种服务器端的机制,当用户请求来自应用程序的web页时,如果该用户还没有会话,则web服务器将自动创建一个session对象。当会话过期或被抛弃后,服务器将终止该会话。
3、Session一般存在内存里,可以设置有效期,只要有用户访问,服务器就会更新session的有效期,超期会删除。
4、当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个Session Id。
5、如果已包含则说明以已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个)。
6、如果客户端请求不包含Session id,则为此客户端创建一个session并且生成一个与此session相关联的session id。
7、session id的值应该是一个既不会重复又不容易被找到规律被仿造的字符串,这个session id将被在本次响应中通过cookie机制返回给客户端使用。
8、URL重写:当客户端不支持cookie时,可以采用url重写来解决session id客户端保存的问题。即把服务器返回页面的a标签的url后面加上session id = xxxxx。
Cookie与session的区别:
1、cookie保存到客户端,session保存在服务端
2、cookie不是很安全,因为存放在本地
3、单个cookie的数据不能超过4k,很多浏览器都限制一个站点最多保存50个cookie。