zoukankan      html  css  js  c++  java
  • 协议与数据2

    一、架构可分为

    架构可分为:单体架构、分布式架构、微服务架构

    服务有与服务之间需要通信和调用:同步通信模式、异步通信模式

    二、协议

    HTTP协议(一个完整的请求流程)、websocket、gRPC远程过程调用(调用远程的服务感觉像调用自己本地的服务一样快)

    通信:tcp/ip协议

    三、HTTP协议中常用的请求方法

    GET:客户端从服务端获取资源

    POST:客户端往服务端发送请求添加新的资源

    PUT:客户端针对服务端已有的数据进行更新

    DELETE:客户端删除服务端已有的数据

    编程语言

    get:获取信息

    set:设置信息

     由于PUT和DELETE请求方法不安全,所以很多时候,往往会使用POST来进行替代

    四、发送Requests的组成部分

    1、请求地址

    2、请求方法

    3、请求头

          Content-Type:指的是数据格式

          Cookie:反爬虫,身份凭证

          Referer:发送请求的地址是从哪里来的

          User-Agent:发送网络请求的时候向服务端标注请求是通过什么浏览器或者什么软件(PostMan,JMeter)发送的

          如:开发了一个APP,想看哪个系统使用的用户比较多,统计user-agent的数据,进行分析

    4、请求参数

        请求头中的数据格式决定了请求参数的格式

             get:路径参数 http://xxx.com/?name=wuya&age=18 ?

        key1=value1&key2=value2(get的请求参数与数据格式没任何关系)

             post:payload中显示了请求的参数

    五、Response响应部分

    1、协议状态码

         200 请求成功

         201 添加成功

         204 删除成功

         301 永久重定向

         302 临时重定向

         400 Bad Request 客户端请求错误(1、请求参数不对,2、请求头不对)

         401 Unauthorrized 无权限访问该系统

         403 Forbidden 有权限但是禁止访问

         404 请求的资源不存在(请求的地址不存在,所以导致请求的资源也是不存在)

         405 不被允许的请求方法(405MERHOD NOT ALLLOWED),就像你请求的方法,没有定义对应的请求方法,但是你去进行访问

    程序员的错误

         500 服务器内部错误

                1)空指针 Null PointExpection

                2)堆栈溢出 在测试选择项的时候,选择很多很多的项,同时触发,看是否会暴露该问题

                3)OOM-内存泄漏(Out Of Memory)

                4)其他异常 Expection 

         504  GateWay Timeout-网关超时 

    2、响应数据

          响应数据返回的数据格式是由响应头里面的content-type来决定的

    3、响应头——response headers

           content-type:指明返回的响应数据的数据格式是什么

           set-cookie:服务端返回给客户端的登录凭证

    六、常用的数据格式

    1、表单

          application/x-www-form-urlencoded;charset=UTF-8(GBK)

    2、json格式

    application/json;charset=UTF-8

          json数据格式:基于JSON的数据格式,但是数据类型是字符串

    3、text/html

    返回的是基于html的数据格式

    4、text/xml

    返回的是基于xml的数据格式

    参考例:http://ws.webxml.com.cn/webservices/DomesticAirline.asmx?op=getDomesticCity

         

  • 相关阅读:
    元组-琢磨已久的购物车程序
    学习使我充实自己-列表具备的功能
    很高兴今天用PYTHON3写了三级菜单程序!
    python内建模块shlex将普通字符串编码成符合linux shell的字符串
    HTTPS能登陆,HTTP不行
    linux shell判断输入的是哪个不可见字符,例如^X(Ctrl-X)
    TI CC3200做ETSI EN 300 328 认证
    使用systemd-resolved的系统中DNS来源优先级
    systmed-timesyncd中NTP服务器地址来源优先级
    markdown的简单应用实例
  • 原文地址:https://www.cnblogs.com/Kaylee/p/15760408.html
Copyright © 2011-2022 走看看