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

1. Fiddler 的用法

在官网下载Fiddler并进行安装,打开后,先设置https;

勾选Decrypt HTTPS traffic和Ignore server certificate errors(unsafe);

  查看抓到的包:

 2.HTTP 协议的基本格式 

2.1 HTTP 请求 (Request)
认识URL:

URL最关键的四个部分:

1.域名/ip;2.端口号 3.带层次的路径 4.查询字符串

http:80端口,采用tcp协议;https:443端口,采用tcp协议;

认识 "方法" (method)

方法1说明支持的HTTP协议版
GET获取资源1.0、1.1
POST传输实体主体1.0、1.1
PUT传输文件1.0、1.1
HEAD获得报文首部1.0、1.1
DELETE删除文件1.0、1.1
OPTIONS询问支持的方法1.1
TRACE追踪路径1.1
CONNECT需求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
UNLINE断开连接关系1.0

1. GET 方法


GET 是最常用的 HTTP 方法. 常用于获取服务器上的某个资源.
在浏览器中直接输入 URL, 此时浏览器就会发送出一个 GET 请求.
另外, HTML 中的 link, img, script 等标签, 也会触发 GET 请求。

2.GET 请求的特点

  • 首行的第一部分为 GET
  • URL 的 query string 可以为空, 也可以不为空.
  • header 部分有若干个键值对结构.
  • body 部分为空.

3. POST 方法
POST 方法也是一种常见的方法. 多用于提交用户输入的数据给服务器(例如登陆页面).
通过 HTML 中的 form 标签可以构造 POST 请求, 或者使用 JavaScript 的 ajax 也可以构造 POST 请求.

POST 请求的特点:
首行的第一部分为 POST
URL 的 query string 一般为空 (也可以不为空)
header 部分有若干个键值对结构.
body 部分一般不为空. body 内的数据格式通过 header 中的 Content-Type 指定. body 的长度由
header 中的 Content-Length 指定.

4. 其他方法
PUT 与 POST 相似,只是具有幂等特性,一般用于更新
DELETE 删除服务器指定资源
OPTIONS 返回服务器所支持的请求方法
HEAD 类似于GET,只不过响应体不返回,只返回响应头
TRACE 回显服务器端收到的请求,测试的时候会用到这个
CONNECT 预留,暂无使用

2.2 认识请求 "报头" (header)

Host
表示服务器主机的地址和端口

http:80端口,https:443端口

Content-Length
表示 body 中的数据长度.
Content-Type
表示请求的 body 中的数据格式.
User-Agent (简称 UA)
表示浏览器/操作系统的属性. 

Referer
表示这个页面是从哪个页面跳转过来的.

Cookie(非常重要的header属性)
Cookie 中存储了一个字符串, 这个数据可能是客户端(网页)自行通过 JS 写入的, 也可能来自于服务器(服
务器在 HTTP 响应的 header 中通过 Set-Cookie 字段给浏览器返回数据。

注意:Cookie中具体存什么内容?也是程序员自定义的部分;

Cookie是从哪里来的?
Cookie中的数据时来自于服务器的;
服务器会通过http响应的报头部分(set-cookie字段);
服务器来决定浏览器的Cookie要存储什么
Cookie是在哪存?
可以认为是存在于浏览器中,存在于硬盘的;
Cookie在存的时候,是按照浏览器+域名维度来进行细分的;
不同的浏览器,各自存各自的cookie;
同一个浏览器不同的域名,对应不同的cookie;
cookie里的内容不光是键值对,同时还有过期时间;
例如:很多网站,登录一次后,自动记录登录状态;

Cookie要到哪里去?
回到服务器;
客户端同一时刻是有很多的:服务器关心客户端的状态;
客户端这边就会通过Cookie来保存当前用户使用的中间状态;
当客户端访问浏览器的时候,就会自动的把Cookie的内容带入到请求中;

2.3 认识请求 "正文" (body)


正文中的内容格式和 header 中的 Content-Type 密切相关

2.4 HTTP 响应详解

四个部分:
1.首行  HTTP/1.1 200 OK
版本号 状态码 状态码描述
2.header
3.空行 表示header的结束标记
4.body

下面是常见的 HTTP 状态码:

200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

HTTP 状态码分类
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):

200 ok 成功了
404 not found 资源不存在,未找到
403 Forbidden 访问被拒绝(没有权限)
301永久性重定向:新网址完全继承旧网址,旧网址的排名等完全清零
302 临时重定向:类似于呼叫转移,方便进行网站迁移

500 服务器内部错误(服务器代码抛异常了)
504 超时请求 gateway timeout(响应时间太久,浏览器等不及)

2.5 总结

HTTP协议里,以下可以自己进行定义的:
1.URL中的路径
2.URL中的query string
3.header中的键值对
4.header中的cookie的键值对
5.body
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值