HTTP协议01

1 什么是HTTP(超文本传输协议)

HTTP协议是前后端交互的桥梁,在应用层中,很多时候需要我们自定义协议,但是HTTP是典型的应用层协议。

2 应用场景

  • 浏览器和服务器的交互(打开网页)大概率都是HTTP协议;
  • 手机APP和服务器之间的交互,大概率都是HTTP;
  • 服务器之间的相互调用也可以使用HTTP。

在这三种情况下前两者HTTP是主流,最后一个是其中的一种方法。

3 工作过程

当我们在浏览器中输入网址(URL)时,此时浏览器就会给对应的服务器发送HTTP请求,对方服务器收到请求后,经过计算处理,返回一个html页面就是响应。HTTP协议是典型的“一问一答”模型的协议。
在这里插入图片描述

4 fiddler用法

由于我们无法直接看到HTTP协议工作中间的具体过程。需要使用抓包工具获取到请求交互的详细情况,浏览器给服务器的请求会经过这个代理程序,进一步分析出请求和响应的结果。
代理还分为两种:一种是正向代理(给客户端提供服务的,和客户端关系紧密),站在服务器的角度,正向代理就是把真正的客户端给隐藏起来了;一种是反向代理(给服务器提供服务的,和服务器关系紧密),站在客户端的角度,反向代理把真实的服务器隐藏起来了。
我们这里使用的抓包工具fiddler分析HTTP协议的工作过程,使用简单功能强大。

  • 直接在官网下载经典版(免费的)
  • 打开后修改设置使其能够抓包https:tools→options→https→勾选以下四个框框同时 下载“根证书” →ok
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

5 HTTP报文格式

在这里插入图片描述

5.1 HTTP请求格式

HTTP请求是一个文本格式的协议 ,构造一个HTTP请求本质上就是在一个TCP socket中按照以下格式写入数据。
在这里插入图片描述

5.1.1 首行

方法+URL+版本号
在这里插入图片描述

5.1.2 请求头header

这里是按行组织的键值对,每一行是一个键值对,键和值之间用: 空格分割
在这里插入图片描述

5.1.3 空行

一个HTTP请求的header可以有若干个,使用空行作为header的结束标志,类似于链表的null
在这里插入图片描述

5.1.4 正文body

有的请求有,有的没有,上面的请求就没有body,我们重新抓取一个有正文的HTTP请求:
在这里插入图片描述

5.2 HTTP响应格式

在这里插入图片描述

5.2.1 首行

版本号+状态码 状态码用来描述是否成功,后面的ok对状态码进行解释说明
在这里插入图片描述

5.2.2 响应报头header

同样也是键值对的结构,和请求的结构一样
在这里插入图片描述

5.2.3 空行

作为header的结束标记
在这里插入图片描述

5.2.4 正文

正文可以是json数据,也可以是html、css、js、img等
在这里插入图片描述
以上就是HTTP请求和响应的基本格式和抓包工具的使用方法,后面我们继续了解HTTP的相关内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值