python接口自动化-01-HTTP网络协议

HTTP网络协议通信原理:

        网络协议是接口通信过程中最为核心的一个体系,HTTP网络协议是目前业内应用最为广泛的一种通信协议;          HTTP是TCP之上的应用层

在浏览器中访问url,浏览器进行了什么步骤:

        1. 基于访问的url进行识别,与服务器进行连接的建立,

            解析url,识别 IP 地址,基于IP 地址与服务器进行连接和通信,

            最终建立了一个连接的通道(C-S),连接通道是基于TCP进行建立的临时通道

          2. 基于C端请求的数据内容,进行一次请求的下发,至服务器

          3. 服务端解析请求的数据内容,生成一个响应结果,返回至C端

          4. 客户端接收到响应内容,基于前端进行数据的渲染与展示

          5. 断开最初生成的临时链接

    总结:

        浏览器通过解析url,识别ip地址,通过ip与服务器进行链接-->客户端向服务器发送请求-->服务器解析请求内容,返回响应结果给客户端-->客户端接收响应内容并展示--> 断开链接

        所有的请求都是基于客户端下发,服务端进行响应,并生成响应结果,返回至客户端

HTTP协议基本概念

基本概念:

        1. HTTP网络协议是无状态连接,要解决无状态问题就需要牵扯到接口关联/鉴权机制的概念

           每一次接口请求都与其他接口的请求没有任何关系

        2. 既然有了TCP链接通道,为什么又是无状态连接

            keep-alive: 保持TCP连接通道持续存在

        3. 头部(header)和身体(body)是请求和响应中必定存在的两个部分

            header: 用于定于到通信数据的规范化

             body: 一般都是只用于传递数据内容

        4. 基于HTTP网络协议进行请求的内容拆解:

            请求下发一定是基于URL来实现的,

            url:统一资源定位符,用于定位;

            模板: 网络协议 :// IP : Port ? a=1 & b=2

            http:默认端口 80;  https: 默认端口 443

        5. 请求方法:

             POST: 用于提交数据,如:表单

             GET: 用于获取数据,如:查询

            i. 请求的数据内容是否明文显示和请求方式无关:

                    业内潜规则定义get需要明文显示,post是在body中存在;     

            ii. 对于请求的数据内容是否有长度显示,其实和请求方式无关:

                    本质上是因为url有长度限制,所以才有了这个概念

            iii. 安全性问题,只是因为get在url中明文显示,所以安全性略差

鉴权机制:

        接口关联性质,解决HTTP无状态连接情况是基于鉴权机制来实现的,业内常用的cookie,session,token.

        cookie: 本地缓存机制;   早期为了提升速度,增加了缓存的机制.

        session: 临时会话机制; 中期关注到交互,就产生了session机制.

              当C端访问到服务端时,就会提交一个授权申请的请求,服务端会基于本次的申请,生成一个临时会话,用户端的所有数据请求都会基于这个临时会话与S端进行交互,基于id来管理所有的session.

        token: 多个设备同步信息处理,临时身份牌的形式

                  到现在,对于多个设备同步信息的处理,session很难很有效率的实现,于是乎就出现了token的机制,临时身份牌的形式.

           

    

你可能感兴趣的:(python-API自动化,网络协议,自动化,http)