系列文章目录
Fiddler抓包:下载、安装及使用_crazy_xieyi的博客-CSDN博客
文章目录
前言
我们在查看http请求/响应的时候,可以用Fiddler抓包工具。Fiddler抓包:下载、安装及使用_crazy_xieyi的博客-CSDN博客
一、请求格式(Request)
首行:方法 URL 版本号
请求头:包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割
空行:作为请求头的结束标记
请求正文:有的有正文,有的没有正文(可有可无)
HTTP请求是一个“行文本”,一行一行的组织数据,每一行都有特定的含义。
1.首行
2.首部(请求头)Header
header这里就是一堆键值对,键值对与键值对之间,使用 换行 来分割;键和值之间,使用 冒号+空格 来分割;header中具体有多少行是不固定的,具体是使用 空行 来作为header的结束标记。
二、响应格式(Response)
首行:版本号 状态码 状态码描述
响应头:包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割
空行: 作为响应头的结束标记
响应正文: 有的响应有正文,有的则没有,一种常见的格式就是HTML,当然这里具体格式要看程序猿自己是怎么写的
1.首行
2.响应头
包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割
三、HTTP协议格式总结
为什么HTTP报文中要存在“空行”?
因为HTTP协议格式并没有规定报头部分的键值对有多少个,空行就相当于是报头的结束标记。
而且HTTP在传输层依赖TCP协议,TCP是面向字节流的,如果没有空行存在,就会存在“粘包问题”。
四、URL格式 & URL encode
URL就是我们平时俗称的“网址”。
URL格式:
1. 协议名称:http://
2.服务器地址:可以是域名,也可以是IP
3.端口号:可以省略,不写端口号,浏览器在构造请求的时候会自动加上端口号,对于HTTP是80,HTTPS是443。
4.路径:描述了要访问服务器上具体哪个资源
5.查询字符串:这里是程序员自己定义的一组键值对,从浏览器传递给服务器,查询字符串是以 ?开头的,然后键值对与键值对之间使用 & 来分割,键和值之间用等号来连接。
6.片段标识符:定位一个网页内部的一个位置的。
但是,这些都不是必须的:
URL encode
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94475.html