一文读懂之HTTP

1. HTTP概述:

1.1概念

HTTP,Hyper Text Transfer Protocal,超文本传输协议。用于规范数据在网络中的传输(格式,遵循的规范)。主要了解Http的两部分内容,请求部分和响应部分,需要借助浏览器的F12功能。

1.2HTTP1.0和HTTP1.1的区别:

HTTP1.1支持长连接(建立连接之后,就可以在连接之间来回传输数据)与之相反的是,传输一次数据创建一次链接。

1.3 MIME

如下为MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型。
在这里插入图片描述
其中q=0.1为相对品质因子。它从0到1的范围指定用户喜欢的语言,从HTTP/1.1规范§14.4中可以看出:
每个语言可以被赋予一个相关的质量值,该质量值表示用户对该范围指定的语言的偏好的估计。质量值的默认为“q=1”。例如

Accept-Language:da, en-gb;q=0.8,en;q=0.7

这将意味着:“我更喜欢丹麦语,但会接受英式英语和其他类型的英语。在这里插入图片描述

1.4. 重定向:

当去请求某资源时,未找到资源,但是找到了该资源的地址,继续从该地址去寻找该资源。

2. Http的请求部分

请求行:包含:请求方式,资源路径,协议版本号
(1)请求方式在这里插入图片描述
(2)资源路径:url
(3)协议版本号:http/1.1,1.1版本的HTTP
请求头:
k-v结构,表示客户端要告诉服务器端的一些信息,都应该是ASCII
(1)User-Agent:用户浏览器类型
(2)Referer:记录本次请求由哪个路径发出的
请求实体:
请求携带的数据,通常指的是表单数据
(1)get请求实体跟在了地址的后面
(2)post请求携带的数据会被处理,隐式传递

3. Http的响应部分

响应行,包含协议版本号,响应状态码,状态码描述信息
(1)响应状态码和描述信息
在这里插入图片描述
响应头:服务器端告诉客户端的信息,K-V结构,只能是ASCII。
(1)Content-Type,响应内容的类型及编码方式;
(2)Location,重定向时使用,记录新的访问地址。
响应实体
服务器端响应给客户端的内容
在这里插入图片描述

4.HTTP协议的三大特点

4.1单向性

HTTP协议规定, 请求从客户端发出, 最后服务器端响应该请求并返回. 换句话说, 肯定是先从客户端开始建立通信的, 服务器端在没有接收到请求之前不会发送响应.

4.2无状态

HTTP是一种不保存状态, 即无状态(stateless)协议. HTTP协议自身不对请求和响应之间的通信状态进行保存. 也就是说在HTTP这个级别, 协议对于发送过的请求或响应都不做持久化处理.
使用HTTP协议, 每当有新的请求发送时,就会有对应的新响应产生. 协议本身并不保留之前一切的请求或响应报文的信息. 这是为了更快地处理大量事务, 确保协议的可伸缩性, 而特意把HTTP协议设计成如此简单的. 可是随着Web的不断发展, 因无状态而导致业务处理变得棘手的情况增多了. 比如, 用户登录到一家购物网站, 即使他跳转到该站的其他页面后, 也需要能继续保持登录状态. 针对这个实例, 网站为了能够掌握是谁送出的请求, 需要保存用户的状态, 于是引入了Cookie和Session技术.

4.3无连接

无连接的含义是限制每次连接只处理一个请求. 服务器处理完客户的请求,并收到客户的应答后,即断开连接. 采用这种方式可以节省传输时间,并且可以提高并发性能,不能和每个用户建立长久的连接,请求一次响应一次,服务端和客户端就中断了。但是无连接有两种方式,早期的http协议是一个请求一个响应之后,直接就断开了,但是现在的http协议1.1版本不是直接就断开了,而是等几秒钟,这几秒钟是等什么呢,等着用户有后续的操作,如果用户在这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这几秒钟用户没有发送新的请求,那么就会断开连接,这样可以提高效率,减少短时间内建立连接的次数,因为建立连接也是耗时的,默认的好像是3秒中现在,但是这个时间是可以通过咱们后端的代码来调整的,自己网站根据自己网站用户的行为来分析统计出一个最优的等待时间.

发布了219 篇原创文章 · 获赞 352 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_42859864/article/details/103939814