网安面试会问到的:http的长连接和短连接

《网安面试指南》icon-default.png?t=O83Ahttp://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484339&idx=1&sn=356300f169de74e7a778b04bfbbbd0ab&chksm=c0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene=21#wechat_redirect

《Java代码审计》icon-default.png?t=O83Ahttp://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484219&idx=1&sn=73564e316a4c9794019f15dd6b3ba9f6&chksm=c0e47a67f793f371e9f6a4fbc06e7929cb1480b7320fae34c32563307df3a28aca49d1a4addd&scene=21#wechat_redirect

《Web安全》icon-default.png?t=O83Ahttp://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484238&idx=1&sn=ca66551c31e37b8d726f151265fc9211&chksm=c0e47a12f793f3049fefde6e9ebe9ec4e2c7626b8594511bd314783719c216bd9929962a71e6&scene=21#wechat_redirect

1.以前的误解

很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉。

今天通过一番研究,终于明白了这其中的奥秘。而之前,也看过长连接相关的内容,但一直都是云里雾里的。这次之所以能在这么短的时间里搞清楚,和自己技术的沉淀密不可分。因此,这里借着这个机会,再次强调一下,千万不要试图去研究你研究了很久都整不明白的东西,或许是你的层次不到,也或许是你从未在实际的应用场景接触过,这种情况下你去研究,只会事倍功半,徒劳一番罢了。

回到正题,既然说是误解,那么的误解到底是什么?

那就是一直认为,HTTP连接分为长连接和短连接,而我们现在常用的都是HTTP1.1,因此我们用的都是长连接。

这句话其实只对了一半,我们现如今的HTTP协议,大部分都是1.1的,因此我们平时用的基本上都是长连接。但是前半句是不对的,HTTP协议根本没有长短连接这一说,也正因为误解了这个,导致对于长连接一直不明不白,始终不得其要领,具体下面一段会说到。

网络上很多文章都是误人子弟,根本没有说明白这个概念。这里要强调一下,HTTP协议是基于请求/响应模式的,因此只要服务端给了响应,本次HTTP连接就结束了,或者更准确的说,是本次HTTP请求就结束了,根本没有长连接这一说。那么自然也就没有短连接这一说了。

之所以网络上说HTTP分为长连接和短连接,其实本质上是说的TCP连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才有真正的长连接和短连接这一说。

其实知道了以后,会觉得这很好理解。HTTP协议说到底是应用层的协议,而TCP才是真正的传输层协议,只有负责传输的这一层才需要建立连接。

一个形象的例子就是,拿你在网上购物来说,HTTP协议是指的那个快递单,你寄件的时候填的单子就像是发了一个HTTP请求,等货物运到地方了,快递员会根据你发的请求把货物送给相应的收货人。而TCP协议就是中间运货的那个大货车,也可能是火车或者飞机,但不管是什么,它是负责运输的,因此必须要有路,不管是地上还是天上。那么这个路就是所谓的TCP连接,也就是一个双向的数据通道。

因此,LZ现在甚至觉得,“HTTP连接”这个词就不应该出现,它只是一个应用层的协议,根本就没有所谓的连接这一说,就像FTP也是应用层的协议,但是你有听说过FTP连接吗?(恩,好像是听过,-_-,但你现在知道了,其实所谓的FTP连接,严格来说,依旧是TCP连接)

实际上,说HTTP请求和HTTP响应会更准确一些,而HTTP请求和HTTP响应,都是通过TCP连接这个通道来回传输的。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS开发工程师面试

iOS开发工程师面试题可以涵盖多个方面,包括但不限于iOS开发的基础知识、高级概念、性能优化、架构设计、最新技术等。 1. 基础知识 1.1 请解释iOS中的Xcode是什么,以及它在开发中的作用和功能有哪些? Xcode是用于iOS和macOS等苹果平台开发的集成开发环境(IDE),提供了代…

华为HarmonyOS地图服务 4 - 通过“地图相机“控制地图的可见区域

场景介绍 华为地图的移动是通过模拟相机移动的方式实现的,您可以通过改变相机位置,来控制地图的可见区域,效果如图所示。 本章节将向您介绍相机的各个属性与含义,并移动相机。 相机移动前 …

java 后端数据权限解读

一、代码 package com.dkd.framework.aspectj;import com.dkd.common.annotation.DataScope; import com.dkd.common.core.domain.BaseEntity; import com.dkd.common.core.domain.entity.SysRole; import com.dkd.common.core.domain.entity.SysUser; import com.dkd.common.…

开源PHP导航网源码/精美简约网址导航收录网站/QQ技术导航程序

源码简介: 一款给力的开源PHP导航网源码,它不仅外观精美简约,还是个网址导航收录网站/QQ技术导航程序哦! 在信息爆炸的时代,找网页就像大海捞针一样难。但是有了像PHP 导航网这样的神器,一切都变得简单了…

One API本地开发环境搭建

One API本地开发环境搭建 简介 摘要 : 本文介绍如何在本地搭建 One API 开发环境,包括安装 Go 语言和 GoLand IDE,以及如何新建项目和配置数据库信息。通过简明的步骤说明,帮助开发者快速完成基本的开发环境配置,方…

