1、HTTP协议支持 客户/服务端,所有的 HTTP请求 都是从客户端开始建立通信,服务器端在没有接收到任何的客户端请求之前是不会发出响应的;这就是 HTTP协议 的特点之一 。
2、简单快速,客户端向服务器请求服务的时候,只需要传入请求的方法和路径;
3、灵活 ;之所以灵活是因为 HTTP 允许传输任意类型的数据对象;传输的类型由 Content-Type 加以标记内容类型,支持多种内容格式的传输。(兼容性很强)
4、无连接;这里的无连接可不是没有连接的意思,而是限制每个连接只处理一个请求。服务器处理完客户端的请求并收到客户端的应答之后,就断开连接。
5、无状态; 无状态的意思就是说 HTTP协议对于事务的处理没有记忆能力 ;缺少状态就意味着如果后续处理需要前面的信息,则必须要重传,这就很可能会导致每次连接传送的数据量增大。另一方面,在服务器不需要先前的信息时它的响应就比较快。
优点:优点在于解放服务器,每一次请求点到为止不会造成不必要的连接占用。
缺点:缺点在于每一次请求都会传输大量的重复内容信息。
所以保持 HTTP 连接的两种技术就应运而生了,那就是 cookie 与 session 。
很多人搞不清http和tcp的区别、这里说一下:
当 HTTP 请求或响应数据被发送时,它们是通过 TCP 连接进行传输的。也就是说,HTTP 建立在 TCP 之上,利用 TCP 提供的可靠的数据传输服务。因此,在 HTTP 请求开始之前,首先需要通过 TCP 建立连接;数据传输完成后,TCP 连接可以保持打开状态以进行后续的 HTTP 交互,或者被关闭。(http使用tcp)
简而言之,TCP 关注的是如何在两个主机之间提供可靠的点对点数据传输,而 HTTP 则关注于如何在客户端和服务器之间交换数据和资源。