python基础-网络编程part01
软件开发架构
C/S(Client / Server) 架构
概念:是一种软件系统体系结构。Client是客户端,Server是服务端。客户端需要安装专用的客户端软件。 比如:微信、QQ、王者荣耀等应用程序就是C/S结构。
优点:1)降低通信成本,节省网络资源;2)软件的使用相对稳定
缺点:1)维护升级相对困难;2)安装麻烦,用户体验差
B/S(Browser/Server)架构
概念:随着互联网的发展,web出现后兴起的一种网络结构模式。安装浏览器后,就可以通过web Server与服务器进行数据交互。比如:上百度搜索,浏览网页等就是使用“B/S”架构在进行数据交互。浏览器本质上也是一个客户端,B/S 是基于C/S 的基础上实现的
优点:1)维护和升级方式更便捷,只需维护升级服务器端即可;2)软件的使用方便
缺点:1)依赖于网络,网络不稳定,软件就不稳定(现在网络发达,可忽略)
网络编程
计算机之间通信的介质是互联网协议。
互联网协议按照功能不同可分为OSI七层或TCP/IP五层或TCP/IP四层
OSI(Open System Interconnection):开放式系统互联,把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
网络编程主要看TCP/IP五层
物理层:获取到目的计算机的电信号数据
数据链路层:识别数据并将数据传输给目的计算机
以太网协议
规定一套分组的方式:获取电信号真实数据。
电信号是一个数据包,包含head和data。其中,head由18个字节组成,6位是发送者,6位是接收者,剩下6位是数据类型;data是电信号具体的数据
工作方式:单播和广播
- 缺点:1)广播风暴;2)只能在局域网内实现通信,无法跨局域实现通信
mac地址
- 每一个计算机设备必须要有一个网卡,网卡有一串世界上独一无二的数字。由12位16进制的数字组成(前6位是产商号,后6位是流水号),称之为“mac地址”。
- 作用:标识全世界上一台独一无二的计算机
网络层:实现全世界计算机之间的通信
IP地址(IP协议):点分十进制的数字组成
- 范围:
- 最小范围:0.0.0.0
- 最大范围:255.255.255.255
- 版本:IPV4,IPV6
- 作用:识别全世界中某一台计算机的位置,局域网的位置
- 范围:
IP地址 + mac地址 可以标识全世界中某一个局域网内的某一台计算机。
传输层:主要是软件与软件之间进行通信
- TCP和UDP协议都是基于“端口”实现通信的。
- TCP协议:传输控制协议
- 优点:可靠连接
- 缺点:传输速度相对UDP慢
- UDP协议:用户数据报协议
- 优点:传输快,效率高
- 缺点:不可靠
- TCP协议:传输控制协议
- port端口,用于标识计算机中某个独一无二软件
标识的是全世界范围内某一个局域网内某一台计算机上的某一个软件
应用层:全世界遵循的一套网络规范
- HTTP协议:用于从(WWW:World Wide Web,简万维网 )服务器传输超文本到本地浏览器的传送协议
- HTTP协议是基于C/S架构进行通信的
- 在B/S架构中, Web服务是基于TCP,Web服务器需要监听在80/TCP端口
- FTP(File Transfer Protocol)协议: 文件传输协议 ,
- FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上
- 端口:使用TCP端口中的 20和21这两个端口,默认20用于传输数据,21用于传输控制信息。注意: FTP传输模式为主动模式,数据传输端口为20;如果是被动模式,最终使用那个端口由服务器端和客户端协商处理
python基础-网络编程part01的更多相关文章
- python 基础网络编程2
python 基础网络编程2 前一篇讲了socketserver.py中BaseServer类, 下面介绍下TCPServer和UDPServer class TCPServer(BaseServer ...
- python 基础网络编程1
python 基础网络编程1 Source code: Lib/socketserver.py lib的主目录下有一个sockserver.py文件, 里面是python基本的网络编程模型 共有一个b ...
- python基础网络编程--转
python之网络编程 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的 ...
- python基础-网络编程part02
TCP协议 TCP是传输控制协议,建立双向通道. 三次握手,建立连接 客户端向服务端发送建立连接的请求 服务端接收请求返回确认信息给客户端,并向客户端发送建立连接的请求 客户端接收请求返回确认信息给服 ...
- python基础-并发编程part01
并发编程 操作系统发展史 穿孔卡片 读取数据速度特别慢,CPU利用率极低 单用户使用 批处理 读取数据速度特别慢,CPU利用率极低 联机使用 脱机批处理(现代操作系统的设计原理) 读取数据速度提高 C ...
- Python基础-网络编程request使用
import requests#get请求 url = "http://127.0.0.1:8000/login" data={"username":" ...
- python之网络编程
本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的和具名的) 远程过程调用 ...
- Python高级网络编程系列之第一篇
在上一篇中我们简单的说了一下Python中网络编程的基础知识(相关API就不解释了),其中还有什么细节的知识点没有进行说明,如什么是TCP/IP协议有几种状态,什么是TCP三次握手,什么是TCP四次握 ...
- python基础-函数式编程
python基础-函数式编程 高阶函数:map , reduce ,filter,sorted 匿名函数: lambda 1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层 ...
随机推荐
- Spring AOP 知识整理
通过一个多月的 Spring AOP 的学习,掌握了 Spring AOP 的基本概念.AOP 是面向切面的编程(Aspect-Oriented Programming),是基于 OOP(面向对象的编 ...
- opacity层叠问题
使用了position属性值为 absolute.relative 的层,将会比普通层更高层次.使用了小于1的opacity属性的层,也比普通层更高层次并且和指定 position 的层同层,但是不支 ...
- Scrapy进阶知识点总结(二)——选择器Selectors
1. Selectors选择器 在抓取网页时,您需要执行的最常见任务是从HTML源提取数据.有几个库可用于实现此目的,例如: BeautifulSoup是Python程序员中非常流行的Web抓取库,它 ...
- hashMapp
原文链接:https://www.iteye.com/topic/539465 Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.网上关于hashmap的文章很 ...
- jdk 错误1316 指定账户已存在 与 jdk1.7安装和配置环境变量 与 jdk1.8与1.7版本的切换使用
问题: 安装JDK,提示错误信息:,指定的账号已存在. 原因: 安装JDK,相当于安装了一个软件,要使用系统的软件卸载功能卸载,不能只删除安装目录文件夹下的文件,如果只 ...
- 删除Linux的依赖库并进入救援模式恢复
删除Linux的依赖库并进入救援模式恢复 模拟一下依赖库文件被删,并进入救援模式恢复 系统:CentOS7 一.删除mv的依赖库文件 删除/lib64/libc.so.6 [root@centos7 ...
- Spring中常用的注解及作用
@Component(value) 配置类,当使用该注解时,SpringIOC会将这个类自动扫描成一个bean实例 不写的时候,默认是类名,且首字母小写 @ComponentScan 默认是代表进行扫 ...
- P4-verilog实现mips单周期CPU
最近对学习的掌控可能出现了问题,左支右绌,p2挂了,p2.p3.p4.p5每周在计组花的连续时间少了很多,学习到的东西也少了很多,流水线都还没真正开始写,和别人比落后了一大截,随笔自然就荒废了,我得尽 ...
- QQ是怎样创造出来的?——解密好友系统的设计
本篇介绍笔者接触的第一个后台系统,从自身见闻出发,因此涉及的内容相对比较基础,后台大牛请自觉略过. 什么是好友系统? 简单的说,好友系统是维护用户好友关系的系统.我们最熟悉的好友系统案例当属QQ,实际 ...
- ZeroC ICE的远程调用框架 Callback(一)-AMI异步方法调用框架
Ice框架提供了不少回调设施,其中一些是使用Ice远程调用进行ami模式或amd模式的支撑.本篇来看一下用于代理端的回调设施. Ice代码中有好几个Callback相关命名的基类,并且slice还会为 ...