HTTP特点 - 图1

灵活可扩展

可靠传输

HTTP 并不能 100% 保证数据一定能够发送到另一端,在网络繁忙、连接质量差等恶劣的环境下,也有可能收发失败。“可靠”只是向使用者提供了一个“承诺”,会在下层用多种手段“尽量”保证数据的完整送达。

应用层协议

虽然应用层有许多的协议,但它们都仅关注很小的应用领域,局限在很少的应用场景。例如 FTP 只能传输文件、SMTP 只能发送邮件、SSH 只能远程登录等,在通用的数据传输方面“完全不能打”。

HTTP 凭借着可携带任意头字段和实体数据的报文结构,以及连接控制、缓存代理等方便易用的特性,一出现就“技压群雄”,迅速成为了应用层里的“明星”协议。

请求 - 应答

通俗来讲就是“一发一收”“有来有去”,请求方先发起连接和请求,是主动的,而应答方只有在收到请求后才能答复,是被动的,如果没有请求时不会有任何动作。

无状态

“没有记忆能力”,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相关的信息。

于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session