今日总结
今天主要还是继续完成实习的任务,完成了两个模型的数据配置和测试,明天继续
腾讯云智一面:单例,工厂模式,https如何实现加密等,如何监测tcp链接过程
设计模式 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
单例模式 | 确保唯一实例、节省资源、全局访问、延迟加载 | 难以测试、违反单一职责原则、并发问题、不易扩展 | 需要全局唯一实例的场景,如日志、数据库连接池 |
工厂模式 | 解耦、易扩展、避免重复代码、简化对象创建、支持多态 | 增加类的数量、不灵活、无法动态选择、创建复杂 | 对象创建复杂或类型不固定,需要创建多种类型的对象 |
HTTPS(Hypertext Transfer Protocol Secure)是通过在HTTP协议上加入SSL/TLS协议来实现加密通信。它用于确保网络传输的安全性,防止数据泄露、篡改或伪造。
HTTPS加密过程:
-
SSL/TLS握手过程
- 客户端请求:客户端向服务器发起HTTPS请求,表示希望建立一个加密连接。
- 服务器响应:服务器返回其SSL证书(包含公钥),客户端会验证证书是否由可信的证书机构签发。
- 密钥交换:客户端生成一个对称密钥(称为“会话密钥”),并使用服务器的公钥加密后发送给服务器。
- 建立安全连接:服务器使用私钥解密出会话密钥,从而建立加密通道。
-
加密与解密
- 数据的传输采用对称加密(如AES),加密后的数据只有持有密钥的双方能够解密。
- 传输过程中的数据会被加密,以避免中间人攻击。
实现步骤:
- 创建SSL证书:可以使用工具如OpenSSL生成SSL证书,并配置在服务器上。
- 配置服务器支持HTTPS:例如,Apache和Nginx需要配置SSL证书路径,并监听443端口。
- 客户端配置:确保浏览器或客户端支持SSL/TLS,并能验证服务器的证书
-
TCP三次握手过程:
- SYN:客户端向服务器发送SYN包(请求建立连接)。
- SYN-ACK:服务器回应一个SYN-ACK包,确认收到请求。
- ACK:客户端再次回应一个ACK包,连接建立完成。
-
使用Wireshark或Tcpdump:
- Wireshark:一个强大的网络分析工具,可以捕获和分析TCP连接的详细信息,包括三次握手、数据包内容、流量模式等。
- Tcpdump:一个命令行工具,用于捕获和分析网络流量。你可以使用它来监控特定端口的TCP连接。
示例:
bashsudo tcpdump -i eth0 tcp port 80
-
检测TCP连接状态:
- 使用系统命令如
netstat
、ss
等查看当前的TCP连接状态:bash
或者netstat -an | grep 'TCP'
bashss -tuln
- 使用系统命令如
-
查看日志文件:
- 对于Web服务器(如Nginx、Apache),可以通过查看服务器日志来分析TCP连接的建立和关闭过程,日志中通常包含连接建立的时间戳和客户端的IP地址。
-
监控工具:
- 使用Zabbix、Prometheus、Nagios等监控工具来实时监测TCP连接,设置告警阈值来提醒连接数过多或异常连接。