zoukankan      html  css  js  c++  java
  • HTTP短连接和长连接

    HTTP是无状态的,无状态指的是HTTP协议不具备保存之前发送过的请求或响应的功能。每次的请求是相互独立的,请求结果不会互相影响,服务器也不会保存客户端的状态,客户端必须每次带上自己的状态去请求服务器。在无状态的http协议下,服务器会保存客户端每次网络请求对数据的修改,但这跟保留每次访问的数据是不一样的,保留的只是会话产生的结果,而没有保留会话。

    一、短连接和长连接

    1.短连接

    连接——>传输数据——>关闭连接

    浏览器和服务器每进行一次通信,就建立一次连接,但通信结束就中断连接,这就是短连接。也就是说短连接是指socket连接后,发送接收完数据后马上断开连接。但是,通过设置cookie和session,能够让网络请求是有状态的。

    2.长连接

    连接——>传输数据——>保持连接——>传输数据——>......——>直到某一方关闭连接(一般是客户端关闭连接)

    长连接是指建立连接后,不管是否使用都保持连接,但安全性较差。

    3.长连接和短连接比较

    短连接
    优点:管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。
    缺点:如果客户端请求频繁,将在TCP的建立和关闭操作上浪费较多的时间和宽带。

    长连接
    优点:省去较多的TCP建立和关闭操作,减少浪费,节约时间
    缺点:随着客户端的连接越来越多,服务器会保持过多的连接。解决方法就是:
        1.关闭一些长时间没有发生请求的连接;
        2.限制每个客户端的最大连接数,避免恶意的客户端拖垮服务器。

    二、HTTP长连接与TCP/IP长连接的关系

    HTTP的长连接和短连接本质上是TCP的长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传输数据包,使得接收方收到发送方的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。

    HTTP1.0中默认使用短连接,但从HTTP1.1开始,默认使用长连接。使用长连接的HTTP协议,会在响应头加上如下信息:

    Connection:keep-alive

    keep-alive会使客户端和服务器有一个保持时间,可以在不同的服务器中设定这个时间。实现长连接需要客户端和服务器都支持长连接。

    不积跬步,无以至千里。不积小流,无以成江海!
  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/rouqinglangzi/p/9470918.html
Copyright © 2011-2022 走看看