Python之网络编程

目录

一.C/S结构和B/S结构

1.什么是C/S模型?

2.什么是B/S模型

3.二者的比较

(1)C/S架构软件的优势与劣势

(2)B/S架构的优势与劣势

(3)C/S与B/S的区别

二.操作系统基础与网络通信基础

1.操作系统基础

2.网络通信基础

OSI七层协议

物理层:

数据链路层:

网络层:

传输层:

应用层:

 TCP协议和UDP协议


一.C/S结构和B/S结构

1.什么是C/S模型?

  • C是英文单词“Client”的首字母,即客户端的意思
  • C/S就是“Client/Server”的缩写,即“客户端/服务器”模式
    • 例如:APP

2.什么是B/S模型

  • B是英文单词“Browser”的首字母,即浏览器的意思;

  • S是英文单词“Server”的首字母,即服务器的意思

  • B/S就是“Browser/Server”的缩写

    • 即“浏览器/服务器”模式

    • 例如:淘宝网页 

3.二者的比较

(1)C/S架构软件的优势与劣势

优势:

  • 应用服务器运行数据负荷较轻
  • 数据的存储管理功能较为透明

劣势:

  • 维护成本高昂且投资大

(2)B/S架构的优势与劣势

优势:

  • 维护和升级方式简单
  • 成本降低,选择更多

劣势:

  • 应用服务器运行数据负荷较重

(3)C/S与B/S的区别

  1. 硬件环境不同:
    C/S一般建立在专用的网络上
    B/S建立在广域网之上
  2. 对安全要求不同
    C/S一般面向相对固定的用户群,对信息安全的控制能力很强
    B/S建立在广域网之上,对安全的控制能力较弱,面向的是不可知的用户群
  3. 对程序架构不同
    C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑
    B/S对安全及访问速度的多重的考虑,建立在需要更加优化的基础之上
  4. 软件重用不同
    C/S程序可以不可避免的整体性考虑
    B/S对的多重结构,要求构建相对独立的功能
  5. 系统维护不同
    C/S由于整体性,必须整体考察,处理出现的问题以及系统升级难,可能是在做一个全新的系统
    B/S构件组成方面构建个别的更换,实现系统的无缝升级
  6. 处理问题不同
    C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需求,与操作系统相关,应该都是相同的系统。
    B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小
  7. 用户接口不同
    C/S多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。
    B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,降低开发成本。
  8. 信息流不同
    C/S程序一般是典型的中央集权的机械式处理,交互性相对低
    B/S信息流向可变化,B-B、B-C、B-G等信息流向的变化,更象交易中心

二.操作系统基础与网络通信基础

1.操作系统基础

  • 操作系统:
    • (Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序
    • 是直接运行在“裸机”上的最基本的系统软件
    • 任何其他软件都必须在操作系统的支持下才能运行。

注:计算机(硬件) --> OS  --> 应用软件

2.网络通信基础

互联网的本质就是一系列的网络协议

  • 一台硬件设备有了操作系统,然后装上软件之后我们就可以正常使用了
    • 然鹅我们也只能自己使用,那么怎么才能和大家一起玩耍呢?

Internet是什么?

其实两台计算机之间通信与两个人打电话之间的通信的原理是一样的(中国有很多地区,不同的方言,为了全中国人都可以听懂,大家同一讲普通话)

普通话属于中国人与中国人之间的通信标准,那么与外国人之间的通信标准是英语

但是你不能要去一个人(计算机)掌握全世界的语言(标准),于是有了世界同一的通信标准:英语

结论:

英语成为世界上所有人通信的统一标准,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的Internet实际上就是一系列的统一标准,这些标准称之为“互联网协议”

互联网协议的功能:

定义计算机如何接入Internet,以及接入Internet的计算机通信的标准

OSI七层协议

互联网协议按照功能不同分为“OSI七层”或“TCP/IP五层”或“TCP/IP四层”

七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

五层划分为:应用层、传输层、网络层、数据链路层、物理层

四层划分为:应用层、传输层、网络层、网络接口层

物理层:
  • 专门用来发送高低电频的,其实就是01二进制

物理层单纯的发送电频是没有意义的,因为发送的电频不知道是什么意思,所以,需要对发送的电频进行分组,但是呢,物理层做不了分组

数据链路层:
  • 专门用来对物理层发送过来的数据进行分组的,该层使用的以太网协议
  • 一组信号构成一个数据报,叫做帧,或者叫数据帧,数据帧的组成:报头head和数据data两部分
    • head包含(固定18个字节):
      • 发送者/源地址:6个字节
      • 接收者/目标地址:6个字节
      • 数据类型:6个字节

mac地址:

以太网协议规定,每一个接入互联网的设备都必须要有一个网卡,发送端和接收端的地址便是指网卡的地址,即Mac地址

网络层:
  • 该层使用的是IP协议,规定每一个接入互联网的计算机都必须要有一个IP地址,网络层中的数据我们称为是数据包,IP地址的组成格式
  • 分类:IPv4、IPv6, 目前大多数用的都是IPv4,由于IPv4地址即将耗尽,所以,其他场景开始使用IPv6了
传输层:
  • 该层使用的是TCP协议或者是UDP协议,暂且忽略. 它也称之为是端口协议,一个端口可以代码一个应用程序
  • 端口的范围:0-65535

1. 0-1024之间的端口号都是系统自己使用的
         2. 1024-8000之间的端口号一般是常用软件的端口号
             MySQL:3306
             Django:8000
             flask:5000
             ...
        3. 我们自己开发的软件,端口一般选择8000之后的到65535

应用层:
  • 该层就是离用户最近的一层,比如,微信、QQ、腾讯会议、pycharm等都是一个一个的应用,他们都在应用层

 1. 客户端:你想使用什么协议都行,自己开发的软件,协议你自己选择
    2. 浏览器:你就不能够随便使用了,就要安装浏览器规定的协议使用,而浏览器使用的协议恰好事HTTP协议
    3. Https协议
        HTTP协议 HTTPS协议
        https://www.baidu.com/
        协议://域名/v1/v2?参数
        https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3

HTTP协议
                1. 是明文传输数据
                2. 不安全
               HTTPS协议
                   1. 是密文传输数据
                   2. 安全
               https = http + ssl证书(它是需要申请的,国际机构,公钥、私钥等)
               nginx服务器:配置文件,需要在配置文件中配置一些东西,就能够把你的http改成https

 TCP协议和UDP协议

TCP协议:

客户端要想给服务端发送消息,肯定需要建立链接
tcp协议它也称为是可靠协议(三次握手), 流式协议(发送数据可以分多次发送 100M数据  10M 10次)
三次握手--------------------> 建立链接
四次挥手---------------------> 断开链接
一定是客户端先给服务端发送消息,然后,服务端给客户端做返回信息

# 有个个例,服务端可以先给客户端发送消息,需要使用websocket协议,一般用在即时通信软件
客服系统、微信、QQ等都是

客户端可以是多个的,服务端(饭店)只有一个

  
UDP协议:
    它不可靠、是因为它不建立链接,没有三次握手、四次挥手
     速度快
例如:远程控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值