HTTP协议

来源:互联网 发布:99家居软件怎么样 编辑:程序博客网 时间:2024/06/14 03:03

一、什么是HTTP?

Hyper Text Transfer Protocol 超文本传输协议

二、如何看到HTTP 中传输的内容是什么呢?

我们用火狐浏览器,打开一个网页www.baidu.com为例:
按F12—-网络,可以看到:
图1
我们点开一个其中的+get,我们可以看到:
图2
这里面的头信息,缓存,cookies都是http协议的内容;

2.1请求头信息中的Referer是什么?

你的这个请求是从哪个地方跳转过来的;
例子:
从搜狗(打开搜狗的网站)—输入百度(www.baidu.com),这时候看这个referer,那么就是搜狗的地址【从搜狗跳转过来的】。
场景:
实际中有什么应用场景呢?—–防盗链(搜索引擎经常会爬取我的一些东西,我不想让他爬,其中就可以用这个referer,看来源是不是来自本允许的网站,如果不是,禁止访问。)
比如:
我的网站是搜狗,然后有人访问我,这时候就会带有一个referer,然后我发现这个referer是来自百度的,不是我的网站,然后我就不让他访问;

2.2请求头信息中的Accept-Encoding gzip, deflate是什么?

说明:
指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式。
accept-encoding 关系到的是网络前端性能;
解释:
当网页传递过来的信息,如果没有压缩,就传递给客户端了,那么会影响你的客户端的前端的性能,数据量会很大,在网络传输过程中就会耗时更长,前端性能就会变差,所以默认网页在传输内容的时候,都会使用gzip编码格式做传输的,这样可以减少传输的数据的大小,不影响性能。

2.3请求头信息中的User-Agent(UA) 是什么?

学名: 用户代理
例如:
User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
翻译一下:火狐浏览器 / 5.0版本(windows操作系统。。。。。。)。。。。。。
用途场景:
可以通过user-agent来知道访问我网站的用户都是用什么浏览器来访问的——-浏览器的兼容性测试;

3.1响应头信息中的Content-Length是什么?

指传输的数据的长度。

3.2响应头信息中的Connection keep-alive是什么?

访问服务器时的连接情况:
当访问服务器时选择的连接方式是keep-alive的话,服务器不会立刻释放这个连接,会在一定时间内保存这个连接,这样等下一次请求的时候不用再新建连接,就不用再进行三次握手连接,这样就提升了请求效率;
说明:
【TCP/IP在进行通讯传输的时候,要进行三次握手连接,是要通过网络进行传输的;
如果所有的请求都是要新建立连接,通过网络传输完成三次握手,再响应,然后返回传输数据的话,就会很耗时;
但是如果选择 keep-alive 的连接方式的话,那么在一定时间里再次访问这个连接的时候,就不用新建连接,三次握手,而是通过直接复用原有的连接来进行传输数据,这样就会减少新的连接的建立,从而节省了传输时间;】

三、对HTTP协议本身的一些了解(Hyper Text Transfer Protocol)——- 一种可靠的数据传输协议

哪里可以用HTTP协议呢?
后台数据的传输(接口请求) VS 显示网页
HTTP协议位于 OSI 七层模型中的网络应用层,下一层是传输层(TCP/IP 、 UDP);
其中传输层的TCP/IP协议和UDP的区别是什么呢?
TCP/IP传输速率较UDP慢,但是他稳定,安全,不会丢包,会控制传输数据的顺序,不会错乱;
UDP传输速率较TCP/IP快,但是不稳定,会发生丢包的现象;
HTTP协议是基于传输层的上一层协议,很稳定,可靠,在传输数据的时候,要么成功,要么失败,绝对不会只传回来一部分包,另外的部分包丢失了。
另:
计算机的底层都是端口到端口之间的传输(中间可能经过无数的网关,路由,代理等等),那么如此混沌、复杂的传输怎么保证不出错呢?就要通过一种协议(TCP/IP),可以把它看成一种规范,要么失败了就重新传递,或怎样处理好了以后再往下一步进行传输这样就保证了传输的可靠性和数据的完整性;而恰恰HTTP是基于TCP协议的上层协议,所以是非常可靠和稳定的。

原创粉丝点击