搜维尔科技:SenseGlove DK1触觉反馈手套,远程操作机器人任务,保证你工作时的安全

SenseGlove DK1触觉反馈手套,实现远程操作机器人 搜维尔科技:SenseGlove DK1触觉反馈手套,远程操作机器人任务,保证你工作时的安全

Vue3 + ts + Vite 不同屏适配:px 转 vw

1. 下载插件 npm i postcss-px-to-viewport autoprefixer amfe-flexible --save-dev 2. 配置 (1)在 main.ts 导入依赖 import amfe-flexible/index.js(2)在项目根目录下编写配置文件 postcss.config.cjs module.exports {plu…

STM32与51单片机的区别:是否应该直接学习STM32?

STM32与51单片机的区别:是否应该直接学习STM32? 在单片机的世界里,STM32和51单片机都是非常重要的角色。对于初学者来说,是否可以直接跳过51单片机,直接学习STM32,这个问题一直存在争议。让我们深入探讨这…

AndroidManifest.xml 文件中的 package 属性不再是强制要求定义

在 Android 的较新版本中,AndroidManifest.xml 文件中的 package 属性不再是强制要求定义应用程序包名的位置,而是通过 build.gradle 文件中的 namespace 属性来设置包名。这种更改的主要目的是更好地将应用程序包名和代码包结构分离,同时简化…

Vue:默认插槽

目录 一.性质 1.内容分发 2.无名称标识 3.作用域 4.使用方式 二.使用 1.父组件 2.子组件 三.代码 1.父组件代码 2.子组件代码 四.效果 一.性质 1.内容分发 默认插槽允许组件的使用者定义一些内容,这些内容会被插入到组件模板中的特定位置。这有助于实…

TomCat乱码问题

TomCat控制台乱码问题 乱码问题解决: 响应乱码问题 向客户端响应数据: package Servlet;import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servl…

【HTTP】方法(method)以及 GET 和 POST 的区别

文章目录 方法(method)登录上传GET 和 POST 有什么区别(面试)区别不准确的说法 方法(method) 首行中的第一部分。首行是由方法、URL 和版本号组成 方法描述了这次请求想干什么,最主要的是&…

Unity3D入门(一) : 第一个Unity3D项目,实现矩形自动旋转,并导出到Android运行

1. Unity3D介绍 Unity3D是虚拟现实行业中,使用率较高的一款软件。 它有着强大的功能,是让玩家轻松创建三维视频游戏、建筑可视化、实时三维动画等互动内容的多平台、综合型 虚拟现实开发工具。是一个全面整合的专业引擎。 2. Unity安装 官网 : Unity…

[Redis][事务]详细讲解

目录 0.什么是事务?1.Redis 事务本质2.Redis 事务意义3.事务操作1.MULTI2.EXEC3.DISCARD4.WATCH5.UNWATCH 0.什么是事务? Redis的事务和MySQL的事务概念上是类似的,都是把一系列操作绑定成一组,让这一组能够批量执行Redis事务和M…

苹果macOS 15.0 Sequoia正式版发布:iPhone应用镜像玩、手机消息电脑知

9月17日苹果向 Mac 电脑用户推送了 macOS 15 更新(内部版本号:24A335),除了引入数个 iOS 18 的新功能外,macOS 15 Sequoia 还带来了全新的 Continuity 功能 ——iPhone 镜像。 iPhone 镜像功能可以让用户直接在 Mac 上…

Ubuntu 安装和使用 Fcitx 中文输入法;截图软件flameshot

一、Ubuntu 安装和使用 Fcitx 中文输入法 在 Ubuntu 上安装和使用 Fcitx 输入法框架是一个常见的选择,特别是对于需要中文输入的用户。以下是详细的步骤来安装和配置 Fcitx 输入法: 1. 安装 Fcitx 和相关输入法 首先,更新你的包列表并安装…

单词搜索问题(涉及递归等)

目录 一题目: 二思路解释: 三解答代码: 一题目: newcode题目链接: 单词搜索_牛客题霸_牛客网 二思路解释: 思路:个人理解是找到word中的第一个元素,然后去递归的上下左右查找&am…

HTTP常见状态码 HTTP的逐步发展(通俗易懂版)

HTTP常见状态码 HTTP 状态码是服务器返回的响应结果的一个数字标志,用于告诉客户端(例如浏览器)请求的处理情况。为了方便记忆,我们可以简单地分成几类并用通俗的方式来理解: 1. 2xx 成功类:请求成功&…

跳跃列表(Skip List)详解

什么是跳跃列表? 跳跃列表是一种概率性的数据结构,旨在提高链表的搜索、插入和删除效率。它通过在普通链表的基础上增加多个层次,以实现更快的访问速度。跳跃列表的设计灵感来源于跳跃图(Skip Graph)和多层索引的概念…

com.kingbase8.util.KSQLException: ERROR: permission denied for table xxx

前言 在信创改造中,数据库替换为国产数据库是不可缺少的一部分。而可替换选项中多数选项无非是人大金仓和达梦数据库二选一。本文将介绍人大金仓在使用过程的问题以及解决办法。 问题 在使用人大金仓数据库后,程序运行报错 com.kingbase8.util.KSQLEx…