长连接 :服务端和客户端都不会关闭已经创建好的连接,每次新的请求发生的时候,仍然使用这个连接,这样的好处是避免了重复建立连接导致的资源消耗,提高性能。不好的是,长连接如果只使用一次,会造成资源浪费,所以适合单个客户端持续访问的情况;另外长连接也存在超时关闭情况,会引起代码的异常。
短连接 :和长连接相反,客户端和服务端在请求结束后立即关闭连接,这样好处是代码比较安全,缺点是每次都建立连接,比较耗费资源;
当前的浏览器默认都是打开长连接,如下:
connection : keep-alive:含义是浏览器
建议(服务端不一定照做或甚至有时候可能不支持) 服务端保持长连接 也可以指定短连接: connection:close
拿httpurlconnection举例,默认情况下,是短连接,如果需要长连接,需要增加代码: setrequestproperty("connection", "keep-alive") 。
但如果用户长时间无操作,机器休眠一段再执行代码就可能报错:io异常,需要注意
-
客户端指定长连接,但是不一定真的会长连接成功,因为还要取决于客户端的配合。