数据封装

TCP/IP协议学习导览

烈酒焚心 提交于 2020-03-17 23:27:32
某厂面试归来,发现自己落伍了!>>> 前言 从字面意义上讲,有人可能会认为TCP/IP是指TCP和IP两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用IP进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP协议。 该文章主要为《TCP-IP详解卷1:协议》归纳笔记 1. 网络的分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层的协议系统。 链路层 有时也称作 数据链路层或网络接口层 ,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。 网络层 有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括 IP 协议(网际协议), ICMP协议 (Internet互联网控制报文协议),以及 IGMP协议 (Internet组管理协议)。 运输层 主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和UDP(用户数据报协议)。 TCP为两台主机提供高可靠性的数据通信

1227 十大接口使用,Response封装深度查询

荒凉一梦 提交于 2020-03-11 09:12:40
目录 十大接口 1.序列化了解配置 2.Response的二次封装 3.深度查询 3.1 子序列化: 3.2 配置depth 3.3 插拔式@property 4. 十大接口实现 4.1 单查群查(get) 4.2 单删群删(delete) 4.3 单增群增(post) 4.4 整体单改群改(put) 4.5 局部单改群改(patch) 新中国前夕 十大接口 1.序列化了解配置 fields = __all__ 将所对应类中的所有名成空间 exclude = [' ',] , 排除某一字段,其他的需要 depth = 1 查询的深度设置(遇到外键就找深度查询) 外键字段默认显示的是外键值(int类型,不会自己进行深度查询) 2.Response的二次封装 自定义Response的封装,将数据返回自定义使用 from .response import APIResponse class BookAPIView(APIView): def get(self,request,*args,**kwargs): book_query = models.Book.objects.all() # 序列化模块 book_ser = serializers.BookModelSerializer(book_query,many=True) # 原先的返回数据 # return Response( #

commons-dbutils工具介绍及实战

放肆的年华 提交于 2020-03-10 05:54:48
1.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。 API介绍: •org.apache.commons.dbutils.QueryRunner •org.apache.commons.dbutils.ResultSetHandler •工具类 org.apache.commons.dbutils.DbUtils 链接如下: https://commons.apache.org/proper/commons-dbutils/ 2.DbUtils类介绍 DbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的( 关闭资源、加载驱动 )。主要方法如下: •public static void close(…) throws java.sql.SQLException: DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,它们就关闭Connection、Statement和ResultSet。 •public static void closeQuietly(…): 这一类方法不仅能在Connection

WireShark数据包分析数据封装

自闭症网瘾萝莉.ら 提交于 2020-03-09 21:00:54
WireShark数据包分析 数据封装 数据封装( Data Encapsulation )是指将协议数据单元( PDU )封装在一组协议头和尾中的过程。在 OSI 七层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在协议数据单元( PDU )中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成本文选自 WireShark数据包分析实战详解清华大学出版社 。 为了帮助用户更清楚的理解数据封装过程,下面通过一个实例来说明这个过程。假设某个公司局域网使用以太网,当员工从局域网的 FTP 服务器下载一个文件时,该文件从 FTP 服务器到员工主机的传输过程如图 1.17 所示 本文选自 WireShark数据包分析实战详解清华大学出版社 。 图 1.17 TCP/IP 中数据的传输 在图 1.17 中, FTP 服务器作为数据的发送端,员工主机作为数据的接收端。下面分别介绍数据发送和接收处理过程。 1. 数据发送处理过程 数据封装协议数据单元封装WireShark数据包分析 ( 1 )应用层将数据交给传输层,传输层添加上 TCP 的控制信息(称为 TCP 头部),这个数据单元称为段( Segment ),加入控制信息的过程称为封装。然后,将段交给网络层。 ( 2 )网络层接收到段,再添加上 IP 头部,这个数据单元称为包( Packet )。然后

node.js 封装模块

人盡茶涼 提交于 2020-03-08 18:31:45
1. form.js // 模块1 服务模块,负责启动服务 // 模块2 拓展模块,负责拓展req和res对象,为req和res增加以下更方便好用的API // 模块3 路由模块,负责路由判断 // 模块4 业务模块,负责处理具体路由的业务的代码 // 模块5 数据操作模块,负责进行数据库操作 // 模块6 配置模块,负责报错各种项目中用到的配置信息 var http = require('http'); var context = require('./11_context.js'); var router = require('./11_router.js'); var config = require('./11_config.js'); console.log('form'); http.createServer(function(req, res) { // 外部代码只在开始时执行依次,内部代码每请求一次就执行一次 console.log('server'); context(req, res); // 调用context.js的返回值,并将req和res传递过去 router(req, res); }).listen(config.port, function() { console.log('http://localhost:' + config.port); });

设计模式的六大原则

喜欢而已 提交于 2020-03-07 13:06:35
一、单一职责原则(Single Responsibility Principle) 二.开闭原则(Open-Closed Principle, OCP) 三、里氏代换原则(Liskov Substitution Principle, LSP) 四、依赖倒置原则(Dependence Inversion Principle,DIP) 五、接口隔离原则(Interface Segregation Principle, ISP) 六、迪米特法则(Law of Demeter, LoD) 总结 一、单一职责原则(Single Responsibility Principle) 定义:一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有 可能会导致原本运行正常的职责P2功能发生故障。 单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的类中

RedisTemplate用法详解

