Fiddler工具 — 2.补充:HTTP协议介绍(一)

news2025/1/19 3:01:09

1、HTTP协议介绍

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本(也可以说是资源)到本地浏览器的传送协议。

HTTP协议是基于TCP协议的应用层协议,它不关心数据在底层传输的细节(底层细节需要很多网络方面的知识,这里不扩展说明),主要是用来规定客户端和服务端的数据传输格式(就是定义一种标准),默认端口是80。
http是基于请求与响应模式的、无状态的、应用层的协议。

2、使用Fiddler抓取一个请求

开启Fiddler工具,在浏览器中发送一个HTTP请求,之后在Fiddler中就会抓取到该请求。

双击抓取的请求链接,在右侧窗口就会显示出该请求的请求报文和响应报文内容,如下图:

如果你想学习fiddler抓包,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的fiddler抓包教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

2024备战金三银四,最新版fiddler抓包实战教程!_哔哩哔哩_bilibili2024备战金三银四,最新版fiddler抓包实战教程!共计8条视频,包括:1、fiddler和F12抓包对比、2、Fiddler工作原理、3、配置证书抓取https包等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV19j411J7oc/?spm_id_from=333.337.search-card.all.click

我们也可以一个请求保存到本地,

选中该HTTP请求,点击右键 —> Save —> Selected Sessions —> as Text...

把该HTTP请求的请求报文和响应报文存储到一个text文件中。

===========请求报文:也就是客户端发给服务器的数据=============
GET http://127.0.0.1:8000/api/departments/ HTTP/1.1 
Host: 127.0.0.1:8000
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9



=========响应报文:=======================
HTTP/1.0 200 OK
Date: Wed, 13 Jan 2021 14:59:00 GMT
Server: WSGIServer/0.2 CPython/3.5.4
Vary: Cookie
Content-Type: application/json
Content-Length: 1789
X-Frame-Options: SAMEORIGIN
Allow: GET, POST, DELETE

{
    "count":3,
    "next":null,
    "previous":null,
    "results":[
        {
            "dep_id":"T02",
            "dep_name":"Java_2学院",
            "master_name":"Java-Master",
            "slogan":"java"
        },
        {
            "dep_id":"T03",
            "dep_name":"Java_3学院",
            "master_name":"Java-Master",
            "slogan":"java"
        },
        {
            "dep_id":"T04",
            "dep_name":"C++/学院",
            "master_name":"C++-Master",
            "slogan":"Here is Slogan"
        }
    ]
}

3、НТТP请求报文

(1)НТТP请求报文说明

HTTP请求报文主要由请求行、请求头部、空一行、请求正文4部分组成。

请求正文也可以说成请求体,请求体可能有如Get请求,也可能没有如POST请求。

HTTP请求报文协议格式:

在Fiddler中抓取的请求中,在请求头部信息中,点击raw选项就可以看到如下信息。

下面一一说明:

(2)请求行

请求行分为三部分:

  • 请求方法:Request Method

    请求方法备注
    GET请求资源
    POST提交资源
    Head获取响应头
    PUT替换资源
    DELETE删除资源
    OPTIONS允许客户端查看服务器的性能
    TRACE回显服务器收的请求,用于测试或诊断
  • 统一资源标识符

  • 名称:Uniform Resource Locator:统一资源定位符。
    作用:用于描述网上的资源。

    格式:schema://host[:port#]/path/.../[?query-string]

    说明:

    schema:协议,如http,https,ftp等。

    host:域名或者IP地址。
    port:端口。
    path:资源路径。
    query-string:发送的参数。
    例如:https://www.baidu.com/s?ie=UTF-8&wd=图片

  • HTТP协议版本:HTTP/1.1是现在比较常用的版本。

(3)请求头(Request Header)

