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
关键词: