HTTP 协议的基本格式和 fiddler 的用法

HTTP

超文本传输协议

常见为1.1版本

https引入了一个"加密层",安全性会更高一些,除此之外内容和http完全相同。

"一问一答模型"的协议。客户端发送一个请求,服务器返回一个响应。

  • 一问多答:下载一个大的文件
  • 多问一答:上传一个大的文件
  • 多问多答:远程桌面(远程控制)

**HTTP报文格式。**利用抓包工具观察HTTP请求/响应的详细情况。

**代理。**给客户端跑腿"正向代理"。给服务器跑腿"反向代理"。

HTTP协议抓包

  • wireshark:功能强,可以抓TCP,UDP,IP...抓HTTP(太重)

  • chrome/Edge开发者工具:f12自带抓包,但不能看到HTTP原式报文数据

  • fiddler:经典,功能强大的抓包工具

  1. 左侧是抓到HTTP数据报的列表,ctrl+a delete 清空

  2. 点击某一项,能在右侧看到请求(右上角)和响应(右下方)的具体情况。选择raw,得到原始的HTTP请求和响应的模样。viev in notepad可以在记事本中打开。

HTTP请求基本格式

  1. GET 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili HTTP/1.1 方法(method)URL 版本号

  2. 请求头(header)第二行开始的若干行,一直到空行结束 每一行都是键值对,用空格分隔。

  3. 空行 请求头结束标记

  4. 正文(body)提交给服务器的数据

HTTP响应基本格式

  1. HTTP/1.1 200 OK 版本号 状态码(成功/失败/失败原因) 状态码的描述 200是常见的状态码表示成功,三个部分用空格分隔

  2. 响应头(header)键值对 空行结束

  3. 空行

  4. 正文 通常是HTML/CSS/JS/JSON/图片/音频/字体

URL 唯一资源定位器

  1. IP地址(域名)

  2. 端口号

  3. 层次的路径

  4. 查询字符串

URI 唯一资源标识符 URL是URI的一种实现

  1. url给哪个协议使用

  2. 现在已经不用这种认证方式

  3. 服务器地址可以是IP也可以是域名

  4. 服务器端口号如果不写会自动拼接上一个端口,http80,https443

  5. ?查询

  6. 键值对之间用&分隔 键值之间用=

url encode本质上就是转义字符

相关推荐
青云交23 分钟前
Java 大视界 -- Java 大数据机器学习模型在金融信用评级模型优化与信用风险动态管理中的应用(371)
java·大数据·机器学习·信用评级·动态风控·跨境金融·小贷风控
二哈喇子!3 小时前
若依【(前后端分离版)SpringBoot+Vue3】
java·spring boot·后端
Monkey-旭6 小时前
Android Handler 完全指南
android·java·handler
秃狼6 小时前
Execel文档批量替换标签实现方案
java
Brookty7 小时前
Java线程安全与中断机制详解
java·开发语言·后端·学习·java-ee
Sylvia-girl7 小时前
排序查找算法,Map集合,集合的嵌套,Collections工具类
java·算法·排序算法
TT哇7 小时前
【分治】归并排序——排序数组(medium)
java·算法·排序算法
给力学长7 小时前
自习室预约小程序的设计与实现
java·数据库·vue.js·elementui·小程序·uni-app·node.js
试着7 小时前
零基础学习性能测试第五章:JVM性能分析与调优-JVM概念,java程序运行原理
java·jvm·学习·零基础·性能测试
從南走到北7 小时前
JAVA东郊到家按摩服务同款同城家政服务按摩私教茶艺师服务系统小程序+公众号+APP+H5
android·java·开发语言·微信小程序·小程序