通过分布在不同计算机内的多个进程的交互完成特定的网络应用
应用层协议定义了进程间通信和交互的规则
单位:消息
协议
FTD
HTTP
应用最广泛,基于TCP,使网络更加高效,减少网络传输
连接:简单无状态
默认端口:80
HTTPS
目前最安全的解决方案,是HTTP加强版(HTTP+SSL),增加了安全机制(保障数据安全,访问者验证)
连接:经过证书加密,安全性更高
默认端口:443
特点:
1. 安全性高,但证书体系不是特别安全
2. 要钱,比如natapp
3. 握手协议费事
4. 被DDOS攻击后,造成损失更多
cookie和session
cookie
Cookie通过在客户端记录信息确定用户身份
特点:容量小、可永久保存、不安全、可以通过设置路径和域名来控制访问范围,但存在跨域访问限制。
session
Session通过在服务器端记录信息确定用户身份
特点:容量大、保存30分钟(默认)、安全、不受跨域访问的限制。
使用方法
当服务器tomcat第一次接收到客户端的请求时,会开辟一块独立的session空间,建立一个session对象,同时会生成一个session id,通过响应头的方式保存到客户端浏览器的cookie当中。以后客户端的每次请求,都会在请求头部带上这个session id,session携带着服务端的一些会话的相关信息,比如用户的登录状态。
一定要cookie+session吗
不一定,但如果没有cookie,session无法进行身份验证
分布式使用cookie+session
1、session黏贴
在负载均衡中,通过一个机制保证同一个客户端的所有请求都会转发到同一个tomcat实例当中。问题:当这个tomcat实例出现问题之后,请求就会被转发到其他实例,这时候用户的session信息就丢了。
2、session复制
当一个tomcat实例上保存了session信息后,主动将session 复制到集群中的其他实例。问题: 复制是需要时间的,在复制过程中,容易产生session信息丢失。
3、session共享
就是将服务端的session信息保存到一个第三方中,比如Redis。