文章目录
1.HTTP是什么
HTTP协议:是前后端进行交互的桥梁,它的全称是超文本传输协议,是一种被应用广泛的应用层协议
1.1理解HTTP协议的工作过程
浏览器相当于一个客户端,网站相当于有个服务器,客户端向服务器发出HTTP请求,那么服务器在进行一系列的操作之后,产生一个响应。服务器在把这个产生的响应传给客户端。
- 客户端:主动发起网络请求的一端
- 服务器:被动接受网络请求的一端
- 请求:客户端给服务器发的数据
- 响应:服务器给客户端发的数据
- 网络上的信息传输本质上就是一些光信号或者电信号进行传输
怎样理解HTTP协议的工作过程呢?
说白了,就是让传递的信息能对得上号。例如对暗号,天王盖地虎,那么对用的暗号就要是 宝塔镇河妖。 HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应
另外HTTP还用一个重要的特点:一发一收(服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间)
在网络编程中其实还有:
- 一发多收(类似于你在看直播,你的电视就相当于一个客户端,那么又不只你一个人看这个直播,那么就有多台客户端,只有一个传播直播的源,就是服务器,服务器向多台客户端,发出响应)。
- 多发一收(在传输大文件的时候)
- 多发多收
其实在这有可能大家会想到黑客利用这些特点进行D DOS攻击,其实这是两码事!
- D DOS攻击的实质是:黑客手中可能会用很多的机器,每个机器就相当于一个客户端,黑客动用这些机器疯狂的对某一个网站不停的发送请求,导致网站过载。
- 网站过载的原因:每个服务器处理数据的速率是有一定的上限的,如果请求的太快,请求量过大,服务器就就会吃不消。
- 解决D DOS攻击的办法:让服务器识别出攻击请求的特征,直接对攻击请求拒绝服务。
2.抓包工具
那么我们如果想要看到实时的看到客户端和服务器之间交互的数据,那么该怎样显示呢?
使用chrome虽然能过看到浏览器和服务器之间交互的数据,但是不详细,也不方便。
向大家介绍一个抓包工具Fidder
2.1抓包工具–Fidder的使用
在我们下载好,Fiddler之后就可以进行网络抓包。
2.2抓包工具原理
在进行抓包的时候,服务器和客户端不会感知到自己的数据传到了Fidder,Fiddler就相当于有个客户端和服务器之间的中间人,说简单点Fiddler就是一个"房屋中介".
3.协议格式总结
3.1 HTTP请求
我们可以通过Fiddler抓包工具得到一个HTTP请求,这里拿联想自带的浏览器主页面为例子。
-
首行:
-
协议头:
2.1 协议头里面是键值对结构。
2.2 每个键值对,占一行,键和值之间使用 空格 来分割
-
空行:表示协议头的结束标志
-
协议正文:空行后面的部分,有的请求里有正文,有的没有。
3.2 HTTP响应
-
首行:
-
协议头(header):和请求里面的一样。协议头里面是键值对结构。 每个键值对,占一行,键和值之间使用 空格 来分割
-
空行:也表示协议头的结束标志
-
响应正文:响应和正文往往是被显示在浏览器上的,最常见的响应正文格式,就是HTML
很多网站返回的HTML是被压缩过的,需要进行解压。那么为什么进行压缩呢?
因为压缩之后,网络传输的数据量就会变少,然后就更节省网络带宽。