expire :http1.0头字段,设置了时间,浏览器在时间内读取缓存,不再发起请求。
cache-control:http1.1头字段,区分缓存机制的支持,有public、private、no-cache等。
http:101切换请求协议;200请求成功;301永久重定向,会缓存;302临时重定向,不会缓存;400客户端请求语法错误;403服务器禁止访问,权限不够;404服务器无法根据客户端的请求找到资源;500服务端错误;
https=http+ssl(secure sockets layer 安全套接层协议,网络通信提供安全及数据完整性的一种安全协议)/tls(transport layer security,安全传输层协议,ssl3.0后续版本),
1、用户浏览器输入https请求服务443端口;2、服务器必须要一套证书(一对非对称加密的公钥和私钥);3、通过tls三次握手,服务器将自己的数字证书(含有公钥)发送给客户端;4、客户端收到服务器端的数字证书对其检查,如果不通过则警告,通过则生成一个密钥(对称密钥),用证书的公钥对其加密。5、客户端会发起第二个https请求,将客户端的密钥发给服务器;6、服务器接收到这个密文,用自己的私钥进行解密,得到客户端的密钥;7、用客户端的密钥http通信;
数字证书:公钥、个人信息、其他信息通过hash算法得到消息摘要,ca的私钥加密成数字证书。
tcp(三次握手):1、syn=1,seq=x,客户端syn_send;2、syn=1,ack=1,seq=y,acknum=x+1,服务器syn_rcvd;3、ack=1,anknum=y+1,发送完,客户端进入established状态,服务器接收到进入established状态;
tcp(四次挥手):1、fin=1,seq=u,客户端进入fin_wait_1;2、ack=1,ack=u+1,seq=v,服务器端进入close_wait,客户端收到以后进入fin_wait_2;3、服务器端发送fin=1,seq=w,ack=u+1,服务器进入last_ack;4、客户端收到服务器关闭请求,发送一个确认包,进入time_wait状态,2msl(1、保证四次挥手中主动关闭最后的ack能到达对方;2、保证对方没有收到ack进行重传的fin报文能够到达;)之后closed,服务器收到这个确认,进入closed;
虚拟内存映射到实际内存,cpu有个管理单元(memory management unit)mmu管理;
一台机器可以建立多少tcp,client、server:
tcp客户端:每一个ip建立的tcp连接理论受限于ip_local_port_range参数,受限于65535,可以通过配置多ip,增加建立tcp能力;
tcp服务器:每个tcp连接大约需要3.3k内存,实际取决于内存大小;
eureka是分布式核心组件之一,springcloud推荐实现:
server:提供注册和发现,多个会同步数据,做到状态一致;
provider:服务提供方,注册到eureka,让消费方发现;
consumer:从eureka中获取注册列表,消费;
server可以集群,多个通过replicate(异步方式)同步,保证数据最终一致性。提供服务注册、接收服务心跳、服务剔除、服务下线等。消费会缓存本地。
zookeeper:cp(一致性+分区容错性),不能保证可用,leader选举期间不可用;
eureka:ap(可用性+分区容错性),优选保证可用,不影响正常节点工作;