20 HTTP 长连接与短连接

每日一句

纸上得来终觉浅,绝知此事要躬行。

每日一句

Never give up until the fight is over.

永远不要放弃,要一直战斗到最后一秒。

概念

长连接

指在一个TCP连接上可以连续发送多个数据包。

在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。

短连接

指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接。

HTTP的长连接和短连接本质上是TCP长连接和短连接。

HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。

IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包。

从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有加入这行代码:Connection:keep-alive

连接过程

短连接操作步骤是:

连接→数据传输→关闭连接;

长连接通常就是:

连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接

使用场景

长连接:

多用于操作频繁,点对点的通讯,而且连接数不能太多情况.

如数据库连接

短连接

web网站的http服务。长连接更加耗费服务器资源。bulabula..

美文佳句

把握分寸,是一种难得的智慧。那些能看到别人优点的人,往往懂得把别人放在心上,时刻照顾别人的感受。他们会在一言一语中放低自己的姿态,让别人感受到关心和尊重。

人与人之间,不过一场以心换心。学会欣赏别人,别人才会欣赏你。对他人适时地赞美,不需要多么高超的说话技巧,比技巧更重要的是真诚。真心实意、以诚相待,永远是人际交往中最基本的准则。

面试题

HashMap、ConcurrentHashMap 和Hashtable有什么区别?

HashMap ConcurrentHashMap Hashtable
线程是否安全,以及实现线程安全的方式 HashMap不安全 线程安全,ConcurrentHashMap
JDK1.7底层采用分段锁,对整个桶数进行了分割分段(segment),
每一把锁只锁容器其中一部分数据,提高并发访问率。
JDK 1.8 底层采用 Node数组 + 链表 + 红黑树的结构实现,
并发控制使用了 synchronized 和 CAS 操作。
线程安全,底层采用synchronized 来保证线程安全,
直接是方法级别的加锁, ConcurrentHashMap 虽然也是 synchronized
但它是对链表或者红黑树的头节点进行加锁,锁的粒度更小
底层工作原理 底层采用的是 数组 + 链表 ConcurrentHashMap
JDK 1.7 底层采用 分段的数组 + 链表实现。
JDK 1.8 采用的是 数组 + 链表/红黑树
底层采用的是 数组 + 链表
空值问题 HashMap允许使用null值(key和value)都可以。
但是这样的键只有一个,可以有一个或多个键所对应的值为null
HashTable不允许null值(key和value都不可以)
初始容量、扩容与默认负载因子 HashMap 默认初始大小 16,每次扩容 2n,默认负载因子是0。75 HashTable 默认初始大小为11,每次扩容 2n+1

你都知道哪些常用的Map集合?

HashMap、HashTable、TreeMap、LinkedHashMap、ConcurrentHashMap

@RequestMapping 注解有什么用?

@RequestMapping 注解,用于将特定 HTTP 请求方法映射到将处理相应请求的控制器中的特定类/方法。此注释可应用于两个级别:

  • 类级别:映射请求的 URL。
  • 方法级别:映射 URL 以及 HTTP 请求方法。

你好,我是yltrcc,日常分享技术点滴,欢迎关注我:ylcoder

20 HTTP 长连接与短连接的更多相关文章

  1. HTTP的长连接和短连接

        本文总结&分享网络编程中涉及的长连接.短连接概念.     关键字:Keep-Alive,并发连接数限制,TCP,HTTP 一.什么是长连接 HTTP1.1规定了默认保持长连接(HTT ...

  2. HTTP 的长连接和短连接

    一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...

  3. Socket的长连接和短连接

    讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...

  4. 6.1 socket 长连接、短连接

    一般情况下,服务器的长连接和短连接不是服务器说了算,而是客户端说了算.因为服务器是给别人提供业务的,一旦连接建立起来之后,服务器端不会主动把连接给close掉. 客户端发送一笔业务,没有关闭连接,然后 ...

  5. java如何实现Socket的长连接和短连接

    讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...

  6. 网络编程-TCP长连接和短连接

    TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.下面会介绍一个TCP连接是如何建立的以及通信结束后是如何终止的. 一.TCP连接的建立与终止 1.1 建立连 ...

  7. TCP同步与异步,长连接与短连接【转载】

    原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896   这是今天看到的一篇讲到T ...

  8. HTTP的长连接和短连接——Node上的测试

        本文主要从实践角度介绍长.短连接在TCP层面的表现,借助Node.JS搭建后台服务,使用WinHTTP.Ajax做客户端请求测试,最后简单涉及WebSocket.     关键字:长连接.短连 ...

  9. (转)HTTP 长连接和短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...

随机推荐

  1. Vue2的右键弹出菜单(vue-contextmenu)

    给大家推荐一个基于Vue2的右键弹出菜单插件,支持单一SPA页面以及可以在循环绑定中使用. 项目地址为:https://github.com/chIIC/vue-...demo1: 父组件绑定右键事件 ...

  2. CSS揭秘之《背景图案》

    网格 html { background: #58a; background-image: linear-gradient(white 2px, transparent 0), linear-grad ...

  3. java中类变量和实例变量的实质区别?

    类变量和实例变量的区别 相对于static(静态的)或说类的, 本章开始提到的都是instance(实例的)或说对象的. 每个对象都有自己的一份儿对象域或实例域,相互之间没关系, 不共享. 我们可以从 ...

  4. 常见的JVM 面试题

    1.讲一讲JVM的跨平台与跨语言 跨平台 我们写的一个类,在不同的操作系统上(Linux.windows.Mac OS)执行,效果是一样的.这就是JVM的跨平台性. 跨语言 JVM只识别字节码,JVM ...

  5. win11拖动窗口造成崩溃的问题

    问题描述 拖动窗口,随机概率出现 屏幕闪烁 屏幕黑屏 屏幕瞬间分屏 解决方法 windowes11贴吧大神给的方案 1,按下 win键+R 输入 regedit 进入注册表,进入以下路径:计算机\HK ...

  6. Qt QComboBox之setEditable和currentTextChanged及其源码分析

    目录 Qt QComboBox之setEditable和currentTextChanged以及其源码分析 前言 问题的出现 问题分析 currentTextChanged信号触发 源码分析 Qt Q ...

  7. Ubuntu更换apt镜像源

    1. 手动更改 备份镜像源 cd /etc/apt cp sources.list sources.list.bak 修改镜像源 sudo vim sources.list # 复制粘贴下面镜像源,保 ...

  8. Filebeat和logstash 使用过程中遇到的一些小问题记录

    一.filebeat 收集软链文件日志 1.1.场景 由于我们新部署的Nginx 日志都是采用的软链的形式. lrwxrwxrwx 1 root root 72 Apr 6 00:00 jy.baid ...

  9. PCI总线基本概念与历史

    PCI总线历史 这里必须说下 PCI-SIG,1991 年下半年,Intel 公司,并联合IBM.Compaq.AST.HP.DEC 等100 多家公司成立了PCI 集团 并且Intel公司首先提出了 ...

  10. 支持中文!秒建 wiki 知识库的开源项目,构建私人知识网络

    不知道有没有人和我一样,觉得自建的东西是互联网上的"自留地".私人空间,有一种自己的一亩三分地随心所欲的痛快. 比如自建的博客想写什么随笔就写什么,不用取悦读者可以自娱自乐:再比如 ...