zoukankan      html  css  js  c++  java
  • 接口测试(三)HTTP协议简介

    【转载】以下是某男程序猿A和女程序猿B的对白:

    A:你有男朋友吗?

    B:404

    A:可以做我女朋友么?

    B:501

    A:一起吃个饭?

    B:200

    于是成功约到女神,你懂了么?(不懂活该单身,呵呵~~)

    ------------------------------------进入正题------------------------------

     

    一、打开百度URL详解

    用浏览器打开百度网址,输入任意关键字搜索后:

     

    详细URL地址复制出来如下

    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=monline_3_dg&wd=%E6%B5%8B%E8%AF%95&rsv_pq=d87c123200060e83&rsv_t=34df3NkqrKKYpm5mJCkqszVIvRNqpN%2B1H9cSxLPZMi%2FMhCa48ccyKZrhtT9ZzjLUwv0x&rsv_enter=1&rsv_sug3=1

     

    在fiddler里面抓到的数据包如下,红色框区域

     

    二、URL模式

      URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下

    scheme 指定低层使用的协议(例如:http, https, ftp)

      host HTTP服务器的IP地址或者域名

      port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/

      path 访问资源的路径

      url-params

      query-string 发送给http服务器的数据

      anchor- 锚

     


    由此可以看到访问百度URL的详情:

    1. 请求类型(scheme):https

    2. host:www.baidu.com

    3. 路径(path): /s

    4. 请求参数(url-params):ie=utf-8&f=3&rsv_bp=1&......(问号后面用&隔开)

    5. 服务器返回状态(result):200 (请求成功)

    三、Get和Post方法的区别

      Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.

      我们看看GET和POST的区别

      1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.

      2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

      3. GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

      4. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

    四、如何用fiddler查看某个请求是get还是post?

    1)点击左侧,待查看的url地址成选中状态

    2)点击右边Inspectors按钮

    3)点击Headers

    4)查看Request Headers下面:GET,说明是get请求方式

    5)再随便点点左侧区域其它的url,可以找到post请求的

     

     

    五、查看Request和Response

    先看下fiddler工作原理


    也就是终端设备发出请求,fiddler作为代理,传给服务器;

    服务器返回数据,fiddler拦截后,再传给终端设备。

    Fiddler右边上方区域显示request数据,下方区域显示response数据,如图

     

    六、get和post请求参数有什么不一样

    get请求如下图:


    post请求如下图

     

    最明显区别就是post请求多了一块区域,称之为body体

    也就是说get请求不带body;post请求带body

    七、如何查看请求服务器是否成功?

     

    常见状态码:

    200 - 服务器成功返回网页
    301 - 永久移动,请求的网页已被永久移动到新位置
    404 - 请求的网页不存在,网页不存在。
    500 - 服务器遇到错误,无法完成请求。
    502 - 服务器作为网关或代理,从上游服务器得到了无效的响应
    503 - 服务器暂时不可用,目前无法使用服务器(由于超载或进行停机维护)。
    怕黑的孩子总要去追逐太阳。
  • 相关阅读:
    大数据学习之Scala数组和集合学习38
    大数据学习之Scala语言函数学习37
    大数据学习之Scala语言基本语法学习36
    大数据学习之Storm实时统计网站访问量案例35
    大数据学习之storm-wordcount 实时版开发以及分组策略34
    大数据学习之Storm实时计算概述及安装部署33
    Java中级学习6多线程之线程池
    大数据学习之kafka的 Java API操作32
    大数据学习之Kafka消息队列31
    【代码加密】安装PHP源码加密模块
  • 原文地址:https://www.cnblogs.com/woaixihongshi/p/8194144.html
Copyright © 2011-2022 走看看