自学内容网 自学内容网

【网络】HTTP协议及fiddler抓包工具(1)

一. fiddler抓包工具

安装与配置

在fiddler官网下载,一路next,然后进行简单的设置即可:
在这里插入图片描述
fiddler本身是一个代理程序,使用时需要关闭别的代理程序,避免冲突。
在这里插入图片描述
选择一个包,选择RAW选项,就可以看到其发送的HTTP请求和响应。

二.HTTP协议

HTTP协议的交互过程,为非常典型的”一问一答“,对于网站开发,基本是够用的。当我们在浏览器中输⼊⼀个 “⽹址”, 此时浏览器就会给对应的服务器发送⼀个 HTTP 请求。 对⽅服务器收到这个请求之后, 经过计算处理, 就会返回⼀个 HTTP 响应。
在这里插入图片描述

2.1 HTTP请求

在这里插入图片描述
HTTP请求分为4个部分,即首行,请求头,空行,正文部分。

2.1.1首行

在这里插入图片描述
首行包含三个部分,方法(GET)、url(https://www.sogou.com/)、版本号(HTTP/1.1)。

2.1.2 请求头

在这里插入图片描述
描述了一些属性信息,类似于TCP报头/IP报头,但是是以文本形式组织的。每个键值对占1行,键和值之间用(:空格)分割。

2.1.3 空行

HTTP底层是基于TCP协议实现的,也要解决面向字节流的粘包问题,因此此处有一个空行,作为结束标记。

2.1.4 正文(body)

http的载荷部分,不是每个http都有。如果Body存在, 则在Header中会有⼀个Content-Length属性来标识Body的⻓度。

2.2 HTTP响应

在这里插入图片描述
HTTP响应同样也是4个部分组成,即首行,响应头,空行,正文。
其中只有首行格式不同:
在这里插入图片描述
这里首行由三个部分组成,版本号(HTTP/1.1)、状态码(200)、状态码描述(OK)。

2.3 认识URL

2.3.1 URL基本格式

在这里插入图片描述
互联⽹上的每个⽂件都有⼀个唯⼀的URL,它包含的信息指出⽂件的位置以及浏览器应该怎么处理它.

  • https : 协议⽅案名. 常⻅的有 httphttps, 也有其他的类型. (例如访问 mysql 时⽤的 jdbc:mysql )
  • user:pass : 登陆信息. 现在的⽹站进⾏⾝份认证⼀般不再通过 URL 进⾏了. ⼀般都会省略 .
  • www.example.jp:服务器地址. 此处是⼀个 “域名”, 域名会通过 DNS 系统解析成⼀个具体的 IP 地址.(可以通过ping命令来查看域名对应的IP地址)
  • 端⼝号: 当端⼝号省略的时候, 浏览器会根据协议类型⾃动决定使⽤哪个端⼝. 例如 http 协议默认使⽤ 80 端⼝, https 协议默认使⽤ 443 端⼝.
  • /dir/index.htm:带层次的文件路径.
  • 查询字符串(query string):本质是⼀个键值对结构. 键值对之间使⽤ & 分隔. 键和值之间使⽤ = 分隔.
  • 片段标识:主要用于页面内跳转(例如Vue官方文档:Vue
    在这里插入图片描述

2.3.2 URL encode

像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现.比如,某个参数中需要带有这些特殊字符,就必须对特殊字符进行转义。对于中文,也需要进行转义。
在这里插入图片描述
转义的规则如下:将需要转码的字符转为16进制,每2位做⼀位,前⾯加上%,编码成%XY格式 ,比如此处的”+“被转义成了”%2B“。
在这里插入图片描述


原文地址:https://blog.csdn.net/telasi2004/article/details/143023157

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!