当前位置: 首页 > news >正文

不只是请求和响应:使用Fiddler解读Cookie与状态码全指南(下)

欢迎浏览高耳机的博客

希望我们彼此都有更好的收获

感谢三连支持!  


不只是请求和响应:使用Fiddler抓包HTTP协议全指南(上)_fiddler 获取响应脚本-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Chunfeng6yugan/article/details/144005872?spm=1001.2014.3001.5501

不只是请求和响应:使用Fiddler抓包URL和Method全指南(中)_fiddler抓包怎么分析入参响应-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Chunfeng6yugan/article/details/144024618?spm=1001.2014.3001.5501        🙉在(上)篇和(中)篇博客中,我们初步了解了HTTP协议的基本工作原理,包括它的工作过程,学习了如何使用Fiddler这个强大的抓包工具来捕捉和分析网络请求与响应。现在让我们继续深入,探讨与Cookie以及状态码等更为深入的内容。

目录

历史渊源

浏览器的Cookie

Fiddler观察Cookie

Cookie登录过程

状态码 status code

抓取常见的状态码

结语


历史渊源

        🥝在互联网的早期,为了让普通用户能够理解和接受这种技术,使用一个日常生活中的词汇作为术语是一个明智的选择。就像饼干一样,计算机中的Cookie也是小的、简单的,但可以包含各种不同的“味道”(即数据),就像饼干可以根据个人口味不同而有不同的风味

        使用“Cookie”这样一个非技术性的词汇有助于降低技术的门槛,使得普通用户更容易接受和理解这种技术。这种正面的联想可能也是选择“Cookie”作为术语的一个原因。

浏览器的Cookie

        🍇Cookie是一种由服务器发送到用户浏览器并保存在本地的小块数据,它主要用于存储用户的状态和信息,以便服务器能够识别用户和保持会话状态。这些Cookie中存储的字符串数据可以由客户端(网页)通过JavaScript(JS)自行写入,也可以由服务器在HTTP响应的header中通过Set-Cookie字段返回给浏览器。因此,Cookie往往被用来实现“身份标识”的功能,允许服务器区分和识别不同的用户。

        🍉每个不同的域名都可以拥有自己的Cookie,这意味着不同网站之间的Cookie不会相互冲突,确保了用户在访问不同网站时的独立性和隐私性。当用户再次访问网站时,浏览器会自动将存储的Cookie发送给服务器,服务器据此可以恢复用户的状态和会话信息,从而提供个性化的服务和内容。

Fiddler观察Cookie

        🍊通过Fiddler抓包观察页面登录Cookie(以视频网站为例):

1) 清除已有的Cookie

        点击URL左侧的小图标,选择Cookie,接着删除已经存在的Cookie。

2) 启动Fiddler在视频网站进行登陆操作

        抓取登录响应:

        🍍可以看到,响应中包含了4个 Set-Cookie 属性

        值得重点关注的是,第一个 Set-Cookie 里包含了一个 SESSDATA(SessionData) 的属性,属性值是一串很长的加密之后的信息。这个信息就是用户当前登录的身份标识,也称为“令牌(token)”。

3) 访问其他页面

        🥥登录成功之后,此时可以看到后续访问该网站的其他页面(比如个人主页),请求中就都会带着刚才获取到的Cookie信息。

        🍑请求中的Cookie字段也包含了一个 SESSDATA 属性,里面的值和刚才服务器返回的值相同。后续只要访问这个网站,就会一直带着这个令牌,直到令牌过期/下次重新登录。 

Cookie登录过程

        🍅类似于去医院看病,网络认证也遵循几个步骤:

        ,患者到达医院后需要挂号,这时他们需要提供身份证来获得一张“就诊卡”,这张就诊卡在网络认证中就相当于用户的“令牌”。

        ,患者在后续的检查、诊断和开药等过程中,无需再次出示身份证,只需出示就诊卡,医院就能识别出患者的身份,这与网络中只需凭令牌就能进行后续操作相似。

        ,当患者结束就诊并不再需要就诊卡时,他们可以注销这张卡,这样患者身份与就诊卡之间的关联就会被销毁,类似于网站注销操作。

        ,如果患者再次就诊,他们可以办理一张新的就诊卡,从而获得一个新的“令牌”。

这个过程展示了网络认证中令牌的获取、使用和更新的流程。

状态码 status code

        🫐状态码是HTTP响应的一部分,用于告知客户端请求访问一个页面的结果。

状态码由三位数字组成,首位数字定义了响应的类别

1xx:指示信息 - 请求收到,继续处理。

2xx:成功 - 请求正常处理完毕。

3xx:重定向 - 需要进一步操作以完成请求。

4xx:客户端错误 - 请求包含语法错误或无法完成请求。

5xx:服务器错误 - 服务器在处理请求的过程中发生了错误。

