Http短链接、无状态

简介:

http协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议,所有的WWW文件都必须遵循这个标准。http是基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

http协议工作于客户端-服务端架构上,浏览器作为Http客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

HTTP特点:

  1. 支持客户/服务器模式。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST等。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  4. HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象,采用这种方式可以节省传输时间。
  5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

客户与服务器之间的http连接是一种一次性连接,我们在每一次连接中只能处理一个请求,当服务器返回本次请求的应答后边立即关闭连接,下次请求需要重新建立连接。这种一次性连接主要是考虑到WWW服务器是面对互联网中成千上万个用户,且只能提供有限个连接,所以服务器不能让一个连接处于等待状态,及时的释放连接可以提高服务器的执行效率。

每次连接只处理一个请求,采用这种方式可以节省传输时间,并且节省连接资源。但现在的网页越来越复杂,我们在客户端浏览器访问的某个html或者其他类型的Web页中包含有其他的web资源(如javascript文件,图像文件,CSS文件等),每遇到这样的一个web资源,浏览器就需要重新建立一个http会话,可见这种短连接的形式已经不适合当前的环境。在最早http/0.9版本上,使用的就是这种一次性连接,在http/1.0中仍然是使用这种一次性链接的方式,但是已经开始有了长连接也就是持久连接的概念,并且有了初步的支持。到1999年的http/1.1已经默认支持长连接,使用长连接的http协议,会在响应头加入Connection:keep-alive。在别的博主那里有了解到,真正的长连接短连接指的并不是http连接,因为http只是一种简单的请求-响应协议,真正意义上的连接指的是TCP的连接。TCP连接是一个双向通道,他是可以保持一段时间不关闭的。

在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

TCP短连接长连接都由客户端发起,而TCP长连接的保活功能主要为服务器应用提供。如果客户端已经消失而连接未断开,则会使得服务器上保留一个半开放的连接,而服务器又在等待来自客户端的数据,此时服务器将永远等待客户端的数据。保活功能就是试图在服务端器端检测到这种半开放的连接。也因为短连接、长连接的实现在HTTP之外,与HTTP无关。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值