常见请求头属性如下:

  1. Host

    所请求web服务器的IP地址或域名:例:www.baidu.com

  2. User-Agent

    HTTP客户端运行的浏览器类型,详情。

    后台可以根据该头部信息,判断当前的HTTP请求的客户端浏览器类型.

    例如:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36

  3. Accept

    指定客户端能够接受的内容类型,内容类型的先后顺序表示客户端接受的先后顺序。

    比如:Accept:text/html,application/xml

  4. Accept-Charset

    客户端接受的字符集,如gb2312iso-8859-1

  5. Accept-Encoding

    指定客户端浏览器可以支持的web服务器返回内容压缩编码类型,

    允许服务器在将输入内容发送到客户端以前进行压缩,

    以节约带宽,节省传输时间,提交传输效率。

    比如:Accept-Encoding:gzip,deflate

  6. Accept-Language

    指定HTTP客户端浏览器用来展示返回信息所先选择的语言。

    也就是指定客户端接收的语言。

    比如:Accept-Language:zh-cn,zh;q=0.5 后面的q表示权重。

  7. Cookie

    http请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。

  8. Referer

    包含一个url,用户从该url的页面触发访问当前请求的页面。

    即从哪个链接过来的。(可以做统计和防止盗链)

  9. Content-Type

    显示此HHTP请求提交的内容类型。

    比如:Content-Type:application/x-www-form-urlencoded;charset:UTF-8

    "application/x-www-form-urlencoded"是浏览器的默认值,表示表单数据向服务器提交时所采用的编码类型。

  10. Content-Length

    用于描述HTTP消息实体的传输长度。

    需要注意的是:在HTTP协议中,消息实体的长度和消息实体的传输长度是有区别的。

    比如说gzip压缩下,消息实体长度是压缩前的长度,但是消息实体的传输长度是gzip压缩后的长度。

  11. Connection

    表示是否需要持久连接。比如:Connection:keep-Alive

  12. X-Requested-With

    用来判断客户端的请求是Ajax请求(异步)还是其他请求(同步)。

    后台可以利用request.getHeader("x-requested-with")为null判断是同步请求,为XMLHttpRequest则是Ajax异步请求。

    例:X-Requested-With:XMLHttpRequest。

  13. Origin

    跨域的时候,get,post都会显示origin,同域的时候get不显示origin,post显示origin。

  14. Authorization:客户端提供服务端,进行权限认证的信息。

  15. Cache-Control:缓存机制,如Cache-Control:no-cache

  16. Pragma:防止页面被缓存,和Cache-Control:no-cache作用一样。

(4)请求体

就是请求需要携带的数据。没什么可说的,有就显示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1340108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8S 全局架构图 —— 筑梦之路

kube-apiserver: Kubernetes API 服务器验证并配置 API 对象的数据, 这些对象包括 pods、services、replicationcontrollers 等。API 服务器为 REST 操作提供服务,并为集群的共享状态提供前端, 所有其他组件都通过该前端进行交互。…

docker学习笔记01-安装docker

1.Docker的概述 用Go语言实现的开源应用项目(container);克服操作系统的笨重;快速部署;只隔离应用程序的运行时环境但容器之间可以共享同一个操作系统;Docker通过隔离机制,每个容器间是互相隔离…

Java可视化物联网智慧工地云平台源码支持人脸识别考勤

智慧工地是指利用云计算、大数据、物联网、移动互联网、人工智能等技术手段,为建筑施工现场提供智能硬件及物联网平台的解决方案,以实现建筑工地的实时化、可视化、多元化、智慧化和便捷化。智慧工地通过全新的工程全生命周期管理理念,利用物…

克魔助手:方便查看iPhone应用实时日志和奔溃日志工具

查看ios app运行日志 摘要 本文介绍了一款名为克魔助手的iOS应用日志查看工具,该工具可以方便地查看iPhone设备上应用和系统运行时的实时日志和奔溃日志。同时还提供了奔溃日志分析查看模块,可以对苹果奔溃日志进行符号化、格式化和分析,极…

QML —— Slider示例(附完整源码)

