zoukankan      html  css  js  c++  java
  • HTTP详解及抓包测试

    1.工具介绍

    抓包工具:Fiddler

    详细使用见http://www.hangge.com/blog/cache/detail_1697.html

    参考:https://www.cnblogs.com/yyhh/p/5140852.html

    2.抓取http请求报文

    一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成.

    请求行:

    POST http://h5data.talkingdata.net/app/v1 HTTP/1.1

    这一行主要包括请求方法,URI(资源定位符) ,HTTP协议版本

    协议版本:主要有http0.9,1.0,1.1

    0.9:只接受GET一种请求方法,没有在通信中指定版本号,且不支持请求头

    1.0:第一个在通信中指定的版本号,每对请求/ 响应都使用一个新的连接。

    1.1:采用持久连接,在请求消息头多一个Host域,增加了OPTIONS, PUT, DELETE, TRACE, CONNECT这些Request方法

    请求方法见下图:

    请求头部:

    Host: h5data.talkingdata.net
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
    Accept: text/plain
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: http://hackinglab.cn/ShowQues.php?type=scripts
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 480
    Origin: http://hackinglab.cn
    Connection: keep-alive
    

    请求头部由键/值对组成,每行一对,键和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息

    典型的常用请求头有:

    User-Agent:产生请求的客户端类型。

    Accept:客户端可识别的内容类型列表。

    Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

    Accept-Encoding: 客户端使用的编码环境和编码方式

    Accept-Language: 客户端语言环境

    Authorization:授权信息,一般用于存放授权之后的信息

    Connection:表示是否需要持久连接

    Content-Length:表示请求数据正文的长度

    Cookie:这个与服务器端做交互的,存储保持会话的重要信息 Referer:表示该次请求的来源,一般用于做防盗链

    请求数据

    {"deviceId":"14cdef1e9f1072000","appkey":"680D438DBA1B46D2B47C4077D858EA29","appProfile":{"versionName":"hackinglab","versionCode":"v1.0","initTime":1553139117023,"sdkVersion":"H5+APP+v1.0.1","partner":""},"deviceProfile":{"pixel":"1920*1080*1","language":"zh-CN","timezone":8},"msgs":[{"type":2,"data":{"id":"14cdef1e9f1072000155313911725700","start":1553139117027,"status":2,"duration":0,"pages":[],"events":[{"count":1,"start":1553151442437,"id":"提交答案","label":""}]}}]}

    2.抓取http应答报文

    HTTP响应也由四个部分组成,分别是:状态行、响应头、空格、响应数据。

    状态行

    HTTP/1.1 200 OK

    分别是:HTTP版本,状态码,解释状态码的简单短语

    响应头

    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Header: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Origin
    Access-Control-Allow-Methods: GET, POST, OPTIONS
    Access-Control-Allow-Origin: *
    Content-Type: application/octet-stream
    Date: Thu, 21 Mar 2019 06:57:19 GMT
    Server: nginx
    Content-Length: 3
    Connection: keep-alive
    

    响应数据

    ok

    3.拦截请求并修改请求发送

    测试网站:http://hackinglab.cn/ShowQues.php?type=bases

    如图:我输入错误答案回答错误,把发送的报文拦截下来,如下图:

    其中ans即为我输入的答案,再来看看应答报文:

    明显说明答案错误!!

    没事,继续,将我们的请求报文中的ans变成正确格式,如下图

    然后我们再来看看应答报文:

    明显说明答案正确!!!

    这大致就是修改发送报文的方法了!我的去想想为啥会乱码!感兴趣学习的同志加个关注哟!!

  • 相关阅读:
    POJ1321 棋盘问题
    HDU1234 开门人和关门人(解法二)
    HDU1234 开门人和关门人(解法二)
    HDU1996 汉诺塔VI
    HDU1996 汉诺塔VI
    HDU1013 POJ1519 Digital Roots(解法二)
    HDU1013 POJ1519 Digital Roots(解法二)
    HDU4548 美素数
    HDU4548 美素数
    POJ3751 时间日期格式转换【日期计算】
  • 原文地址:https://www.cnblogs.com/luoshiyong/p/10572662.html
Copyright © 2011-2022 走看看