20 HTTP 长连接与短连接
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 长连接与短连接的更多相关文章
- HTTP的长连接和短连接
本文总结&分享网络编程中涉及的长连接.短连接概念. 关键字:Keep-Alive,并发连接数限制,TCP,HTTP 一.什么是长连接 HTTP1.1规定了默认保持长连接(HTT ...
- HTTP 的长连接和短连接
一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...
- Socket的长连接和短连接
讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...
- 6.1 socket 长连接、短连接
一般情况下,服务器的长连接和短连接不是服务器说了算,而是客户端说了算.因为服务器是给别人提供业务的,一旦连接建立起来之后,服务器端不会主动把连接给close掉. 客户端发送一笔业务,没有关闭连接,然后 ...
- java如何实现Socket的长连接和短连接
讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...
- 网络编程-TCP长连接和短连接
TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.下面会介绍一个TCP连接是如何建立的以及通信结束后是如何终止的. 一.TCP连接的建立与终止 1.1 建立连 ...
- TCP同步与异步,长连接与短连接【转载】
原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896 这是今天看到的一篇讲到T ...
- HTTP的长连接和短连接——Node上的测试
本文主要从实践角度介绍长.短连接在TCP层面的表现,借助Node.JS搭建后台服务,使用WinHTTP.Ajax做客户端请求测试,最后简单涉及WebSocket. 关键字:长连接.短连 ...
- (转)HTTP 长连接和短连接
1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...
随机推荐
- 【Android开发】【第三方SDK】 安卓版分词功能
功能介绍: 获取剪切板内容,进行分词: 点击分解后的词,填入输入框: 点击叉号将地址拼接起来返回主界面 用途: 增加用户的体验效果,可以直接在微信上复制地址,然后通过此功能确认地址. 附上git地址 ...
- git生成和添加SSH公钥
一 .前言: 大家换电脑.换公司的时候,经常要关联本地git和git线上仓库, 在这里我就顺便记一下,好记性不如烂笔头, 以后找起来来方便 二 .查看自己是否生成过公钥,有的话可以直接拿过来用, 也可 ...
- QGIS源码编译步骤详解——官方新方案
目录 源码下载 环境下载 Cygwin64 OSGeo4W CMAKE Visual Studio 2017 环境配置 配置 编译 方案详细可见源码文件中INSTALL.md. 源码下载 QG ...
- Docker 核心知识回顾
Docker 核心知识回顾 最近公司为了提高项目治理能力.提升开发效率,将之前的CICD项目扩展成devops进行项目管理.开发人员需要对自己的负责的项目进行流水线的部署,包括写Dockerfile ...
- Windows安装使用wget
Windows安装使用wget 0x01 什么是wget 你肯定知道,否则就不会安装了 0x02 下载wget 下载地址:https://eternallybored.org/misc/wget/ 在 ...
- 宝藏考研公众号,考研up篇(参考)
每当刷完题感觉到累了,看完网课觉得倦了,拿起手机看一下我推荐的宝藏公众号和up推送的文章和视频(。・ω・。)ノ♡,这样既可以换换口味解解腻,又可以不断的提升自己,岂不美哉?让别人以为你拿起手机开始摆烂 ...
- linux磁盘概述
硬盘简史 世界上第一块硬盘出生在1956年,至今已有61年半个多世纪的历史.它由IBM公司制造,世界上第一块硬盘:350RAMAC.盘片直径为24英寸,盘片数为50片,重量则是上百公斤,相当于两个冰箱 ...
- Mysql集群搭建-实操
集群安装--准备工作 官网地址 https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html 一.环境 ...
- CentOS7.x 离线安装和开机启动 supervisor 4.2.4
CentOS7.x 服务器 离线安装 开机启动 supervisor 4.2.4
- 函数 装饰器 python
今日内容概要 1.闭包函数 2.闭包函数的实际应用 3.装饰器简介(重点加难点) 4.简易版本装饰器 5.进阶版本装饰器 6.完整版本装饰器 7.装饰器模板(拷贝使用即可) 8.装饰器语法糖 9.装饰 ...