ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

学习python自动化——网络基础

2022-06-24 18:31:57  阅读:357  来源: 互联网

标签:请求 get python 网络 自动化 服务器 2.4 服务端 客户端


一、OSI模型
  七层架构
    7、应用层:HTTP
    6、表示层
    5、会话层
    4、传输层:TCP
    3、网络层
    2、数据链路层
    1、物理层

 

 

 

二、http协议
  2.1、HTTP概念
    1、超文本传输协议(Hyper Text Transfer Protocol)
    2、用于从万维网服务器传输超文本到本地浏览器的传送协议
    3、HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80
    4、http是基于请求与响应模式的、无状态的、应用层的协议
  2.2、HTTP请求类
    1、get:获取资源
    2、post:提交资源
    3、put:修改资源
    4、delete:删除资源
    5、head:查看响应头
    6、options:查看支持的请求方式
    7、trace:返回服务器收到的请求数据,用于开发自测
    8、connect:服务器作为跳板,让服务器代理用户去其他网站访问资源,然后再把拿到的资源返回给用户(重定向)
  2.3、互联网架构类型
    1、BS架构(浏览器)
    2、CS架构(应用程序/app)
    3、流程:客户端 <--------HTTP请求--------> 服务器(前端服务器nginx) <--------> 后端服务器(网关,课程服务,鉴权服务))
  2.4、HTTP组成
    2.4.1、请求报文

      2.4.1.1、请求行
        1)请求方法
        2)请求地址
        3)HTTP版本
        4)回车符(看不见)
        5)换行符(看不见)
      2.4.1.2、请求头
        1、key:value
          1.1、请求头关注字段
            1)Accept:*/*:用来告知客户端可以处理的内容类型
            2)token:null:鉴权,后端返回的token信息
            3)Set-cookies:前端缓存信息,session_id:用来鉴权
            4)Content-Type:application/json;charset=utf-8:前端告诉后端请求参数编码的格式
          1.2、常见Content-Type类型
            1)表单:application/x-www-form-urlencoded
            2)json格式编码:application/json
            3)上传文件或图片:multipart/from-data
            4)提交html格式文件:text/xml
        2、回车符(看不见)
        3、换行符(看不见)
      2.4.1.3、空行
        1、回车符(看不见)
        2、换行符(看不见)
      2.4.1.4、请求正文

    2.4.2、响应报文

      2.4.2.1、状态行
        1)协议版本
        2)状态码
        3)状态码描述
        4)回车符(看不见)
        5)换行符(看不见)
      2.4.2.2、响应头
        1、key:value
          1.1、响应头关注字段
            1)Content-Type:application/json; charset=utf-8:告诉前端后端支持的编码格式
            2)Set-cookie:告诉前端如何设置缓存信息
        2、回车符(看不见)
        3、换行符(看不见)
      2.4.2.3、空行
        1、回车符(看不见)
        2、换行符(看不见)
      2.4.2.4、响应正文
    2.4.3、请求体
      1、get请求:参数拼接在接口地址后面
      2、post请求:参数放在请求体body里面
      3、get与post区别

        1)参数传递:get参数在url地址后面,post参数放在body里面
        2)安全性:get相对不那么安全,post相对安全
        3)请求参数长度限制(后端可修改):理论上get参数长度有限制,post长度无限制,实际协议本身并没有做长度限制,是后端服务器做了限制,考虑内存问题
        4)post是提交数据,get是获取数据
        5)幂等性(同一个请求无论做多少次,结果都不变):get请求都是幂等,post请求不幂等(后端要做幂等处理,如金融方面)

    2.4.4、响应体
      get与post无区别,该怎么返回就怎么返回
    2.4.5、响应状态码
      1、1xx:服务器已经收到了请求,需要客户端继续操作
        1)100:客户端应该继续请求
        2)101:切换到更高级的协议
      2、2xx:HTTP成功状态码
        1)200:请求成功,一般用于get,和post
        2)201:请求已经成功,并创建了新的资源
        3)202:请求已经接受,但未处理完成
        4)204:服务器处理成功,但是并未返回内容
        5)206:服务器成功处理了部分请求,get请求,常用与资源下载
      3、3xx:资源重定向
        1)301:请求资源被永久移动到新的url,返回替代该资源的url,浏览器会自动重定向到新的url,后续资源的访问将使用新的替代
        2)302:临时移除,301是永久移除,资源只是临时移动到新的url,客户端继续使用原有的url
        3)303:查看该资源的其他地址
        4)304:请求的资源未修改,当服务器返回304,此时服务器不会返回任何资源,客户端将使用本地缓存资源。
        5)305:请求的资源必须通过代理访问
        6)307:临时重定向,与302类似
      4、4xx:客户端错误
        1)401:请求需要用户的身份认证
        2)402:保留状态码,并未使用
        3)403:服务器已经收到了客户端的请求,但是拒绝执行这个请求
        4)404:服务器无法找到客户端需要访问的资源
        5)407:请求需要代理进行身份认证,与401类似
        6)408:服务器等待客户端发送的请求时间过长,超时
      5、5xx:服务端错误
        1)500:服务器内部错误,无法完成请求
        2)501:服务器不支持请求的功能,无法完成请求
        3)502:网关或者是代理服务器执行请求的时候,收到了一个无效的响应
        4)503:服务器故障,暂时无法处理客户端的请求
        5)504:网关或者是服务器代理,无法从远处服务器获取请求
        6)505:服务器不支持请求的HTTP协议的版本,无法处理请求
三、TCP协议
  3.1、报文格式

    3.1.1、TCP头部
      1)Header Length:头部长度
      2)Reserved:保留位
      3)Window Size:还能接收容量
      4)ACK:确认号字段是否有效,若ACK=1,则有效
      5)SYN:在建立连接时,同步序号
      6)FIN:标记数据是否发送完毕,若FIN=1,表示已经发送完成
    3.1.2、TCP数据
      详见:http://testingpai.com/article/1621601730160
  3.2、三次握手/四次挥手
    详见:http://testingpai.com/article/1621669379653
四、https协议
  4.1、CA证书:证书签发机构颁布的数字证书
  4.2、请求过程
    4.2.1、三次握手

      1、客户端发送https请求,服务端将公钥以证书的形式发送给客户端
      2、客户端收到后加密发送给服务端,服务端解密并确认身份,发送加密串给客户端
      3、客户端解密并确认身份,问服务端要协议密钥,通知服务端握手结束,服务端响应密钥给客户端,通知客户端握手结束
    4.2.2、四次挥手

      1、客户端告知服务端发送完毕
      2、服务端发送确认信息
      3、客户端告知服务端确实要关闭连接
      4、服务端确认关闭释放TCP连接
五、http与https区别
  1、安全性:http明文传输,https加密传输(CA证书),https相对安全
  2、端口:http端口:80,https端口:443

标签:请求,get,python,网络,自动化,服务器,2.4,服务端,客户端
来源: https://www.cnblogs.com/mango-93/p/16407189.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有