Python_17 OSI模型和HTTP协议
一、查缺补漏
1. Wireshark 抓报文
2. 要学习的所有博客:
http://testingpai.com/member/haili/articles
二、OSI模型
1. 物理层
2. 数据链路层
3. 网络层
4. 传输层:TCP(靠谱的传输协议,传输有限)
UDP(广播协议会丢包,不是很靠谱,但是可以传输很大的内容,如视频)
5. 会话层
6. 表示层
7. 应用层:HTTP(S)、FTP、DNS(域名解析),应用层跑在传输层之上
TCP报文详解:http://testingpai.com/article/1621601730160

三、HTTP协议(F12 网络里看)
1. 互联网
客户端 服务端
浏览器、app、手机浏览器 前端服务(nginx) + 后端服务器docker、uwsgi(python) + 网关服务(鉴权) + 业务服务
点浏览器会发送一个请求(请求地址) <--> nginx(转发请求、负载均衡)会很快,前端直接返回 <--> 发送到对应的服务
2. HTTP协议
a. 超文本传输协议,基于TCP之上的传输协议
b. TCP与HTTP区别:TCP理解为高速公路,HTTP理解为跑在高速公路上的汽车
c. HTTP 数据传输格式
json格式:Content-Type:application/json;charset=utf-8
form表单:Content-Type:application/x-www-form-urlencoded
multipart/form/data 传输文件,上传文件使用
3. 请求类型
a. get:获取资源
b. post:添加资源
c. put: 修改资源,不管是否部分修改,都要传
d. patch: 修改资源,部分修改只需要传修改的部分
e. delete: 删除资源
f. head:查看响应头(查看接口请求规范)
g. options:查看该接口支持的请求方式
h. trace:查看请求数据,自测
i. connect:HTTP/1.1协议预留的,将服务器作为跳板,去访问其他服务,再把请求到的数据给你,【代购】
4. HTTP组成
a. 请求头 给服务端看的,和服务端交互
b. 请求体
c. 响应头
d. 响应体
e. 提取信息
i. 请求地址:Request URL: https://openapiv5.ketangpai.com/UserApi/login
ii. 请求类型:Request Method: POST
iii. 请求数据:{"email":"1605118090@qq.com","password":"Aa123456","remember":"0","code":"","mobile":"","type":"login","reqtimestamp":1627735085061}
iv. 数据格式:Content-Type: application/json;charset=UTF-8
v. 鉴权信息:鉴权令牌(token更安全) OCR可以造假,就是要钱 鉴权桩mock
python mock 学会这几招够你用 10 年:http://testingpai.com/article/1624205968407
怎么知道鉴权方式:
1) 直接去问开发
2) 自己穷举
vi. requests
5. 响应状态码
a. 1xxxx:服务端已经收到了你的请求,需要客户端继续操作 101:切换更高的协议
b. 2xxx: 成功状态码:
i. 200:请求成功
ii. 201:post根据你发的数据,创建好了对应的资源
iii. 202:后端已经收到了,但是还没处理完成
iv. 206:部分处理成功,一般是用于get请求,类似于下载电影的场景restful设计风格
c. 3xxx:重定向
i. 301:你请求的这个资源没有了,返回给你另外一个资源的地址,浏览器拿着这个地址继续请求
ii. 302:临时移除
d. 4xxx:客户端错误,找前端
i. 401:需要用户认证授权
ii. 404:客户端找的资源不存在,你客户端请求错误了,地址错误
iii. 408:服务器等待客户端请求超时 客户端超时是timeout
iv. 403:客户端发的请求服务端收到了,但是拒绝执行,有可能是权限问题、或者未实现的功能、黑名单
v. 402:保留资源,等待以后使用
e. 5xxx:服务端错误,找后端
i. 500:服务器错误,无法完成请求,服务器挂了
ii. 501:服务器不支持这个请求功能,无法完成请求
iii. 502:网关返回的,网关服务器通过另外的链接去其他服务器去拿数据,然后再给你,他在拿数据的过程中访问到的了一个无效响应,没拿到数据
iv. 503:服务器维护、或者超负荷运作,暂时无法处理客户端的请求
v. 504:网关没有及时从远端服务拿到请求数据
vi. 跨域是跨域名访问:浏览器同源策略导致的,要前端解决或者后端在setting里改
6. HTTPS请求过程【面试】 http://testingpai.com/article/1621922748535

7. http 与 https的区别
a. http明文传输、https密文传输,相对安全
b. http端口:80,https:443
c. https有CA证书,要钱的
d. http无状态的,https 是 ssl+http协议可以进行加密传输、身份认证
8. HTTPS+非对称加密(RSA) 一般用https的都会有两层加密
为什么要加密:
a. 黑客攻击,撞库、DDOS、sql注入
b. 身份伪造
c. 获取用户敏感信息
9. restful API设计风格
a. 传统的接口设计:获取几个需要几个接口
GET、POST /getUserInfo获取所有用户
GET /getUserInfoByid?id=1获取某一个用户
b. restful设计风格:相同的数据只需要一个接口
GET、POST /getUserInfo
/getUserInfo/12121?id=1
同种类型数据相当于后面加了where筛选select name,age,sex from table where id =1
四、TCP协议(参考链接中的内容,几次握手)
http://testingpai.com/article/1621601730160
http://testingpai.com/article/1621669379653
五、一些知识点
1. requests库使用
安装:pip install requests

