1、OSI 7层网络模型
OSI七层网络模型是一个用于描述计算机网络通信的参考模型,将网络通信划分为七个不同的层次,每个层次负责不同的功能。这些层次从下至上依次是:
1. 物理层(Physical Layer):负责传输比特流。常见的协议有:Ethernet、RS-232等。
2. 数据链路层(Data Link Layer):负责将比特流划分为帧,并进行错误检测和纠正。常见的协议有:Ethernet、PPP(Point-to-Point Protocol)等。
3. 网络层(Network Layer):负责将帧从源主机发送到目标主机,实现路由和转发功能。常见的协议有:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等。
4. 传输层(Transport Layer):负责提供端到端的可靠数据传输和错误恢复。常见的协议有:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等。
5. 会话层(Session Layer):负责建立、管理和终止会话连接。常见的协议有:SSH(Secure Shell)、RPC(Remote Procedure Call)等。
6. 表示层(Presentation Layer):负责数据的格式转换、加密解密和数据压缩等。常见的协议有:TLS(Transport Layer Security)、ASCII等。
7. 应用层(Application Layer):负责为用户提供特定的应用服务。常见的协议有:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)等。
这些层次之间通过协议进行通信和交互,每个层次的功能相对独立,通过规定的接口进行数据传输。这种分层的设计使得不同的层次可以独立地发展和演化,提高了网络的可靠性、可扩展性和互操作性。
2、redis数据库支持的存储数据类型
Redis是一个高性能的、基于内存的键值存储系统,常用于缓存、消息队列和实时应用等场景。
Redis数据集支持以下存储数据类型:
1. 字符串(Strings):存储二进制安全的键值对数据。
2. 列表(Lists):存储按插入顺序排列的字符串元素。
3. 集合(Sets):存储不重复的字符串元素集合。
4. 散列(Hashes):存储字段和值的映射关系。
5. 有序集合(Sorted Sets):存储带有分数的字符串元素,按分数排序。
6. Bitmaps:位数组,可以进行逻辑运算(AND、OR、NOT、XOR)。
7. HyperLogLogs:用于基数估计的数据结构。
这些数据类型不仅可以单独使用,还可以结合使用,提供了灵活性和多样性。在使用Redis时,你可以根据实际需求选择适当的数据类型存储数据。
3、RESTful API设计中的幂等性操作
在RESTful API设计中,幂等性操作是指对同一资源的多次操作所产生的影响是相同的。具体来说,当多次对同一资源执行幂等性操作时,最终结果应该与执行一次操作的结果相同。幂等性操作是一种设计原则,用于确保系统的可靠性和一致性。
在RESTful API中,常见的幂等性操作有GET、PUT和DELETE。这些操作对应了对资源的获取、更新和删除。
在RESTful API设计中,保持幂等性操作的设计可以有效避免因为重复操作而引发的数据不一致或者其他问题。
4、python中的序列化和反序列化
在Python中,序列化和反序列化是一种将数据结构或对象转换为字节流或字符串的过程,以便在不同的计算机或不同编程语言之间传输和存储数据。
对于简单的对象序列化和反序列化,一般常用的是 pickle 和 json 库。