https://blog.csdn.net/csdn_0_001/article/details/79252241
HTTP的特点:
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
- 灵活:可以传输任意类型的数据对象(Content-Type)
- 无连接:无连接的含义是限制每次连接只处理一个请求。
服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 - 无状态:HTTP协议是无状态协议。
即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何。
HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。 - 支持B/S及C/S模式。
无连接
HTTP 的设计者有意利用这种特点将协议设计为请求时建连接、请求完释放连接
,以尽快将资源释放出来服务其他客户端。
随着时间的推移,网页变得越来越复杂,里面可能嵌入了很多图片,这时候每次访问图片都需要建立一次 TCP 连接就显得很低效。后来,Keep-Alive 被提出用来解决这效率低的问题。
我们知道HTTP协议采用“请求-应答
”模式,当使用非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接;
当使用Keep-Alive模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
http 1.0中默认是关闭的,需要在http头加入”Connection: Keep-Alive”,才能启用Keep-Alive;
http 1.1中默认启用Keep-Alive,如果加入”Connection: close “,才关闭,目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了。
无状态
优点
在于解放了服务器,每一次请求“点到为止”不会造成不必要连接占用
缺点
在于每次请求会传输大量重复的内容信息
Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,于是,两种用于保持 HTTP 连接状态的技术
就应运而生了,一个是 Cookie,而另一个则是 Session。Cookie
通过在客户端记录信息确定用户身份
,Session
通过在服务器端记录信息确定用户身份
。