吃可爱长大的小学妹 提交于 2020-03-06 17:37:43
前言 Redis可以存储键与5种不同的数据结构类型之间的映射,这5种数据结构类型为 String(字符串)、List(列表)、Set(集合)、Hash(散列)和Zset(有序集合)。 Spring-data-redis Spring-data-redis是spring大家族的一部分,提供了在spring应用中通过简单的配置访问redis服务,对redis底层开发包(Jedis,JRedis,and RJC)进行了高度封装,RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。 官网:http://projects.spring.io/spring-data-redis/ 项目地址:https://github.com/spring-projects/spring-data-redis Spring-data-redis功能介绍 jedis客户端在编程实施方面存在如下不足: 1、connection管理缺乏自动化,connection-pool的设计缺少必要的容器支持。 2、数据操作需要关注“序列化”/“反序列化”,因为jedis的客户端API接受的数据类型为string和byte,对结构化数据(json,xml,pojo等)操作需要额外的支持。 3、事务操作纯粹为硬编码。 4、pub/sub功能

JavaSE!面向对象!!!!

情到浓时终转凉″ 提交于 2020-03-06 03:21:27
1. 面向对象的编程思想: 面向对象的编程思想就是把一个事物看成一个整体,把这个事物中的属性(特征)和功能(方法)表述出来。 面向对象的编程思想更贴近于人的正常思维方式。 面向对象的编程思想来源于生活服务于生活。 面向对象的编程思想中,一定会用到面向过程(以流程为基本单位,注重最后结果。)的编程思想。有缺陷:功之间有很强的关联。不利于程序的维护和扩展。 面向对象的特征: 抽象!! 封装!! 继承!! 多态!! 。 2. 对象 在现实生活中,具体存在的一个事物。 在java编程中,万事万物皆对象。 特点: 在java编程中,无论两个事物多么相近或是相似,他们永远都是两个不同的对象。 各种法律、规则制度也是一种对象。 对象的内存图解 1 1.在堆内存中开辟一个空间并分配地址 2.按照类的描述,在该空间中定义成员变量 并且有默认初始化值 3.加载成员函数进入方法区(只加载一次) 4.对象创建完毕 将空间地址赋值给相应的变量 5.变量(p1/p2)调用成员变量 先通过该变量所存储的地址去堆空间中找 然后在该空间中找相应的成员变量 6.变量(p1/p2)调用成员函数 直接去方法区中找该成员函数 将该函数加载进栈内存开始运行 为了方便区分哪个对象调用的该成员函数 由this这个关键字段 来区分 this主要存的是当前对象的地址 注意:当成员函数在操作变量的时候 先在当前函数的空间里找 局部变量

Linux_OSI简介和TCP/IP协议(封装与解封装)

六眼飞鱼酱① 提交于 2020-03-04 03:14:29
2020.3.3#千锋逆战班,云计算201# 在千锋“逆战”学习第3天, 我在千锋逆战班学习“网络管理” 今天学到了网络管理。 知道了在Linux系统中如何进行OSL,TCP/IP协议族和进制转换。 拼搏到无能为力,坚持到感动自己。 OSI简介 Open System Interconnection 开放系统互联模型 OSI:7层次结构/功能 应用层: 应用程序/原始数据/ QQ/YY/爱奇艺/吃鸡 表示层:格式/压缩/加密 快速传递 /安全传递 会话层:会话/全双工/半双工 身份信息/电话/对讲机 传输层:分段/重组/端口号 传输效率 网络层: IP地址/寻址/路由 总目标,全球地址 数据连接层:MAC地址/局域网/ 分段目标,局部地址、邮递员 物理层: 传输介质/比特流 电流/光/无线信号/4G/5G OSI模型和TCP/IP模型的区别 OSI:推出的时间早 只有理论,没有实践 TCP/IP:TCP/IP:传输控制协议/互联网协议 美国军方由实践,总结出的理论 当今通信标准 封装和解封装的区别 1.(应用层)用户信息转换为数据,以便在网络上传输 2.(传输层)数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接 3.(网络层)数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输 4.(数据链路层)数据包或数据报转换为帧

如何用php写app接口[原创]

杀马特。学长 韩版系。学妹 提交于 2020-03-03 18:30:23
人生就如一列永不停止的列车,no one knows when or where to stop.总有那些美好,值得永远怀念。也总有那些希望,值得你无怨无悔的付出,追逐。去年年底带着女儿一起坐火车会湖北老家,她在火车上,三岁的样子,活泼,调皮,可爱的样子,永远停在那儿,不会有一样的了吧。cherish this memory forever. 现在app这么火,作为一个phper,应该知道如何写app的接口,下面做一个讲解。 Index: 第1章 APP接口简介 - 第2章 封装通信接口方法 2-1 JSON方式封装通信接口 (14:39) 2-2 PHP生成XML数据 (12:02) 2-3 XML方式封装通信接口 (17:50) 2-4 综合方式封装通信数据方法 (11:15) - 第3章 核心技术 3-1 静态缓存 (17:16) 3-2 Memcache和Redis缓存技术 (24:07) 3-3 定时任务 (16:46) - 第4章 APP接口实例 4-1 单例模式连接数据库 (18:29) 4-2 首页APP接口开发之方案一(上) (15:49) 4-3 首页APP接口开发之方案一(下) (11:03) 4-4 读取缓存方式开发首页接口 (19:21) 4-5 定时读取缓存方式开发首页接口 (16:32) 最近学习 4-6 版本升级分析及数据表设计 (08:15) 4