http和tcp的区别(udp和tcp最大的区别)
TCP协议对应传输层,HTTP协议对应应用层。本质上是没有可比性的。Http协议基于TCP协议。当浏览器需要从服务器获取网页数据时,它会发送一个Http请求。
Http会通过TCP建立到服务器的连接通道。当这个请求所需的数据完成后,Http会立即断开TCP连接。这个过程很短。因此,Http连接是一种短连接和无状态连接。无状态是指浏览器每次向服务器发出请求时,并不建立连接,而是每次建立一个新的连接。如果是连接,服务器进程可以保持连接,并在内存中记住一些信息状态。每次请求后,连接关闭,相关内容被释放,无法记住任何状态,变成无状态。
推荐课程:PHP教程。随着时间的推移,html页面变得复杂,许多图片可能嵌入其中。这时候每次访问图片都建立tcp连接效率不高。因此,提出保活来解决效率低的问题。从HTTP/1.1开始,Keep-Alive默认打开,保持连接特性。简单来说,当一个网页打开时,客户端和传输HTTP数据的服务器之间的TCP连接不会关闭。如果客户端再次访问此服务器上的网页,它将继续使用此已建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设置
虽然TCP连接在这里已经使用了一段时间,但是这个时间是有限的,在那个时间点还是会关闭,所以我们也把它当成每次连接完成就关闭。后来的Session,Cookie等相关技术也可以保留部分用户的状态。但是它仍然一次使用一个连接,这仍然是无状态的。
曾经有一个概念很宽容,很混乱。这就是为什么Http是无状态短连接,而TCP是有状态长连接。Http不是基于TCP的吗?为什么可以是短连接?
现在了解到Http在每次请求完成后关闭TCP连接,所以是短连接。当我们通过Socket编程直接使用TCP协议的时候,因为我们可以通过代码区控制什么时候打开和关闭连接,只要我们不通过代码关闭连接,那么在客户端和服务器端的过程中,连接就会一直存在,相关的状态数据也会一直保存下来。
HTTP是一种属于应用层的面向对象协议,由于方式简单快捷,适合分布式超媒体信息系统。是1990年提出的。经过几年的使用和发展,不断完善和拓展。目前WWW使用的是HTTP/1.0第六版,HTTP/1.1的标准化正在进行中,已经提出了HTTP-NG(下一代HTTP)的建议。HTTP协议的主要特点可以概括为:1 .支持客户端/服务器模式。2.简单快捷:当客户向服务器请求服务时,只需要传输请求方法和路径。常用的请求方法有GET、HEAD和POST。每种方法都指定了客户和服务器之间不同类型的联系。因为HTTP协议简单,HTTP服务器的程序规模小,所以通信速度很快。3.灵活性:HTTP允许传输任何类型的数据对象。正在传输的类型由内容类型标记。4.无连接:无连接的含义是限制每个连接只处理一个请求。服务器处理完客户的请求并收到客户的回复后,就会断开连接。这样可以节省传输时间。5.无状态:HTTP协议是无状态的。无状态意味着协议没有用于事务处理的内存。缺少状态意味着如果后续处理需要之前的信息,则必须重新传输,这可能会导致每个连接传输的数据量增加。另一方面,当服务器不需要之前的信息时,其响应更快。