抓取常见的状态码

        🍎200 OK:请求成功。这是一个最为常见的状态码,抓包请求的大部分结果都是200,例如抓包 CSDN 主页

        🥑202 Accepted: 服务器已接受处理,但未处理完成。与之相似的是 201 Created: 表示服务器已接受并创建新的资源。

        🥝204 No Content: 常见于 Head 请求,服务器未返回响应体,只有响应头。

        🍇301 Moved Permanently:永久重定向。客户端请求的资源已永久移动至其他地方,由响应头 Location 指向新的资源位置,后续的请求应使用新的地址

        🍉302 Found:临时重定向。类似于手机号码的呼叫转移功能,该状态码常见于登录页面中。

        🍊305 Use Proxy:请求者只能使用代理访问请求网页。

        🍍400 Bad Request:请求无效/错误。

        🥥401 Unauthorized:未授权。

        🍑403 Forbidden:拒绝访问。有的页面通常需要用户具有一定的权限才能访问(登录后才能访问)。如果用户没有登录直接访问,就容易见到403

        🍅404 Not Found:资源未找到。在浏览器中输入url,目的就是为了访问该服务器的某个资源,如果该资源不存在,那么就会出现404。

        🫐500 Internal Server Error:服务器内部的代码出现错误或崩溃。

        🍎504 Gateway Timeout:服务器到网关的请求超时。

        使用Fiddler抓包工具,我们可以观察到不同请求的响应状态码,从而了解请求的处理结果。通过分析状态码,我们可以判断请求是否成功,以及可能遇到的问题,从而进行相应的调试和优化。

结语

不只是请求和响应:使用Fiddler抓包HTTP协议全指南(上)_fiddler 获取响应脚本-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Chunfeng6yugan/article/details/144005872?spm=1001.2014.3001.5501不只是请求和响应:使用Fiddler抓包URL和Method全指南(中)_fiddler抓包怎么分析入参响应-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Chunfeng6yugan/article/details/144024618?spm=1001.2014.3001.5501

        🙉随着本篇博客的结束,我们关于使用Fiddler抓包工具分析HTTP请求和响应的三部曲也画上了圆满的句号。感谢每一位读者的陪伴与支持,是你们的关注让我的分享变得更有意义!

        在这段旅程中,我们一同探索了HTTP的奥秘,从基础的请求与响应,到深入的URL和Method分析,再到今天的Cookie与状态码全解析,每一步都离不开你们的积极参与和反馈。希望这些内容能够帮助你们在日常学习工作中更加得心应手地使用Fiddler,洞察网络通信的每一个细节。

        虽然三部曲已经完结,但这并不意味着我们探索的终点。在未来,我将带来更多精彩的内容,涵盖更广泛的技术领域,希望能够继续得到你们的关注和支持。

        再次感谢,让我们在下一篇博客中再次相遇!


希望这篇博客能为你使用Fiddler抓包观察Cookie以及状态码提供一些帮助

如有不足之处请多多指出

我是高耳机

http://www.lryc.cn/news/500571.html

相关文章:

  • java+springboot+mysql游乐园管理系统
  • @RequestBody,getparameter,@RequestParam,@PathVariable之间的区别和联系
  • Linx下自动化之路:Redis安装包一键安装脚本实现无网极速部署并注册成服务
  • VMware虚拟机搭建和镜像配置
  • 红日靶场vulnstark 4靶机的测试报告[细节](一)
  • 深入详解人工智能机器学习常见算法——线性回归算法
  • Python 开发环境搭建
  • OpenCV相机标定与3D重建(9)相机标定函数calibrateCameraRO()的使用
  • flink终止提交给yarn的任务
  • 算法刷题Day14:BM36 判断是不是平衡二叉树
  • 【Golang】Go语言编程思想(六):Channel,第一节,介绍Channel
  • 【Flux.jl】 卷积神经网络
  • 大模型在辅导场景的深度应用,猿辅导素养课推出启发性“AI作文通”
  • 深入了解架构中常见的4种缓存模式及其实现
  • Hermes engine on React Native 0.72.5,function无法toString转成字符串
  • Spring Boot + MySQL 多线程查询与联表查询性能对比分析
  • Java 设计模式~工厂模式
  • OmicsTools生信环境全自动化安装配置教程,代做生信分析和辅导
  • 鸿蒙HarmonyOS应用开发 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
  • 二分模板题
  • 一篇文章掌握Git的基本原理与使用
  • 「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果
  • 朗新科技集团如何用云消息队列 RocketMQ 版“快、准、狠”破解业务难题?
  • 【Ubuntu】Ubuntu的Desktop(学习/用户使用)和Bit版本(工作)
  • cmake CMAKE_CURRENT_SOURCE_DIR和CMAKE_CURRENT_LIST_DIR的区别
  • 学会用VSCode debug
  • C语言专题之结构体的使用
  • python中的高阶函数
  • 学习笔记063——通过使用 aspose-words 将 Word 转 PDF 时,遇到的字体改变以及乱码问题
  • SpringBoot整合Mockito进行单元测试超全详细教程 JUnit断言 Mockito 单元测试