{小猿圈}
第1章 Python基础 Day1 基本语法
1.1 编程语言介绍与分类
1.2 Python介绍、发展趋势
1.3 Python环境安装
1.4 开发你的第一个Python程序
1.5 选择最好用的PyCharm IDE
1.6 变量
1.7 注释
1.8 基本数据类型
1.9 读取用户指令
1.10 格式化打印
1.11 运算符
1.12 流程控制之if...else
1.13 流程控制之while循环
1.14 本章练习题&作业
第2章 Python基础 Day2 数据类型和文件操作
2.1 上章补充-变量的创建过程
2.2 上章补充-身份运算和None
2.3 细讲数据类型-列表
2.4 细讲数据类型-元组
2.5 细讲数据类型-字符串
2.6 细讲数据类型-字典
2.7 细讲数据类型-集合
2.8 秒懂二进制
2.9 字符编码之文字是如何显示的
2.10 秒懂十六进制
2.11 hash是个什么东西
2.12 用Python操作文件
2.13 本章练习题&作业
第3章 Python 基础 Day3 函数编程
3.1 上章补充-Bytes类型
3.2 上章补充-字符编码的转换
3.3 上章补充-深浅copy
3.4 函数来了
3.5 函数返回值与作用域
3.6 嵌套&匿名&高阶函数
3.7 函数的递归
3.8 内置函数
3.9 名称空间
3.10 闭包是个什么东西?
3.11 函数进阶-装饰器
3.12 列表生成式
3.13 生成器
3.14 迭代器
3.15 练习题&作业
第4章 Python基础 Day4 常用模块
4.1 模块介绍与导入
4.2 第3方开源模块的安装使用
4.3 系统调用os模块
4.4 系统调用sys模块
4.5 time & datetime模块
4.6 random随机模块
4.7 序列化pickle&json模块
4.8 hashlib 加密
4.9 文件copy模块shutil
4.10 正则表达式re模块
4.11 软件开发目录设计规范
4.12 包&跨模块代码调用
4.13 练习题&作业
第5章 Python核心编程 Day5 面向对象编程
5.1 面向对象来了
5.2 面向对象语法
5.3 对象间的交互、组合
5.4 三大特性之-继承
5.5 三大特性之-封装
5.6 三大特性之-多态
5.7 作业&练习题
第6章 Python核心编程 Day6 面向对象编程进阶
6.1 类方法、静态方法
6.2 属性方法property
6.3 神奇的反射
6.4 类的双下线方法
6.5 用type动态创建一个类
6.6 isinstance\issubclass
6.7 异常处理
6.8 作业&练习题
第7章 核心编程 Day7 Socket网络编程
7.1 C/S架构介绍
7.2 TCP/IP 各层详解
7.3 Socket介绍
7.4 Socket代码实例
7.5 粘包现象与解决方案
7.6 通过socket发送文件
7.7 本章总结
第8章 核心编程 Day8 并发编程
8.1 操作系统介绍
8.2 并发编程多进程之进程理论
8.3 并发编程多进程之开启进程的两种方式
8.4 并发编程多进程之join方法
8.5 并发编程多进程之守护进程
8.6 并发编程多进程之互斥锁
8.7 并发编程多进程之队列
8.8 并发编程多进程之生产者消费者模型
8.9 并发编程多线程之线程理论
8.10 并发编程多线程之开启线程的两种方式
8.11 并发编程多线程之多线程与多进程的区别
8.12 并发编程多线程之Thread对象的其他属性或方法
8.13 并发编程多线程之守护线程
8.14 并发编程多线程之GIL全局解释器锁
8.15 并发编程多线程之死锁现象与递归锁
8.16 并发编程多线程之信号量,Event,定时器
8.17 并发编程多线程之线程queue
8.18 并发编程多线程之进程池与线程池
8.19 并发编程之协程-协程介绍
8.20 并发编程之协程-greenlet模块
8.21 并发编程之协程-gevent模块
8.22 并发编程IO模型-IO模型介绍
8.23 并发编程IO模型-阻塞IO
8.24 并发编程IO模型-非阻塞IO
8.25 并发编程IO模型-多路复用IO
8.26 并发编程IO模型-异步IO
8.27 并发编程IO模型-IO模型比较分析
8.28 并发编程IO模型-selectors模块
8.29 本章小结
第9章 Mysql数据库开发
9.1 初识数据库-数据库管理软件的由来
9.2 初识数据库-数据库概述
9.3 初识数据库-mysql安装与基本管理
9.4 初识数据库-初识sql语句
9.5 库操作-库的增删改查
9.6 表操作-存储引擎介绍
9.7 表操作-表的增删改查
9.8 表操作-数据类型
9.9 表操作-数值类型
9.10 表操作-日期类型
9.11 表操作-字符串类型
9.12 表操作-枚举类型与集合类型
9.13 表操作-完整性约束
第7章 爬虫开发-requests模块学习
7.1 requests模块初始
7.2 requests案例实战
第21章 爬虫开发-爬虫基础简介
21.1 爬虫初识&价值探讨
21.2 爬虫合法性探究
21.3 爬虫初识深入
21.4 http&https协议
第9章 爬虫开发-数据解析
9.1 数据解析概述
9.2 数据解析---正则表达式
9.3 数据解析---bs4解析
9.4 数据解析---xpath解析
第10章 爬虫开发-验证码识别
10.1 验证码识别
10.2 验证码实战
第11章 requests模块高级操作
11.1 模拟登陆
11.2 requests模块的cookie处理
11.3 requests模块的代理IP操作
第13章 高性能异步爬虫
13.1 高性能异步爬虫---线程and线程池
13.2 高性能异步爬虫---异步协程
13.3 高性能异步爬虫---多任务异步协程
13.4 高性能异步爬虫---aiohttp
第25章 scrapy框架使用
25.1 scrapy简介
25.2 scrapy的数据持久化存储
25.3 scrapy基于Spider类的全站数据爬取
25.4 请求传参
25.5 scrapy图片数据爬取
25.6 scrapy中间件
25.7 scrapy中selenium的应用
第12章 动态渲染页面爬取
12.1 图片懒加载
12.2 selenium模块基本使用
12.3 基于selenium的爬虫案例
12.4 Pyppeteer模块使用
Python入门到精通
Java放弃之路
前端开发
Linux从小白到大神
C/S架构介绍
阅读量: 832
# 本节重点: 了解C/S架构 计算机基础知识 了解什么是网络 本节时长需控制在35-45分钟内 ## 什么是C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),本章的重点就是教大家写一个C/S架构的软件,实现服务端软件与客户端软件基于网络通信。 ## 计算机基础知识 作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由操作系统操控硬件。 比如客户端软件想要基于网络发送一条消息给服务端软件,流程是: 1、客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送/拷贝给操作系统内存 2、客户端操作系统收到数据后,按照客户端软件指定的规则(即协议)、调用网卡发送数据 3、网络传输数据 4、服务端软件调用系统接口,想要将数据从操作系统内存拷贝到自己的内存中 5、服务端操作系统收到4的指令后,使用与客户端相同的规则(即协议)从网卡接收到数据,然后拷贝给服务端软件  ## 什么是网络 硬件之上安装好操作系统,然后装上软件你就可以正常使用了,但此时你也只能自己使用,像下图这样,每个人都拥有一台自己的机器,然而彼此孤立 如何能大家一起玩耍,那就是联网了,即internet 然而internet为何物?举一个简单的例子: 如果把一个人与这个人的有线电话比喻为一台计算机,那么其实两台计算机之间通信与两个人打电话之间通信的原理是一样的。 两个人之间想要打电话首先一点必须是接电话线,这就好比是计算机之间的通信首先要有物理链接介质,比如网线,交换机,路由器等网络设备。 通信的线路建好之后,只是物理层面有了可以承载数据的介质,要想通信,还需要我们按照某种规则组织我们的数据,这样对方在接收到数据后就可以按照相同的规则去解析出数据,这里说的规则指的就是:中国有很多地区,不同的地区有不同的方言,为了全中国人都可以听懂,大家统一讲普通话 普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢? 问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一的通信标准:英语 英语成为世界上所有人通信的统一标准,计算机之间的通信也应该有一个像英语一样的通信标准,这个标准称之为互联网协议, 可以很明确地说:互联网协议就是计算机界的英语,网络就是物理链接介质+互联网协议。 我们需要做的是,让全世界的计算机都学会互联网协议,这样任意一台计算机在发消息时都严格按照协议规定的格式去组织数据,接收方就可以按照相同的协议解析出结果了,这就实现了全世界的计算机都能无障碍通信。 按照功能不同,人们将互联网协议分为osi七层或tcp/ip五层或tcp/ip四层(我们只需要掌握tcp/ip五层协议即可),这种分层就好比是学习英语的几个阶段,每个阶段应该掌握专门的技能或者说完成特定的任务,比如:1、学音标 2、学单词 3、学语法 4、写作文。。。  每层运行常见物理设备(了解)  ## 什么是TCP/IP? Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础 ## TCP/IP的起源 20世纪50年代末,正处于冷战时期。当时美国军方为了自己的计算机网络在受到袭击时,即使部分网络被摧毁,其余部分仍能保持通信联系,便由美国国防部的高级研究计划局(ARPA)建设了一个军用网,叫做“阿帕网”(ARPAnet)。阿帕网于1969年正式启用,当时仅连接了4台计算机,供科学家们进行计算机联网实验用,这就是因特网的前身。 到70年代,ARPAnet已经有了好几十个计算机网络,但是每个网络只能在网络内部的计算机之间互联通信,不同计算机网络之间仍然不能互通。为此, ARPA又设立了新的研究项目,支持学术界和工业界进行有关的研究,研究的主要内容就是想用一种新的方法将不同的计算机局域网互联,形成“互联网”。研究人员称之为“internetwork”,简称“Internet”,这个名词就一直沿用到现在。 终于到1974年,TCP/IP诞生啦,TCP/IP有一个非常重要的特点,就是开放性,即TCP/IP的规范和Internet的技术都是公开的。目的就是使任何厂家生产的计算机都能相互通信,使Internet成为一个开放的系统,这正是后来Internet得到飞速发展的重要原因。 ## OSI七层模型 美国国防部在开发tcp/ip的同时,还有一些其它大厂商也开发出了自己的网络体系,实际上世界上第一个网络体系结构由IBM公司提出(也是74年,比TCP/IP略早,SNA),以后其他公司也相继提出自己的网络体系结构如:Digital公司的DNA,美国国防部的TCP/IP等,多种网络体系结构并存,其结果是若采用IBM的结构,只能选用IBM的产品,只能与同种结构的网络互联。 这就像中国人说中文,美国人说英语,日本人说日本话一样,同一国家的人沟通没问题,但不同国家之间的人没法通信。为了解决网络通信中这样不互通的问题,国际标准化组织ISO于1977年成立了一个委员会,在现有网络的基础上,提出了不基于具体机型、操作系统或公司的网络体系结构,称为开放系统互联模型。 OSI/RM模型(Open System Interconnection / Reference Model)的设计目的是成为一个所有计算机厂商都能实现的开放网络模型,来克服使用众多私有网络模型所带来的困难和低效性。
TCP/IP 各层详解