示例 - 效果 实例 - 源码 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Layouts 1.12 import QtQuick.Controls 2.5Window {id: rootIdvisible: truewidth: 640height: 480title: qsTr("Hello World")Column{spacing: 50anchors.centerIn: paren…

无公网IP环境如何实现远程访问家里内网威联通QNAP NAS中存储的文件

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站&#xf…

Node.js--》node环境配置及nvm和nvm-desktop安装教程

博主最近换了台新电脑,环境得从零开始配置,所以以下是博主从一台纯净机中配置环境,绝对的小白教程,大家第一次安装完全可以参考我的过程,闲话少说,直接开始!!! 接下来介绍…

【五】【C语言\动态规划】删除并获得点数、粉刷房子、买卖股票的最佳时机含冷冻期,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利…

Linux磁盘与文件管理

目录 一、磁盘介绍 1. 磁盘数据结构 2. 磁盘的接口类型 3. 磁盘在Linux上的表现形式 二、磁盘分区与MBR 1. 分区优缺点 2. 分区方式 3. MBR分区 4. GPT分区 三、文件系统 1. 文件系统的组成 2. 默认的文件系统 3. 文件系统的作用 4. 模拟破坏文件与修复文件 4…

软件测试/测试开发丨Python学习笔记之内置库科学计算、日期与时间处理

Python 内置库 - 科学计算 了解 math 函数 math 函数,python 提供的内置数学类函数库,包含了很多数学公式。 比如幂函数运算,三角函数,高等函数运算等。 math 函数操作 数字常数数论与表示函数幂对数函数三角对数函数高等特殊…

vue3-12

需求是用户如果登录了,可以访问主页,如果没有登录,则不能访问主页,随后跳转到登录界面,让用户登录 实现思路,在用户登录之前做一个检查,如果登录了,则token是存在的,则放…

FreeRTOS 实时操作系统第八讲 - 时间管理 (系统节拍,延时函数)

一、系统节拍 FreeRTOS 实时操作系统需要一个时钟节拍,以供系统处理诸如延时、超时、软件定时器等与时间相关的事件。 时钟节拍是周期性定时中断,这个中断可以看做是系统心跳。中断时间间隔取决于不同的应用,一般是 1ms – 100ms。时钟的节拍…

泰迪智能科技“供需对接就业育人项目”介绍

为帮助用人单位培养和招聘更多实用型、复合型和紧缺型人才,推动高校人才培养与就业有机联动、人才供需有效对接促进高校毕业生更加充分更高质量就业,经广东泰迪智能科技股份有限公司申报、全国高校毕业生就业创业指导委员会专家组审核,泰迪智能科技“供需…

flutter 安卓使用高德插件黑屏

地址 https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project 下面介绍的方式是Native配置 sdk,也就是需要手动下载到本地在引入的方式 1、添加 jar 文件: 将下载的地图 SDK 的 jar包复制到工程(此处截…

【回溯】最大团问题Python实现

文章目录 [toc]问题描述回溯法时间复杂性Python实现 个人主页:丷从心 系列专栏:回溯法 问题描述 给定无向图 G ( V , E ) G (V , E) G(V,E),如果 U ⊆ V U \subseteq V U⊆V,且对任意 u u u, v ∈ U v \in U v∈U有…

fork函数详解【Linux】

fork函数详解【Linux】 fork函数的概念fork调用后的底层细节解释fork学习中的一些笔记和问题fork的写实拷贝深拷贝的策略 fork调用失败的原因 fork函数的概念 调用fork函数可以在已存在的进程中创建一个子进程,此时,新进程叫做子进程,原进程叫…

100000000!文心一言披露最新用户规模

“文心一言用户规模突破1亿。” 12月28日,百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰在第十届WAVE SUMMIT深度学习开发者大会上宣布。会上,王海峰以《文心加飞桨,翩然赴星河》为题作了主旨演讲,分享了飞桨和文…

【tcp】TCP CLOSE_WAIT问题分析与定位

一、问题背景 某日,运维突然在群里突然丢出告警信息: 对象类型:主机 检测规则:NET.TCP.CLOSE.WAIT 告警内容:CLOSE_WAIT状态的TCP连接数大于500 ....image.png 上面告警信息已经说的很明白,CLOSE_WAIT状…

【UE在关卡序列制作图片序列,捕获影片时出现小白人下落的场景或者空场景】

UE在关卡序列制作图片序列,捕获影片时出现小白人下落的场景或者空场景 问题 下面是有问题的截图 1.如果场景没有放角色就是纯天空 2.如果有角色就是角色一直在下落 原因 使用影片场景捕获(旧版时),如果镜头帧率的长度没有和影片的长度一致…

操作教程|MeterSphere UI测试+VNC:简单、快捷地查看UI测试实时执行详情

编者注:本文为CSDN博主hxe116的原创文章。 原文链接为:https://blog.csdn.net/hxe116/article/details/134714960?spm1001.2014.3001.5502 作为一款一站式的开源持续测试平台,MeterSphere涵盖了测试跟踪、接口测试、UI测试和性能测试等功能…