2. Post and Get
http://testingpai.com/article/1615615517987
Python_17 OSI模型和HTTP协议的更多相关文章
- OSI模型和TCP/IP协议族(三)
TCP/IP协议族 TCP/IP协议族的开发要比OSI模型更早,因此TCP/IP协议族的分层结构无法准确地与OSI模型一一对应.原始的TCP/IP协议族定义为建立再硬件基础上的四个软件层,不通过目前T ...
- <TCP/IP原理> (二) OSI模型和TCP/IP协议族
1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...
- OSI模型和TCP/IP协议族(一)
1990年以前,再数据通信和组网文献中占主导地位的分层模型是开放系统互连(Open System Interconnnection,OSI)模型.当时所有人都认为OSI模型将是数据通信的最终标准,然而 ...
- OSI模型和TCP/IP协议族(二)
OSI模型中的各层 物理层 物理层(physical layer)协调通过物理媒体传送比特流时所需要的各种功能.物理层涉及到接口和传输媒体的机械和电器规约.它还定义了这些物理设备即接口为了实现传输必须 ...
- 第1章 1.10计算机网络概述--OSI参考模型和TCP_IP协议
传输层负责将大数据文件分段,变成数据段. 网络层负责为小分段加上IP地址,变成数据包. 数据链路层负责将数包加上MAC地址和校验值,变成数据帧. TCP/IP协议是一群协议.不只是2个协议.
- OSI 七层模型和 TCP/IP 四层模型 及 相关网络协议
简介 OSI 是理论上的模型,也就是一个统一的国际标准,现在的很多网络设备或者是网络协议都不同程度的精简了自己的所谓的模型,那么他们为了自己的通讯兼容都会参考这个OSI模型 TCP/IP 包括: TC ...
- 网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)
以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型 下四层是为数据传输服务的,物理层是真正的传输数 ...
- (转载)OSI七层参考模型和TCP/IP四层参考模型
Mallory 网络模型概念浅析 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型. #只是一种设计==模型# Open System Interconnect的缩写,意为开放式系统互 ...
- TCP/IP四层模型和OSI七层模型(模型分层的作用是什么)
TCP/IP四层模型和OSI七层模型的概念(模型分层的作用是什么) 一.总结 一句话总结: 减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错: 在各层分别定义标准接口,使具 ...
- 大白话聊OSI七层模型和TCP/IP四层模型
前言 今天和大家聊的是一个比较基础的问题,OSI七层模型和TCP/IP四层模型. 小伙伴们可能有疑问,这个东西还用写文章吗,太基础了吧,网上文章多的是,随便一搜索就能找到. 确实是这样,网上资料确实很 ...
随机推荐
- Deepin20安装pip3和Pydev插件
1. 安装jdk(见前面) 2. 安装eclipse(见前面) 3. Deepin20里已经有python3.7.3和python2.7.16,我们可以直接使用3.7.3,也是默认的python3.还 ...
- Eclipse导入第四版《算法》algs4库
最近在研究<算法>,遇到algs4库导入eclipse问题,查了很多网站,都不适用,最终解决,特此记录一下.第一次写博客,有什么不足之处望各位大神纠正. 1. 首先打开eclipse软件, ...
- 使用 HTML、CSS 和 JavaScript 制作的随机密码生成器
----上图 ------MVC 创建的视图 ,视图名称为A@{ Layout = null;} <!DOCTYPE html><style type="text/css& ...
- 更新Vue-cli4与Eslint插件自动保存
Vue-cli更新 此更新为Vue-cli3更新为4,可使用node来查看本机的安装版本,vue -V,此版本(cli4)需要node v8.9 或更高版本 (推荐 v10 以上),查看node版本可 ...
- 后端004-JWT工具类的编写
登录功能采用springsecurity安全框架和jwt令牌 首先需要添加依赖信息 在yml中添加JWT的配置文件 有了上述的配置之后,我们可以准备一个JWT的工具类,方便后面和JWT相关的内容去使用 ...
- <context:component-scan/>和<mvc:annotation-driven/>的区别
1 <context:annotation-config/> 如果你想使用@Autowired注解,那么就必须事先在 spring 容器中声明 AutowiredAnnotationBea ...
- git 更换远程连接
原来的git仓库不可用,更换远程仓库 查看远程仓库地址 git remote -v 删除远程仓库 git remote rm origin 添加远程仓库地址 git remote add origin ...
- Android笔记--文本显示
文本显示 设置文本内容 方式一: 在.xml文件中利用android:text属性设置文本 新创建一个.xml文件示范一下: 方式二: 在java代码中调用文本视图对象的setText方法设置文本 还 ...
- 11.4 显示窗口(harib08d)11.5 小实验(hearib08e) 11.6 高速计数器(harib08f)
11.4 显示窗口(harib08d) 书P206 11.5 小实验(hearib08e) 书P208 11.6 高速计数器(harib08f) 书P209
- docker mysql8.0 启动,挂数据卷,定时备份,恢复~
安装mysql 从mysql社区版的官方源去拉取镜像:mysql/mysql-server - Docker Image | Docker Hub docker run --name=mysql1 - ...