TCP/IP 模型 TCP/IP 三次握手 第一次握手:建立连接时,客户端向服务器发送第一个SYN包,并进入SYN_SENT状态,等待服务器确认 第二次握手:当服务器收到客户端的请求后...(SOCK_STREAM):流式套接字提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的正确性和顺序性。...数据报socket(SOCK_DGRAM):数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议UDP。...listen()函数:在服务端程序成功建立套接字和与地址进行绑定之后,还需要准备在该套接字上接收新的连接请求。此时调用listen()函数来创建一个等待队列,在其中存放未处理的客户端连接请求。...当用在TCP时,后面的几个与地址有关参数不起作用,函数作用等同于send()和recv();主要用在UDP时,这两个函数可以自动寻找指定地址并进行连接。
前言 在使用SSE的时候,前端可以实现流式传输,但是有个问题就是这是一个独占的连接,相当于如果你不手动关闭连接,就会一直请求,一直连接调用接口,而且发送的数据格式也是按照定义好的协议来 而使用C#自带的...IAsyncEnumerable也可以实现流式传输,不过返回的数据是在之前返回的基础上进行累加,需要自己做处理,我的例子是使用的是ajax来实现,群友有提供了fetch的实现代码,接下来我们看看c#IAsyncEnumerable...实现传输的ajax方案和fetch的代码吧。...AJAX 下面是源码和gif效果展示,可以看到我们返回的是一个IAsyncEnumerable类型的结果,在第二段代码,我们都知道ajax是根据xhrhttprequest封装的,所以自然也可以用一些它的一些事件...,所以我们在此处用了onprogress来监听我们请求的进度,在这里我们就可以获取到每一次写了哪些东西,从而实现一个流传输,因为后端写也是一个字节一个字节去写的,前端接收也是如此。
引言 在使用SSE的时候,前端可以实现流式传输,但是有个问题就是这是一个独占的连接,相当于如果你不手动关闭连接,就会一直请求,一直连接调用接口,而且发送的数据格式也是按照定义好的协议来,而使用...c#自带的IAsyncEnumerable也可以实现流式传输,不过返回的数据是在之前返回的基础上进行累加,需要自己做处理,我的例子是使用的是ajax来实现,群友有提供了fetch的实现代码,接下来我们看看...c#IAsyncEnumerable实现传输的ajax方案和fetch的代码吧。...AJAX 下面是源码和gif效果展示,可以看到我们返回的是一个IAsyncEnumerable类型的结果,在第二段代码,我们都知道ajax是根据xhrhttprequest封装的,所以自然也可以用一些它的一些事件...,所以我们在此处用了onprogress来监听我们请求的进度,在这里我们就可以获取到每一次写了哪些东西,从而实现一个流传输,因为后端写也是一个字节一个字节去写的,前端接收也是如此。
4、先说效果机票前端首次在核心业务中(机票航班列表)使用 SSE 技术,机票列表页由原先客户端串行请求获取多批次航班数据变为一次请求由服务持续推送数据给客户端。...1)使用 SSE 前(如下图):1)客户端需要发起两次请求获取完整航班数据;2)服务端采用预取优化:在响应第一次请求时,提前获取第二批数据并缓存至 Redis(降低客户端第二次请求响应的耗时);3)客户端发起第二次请求时...2)使用 SSE 后(如下图):客户端发送一次 SSE 请求,服务端实时推送数据到客户端,服务间上下游同样采用流式传输,实现客户端到服务端全链路流式通信。...redis 的发布订阅流程,简化了代码架构;4)资源利用率提升:减少冗余请求(只有一批数据时,客户端不用再次请求问询服务)。...使用 SSE 与传统串行请求的性能实验数据对比:b)当网络传输耗时大于服务端处理耗时,减少请求次数可以显著降低整体延迟。
它允许浏览器向跨源服务器发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 对CORS协议不了解的同学,可以猛击这里。 今天我们来讨论其中的cookie传输问题。...test.php种cookie name:ball test.html第二次发起请求时,希望将cookie(name:ball)带给test.php。 1....如果请求时不需要带cookie,此字段可以写*,表明该站接收所有来源的ajax请求。如果需要传输cookie, 该字段只能写一个固定来源。...访问test.html,第二次时如愿在console里看到 {"name":"ball"} 这说明: b.com成功种下了cookie a.com成功在跨域ajax请求中带上了cookie 2....既然2.1中的结论是cookie种到了b.com下,那么在发ajax请求时去掉 xhrFields:{ withCredentials:true } test.php是否能成功在b.com下种cookie
cache 属性是true(默认值)时:在第一次请求完成之后,如果地址和参数不变化,第二次去请求,会默认获取缓存中的数据,不去读取服务器端的最新数据。...cache 属性是flase(默认值)时:每次读取的是最新的数据。 ajax 缓存只对GET方式的请求有效,因为浏览器认为POST请求提交的内容必定有变化,所以不走缓存。...注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载) json 返回 JSON 数据 。...text 返回纯文本字符串 processData 在使用jQuery的$.ajax()方法的时候参数processData默认为true(该方法为jQuery独有的) 默认情况下会将发送的数据序列化以适应默认的内容类型..." 在 ajax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件。
直到最近,我们在开发一个滚动日志输出功能时,才深入了解到它的强大之处。*ResponseBodyEmitter 的作用*相较于 SSE 技术,ResponseBodyEmitter 更加简单易用。...*使用场景*长轮询:服务器在有数据时会立即响应客户端请求,若暂无数据,则保持连接开放,等待数据到来。**服务器推送事件 (SSE)**:服务器能够持续不断地向客户端推送各类事件,实现实时交互。...流式传输:可逐步发送大量数据,像文件下载或者实时数据流传输等场景都适用。异步处理:在处理耗时任务时,能逐步返回处理结果,避免客户端长时间等待,提升用户体验。...*业务场景举例*在实际业务中,ResponseBodyEmitter 有着广泛的应用,比如进度条的实时更新、实时聊天功能、股票价格的实时更新、系统日志的流式输出以及 AI 的流式响应等。...在处理类似 AI 这种响应式的流式输出场景时,相较于 SSE,ResponseBodyEmitter 作为 Spring 提供的轻量级流式传输解决方案,在 HTTP 协议兼容性方面表现更优。
通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。XMLHttpRequest 在 AJAX 编程中(比如 jquery)被大量使用。...发起请求:使用send()方法发送请求。 处理响应:在事件处理程序中处理响应数据,通常使用responseText或responseXML来访问响应内容。...在上面的例子中,我们等待 XHR 对象的状态变为 4(表示请求完成)并且 HTTP 状态码为 200(表示成功响应)时,解析响应数据。...更现代的架构:Fetch API 是建立在 Promise 和 Stream 之上的,支持更灵活的数据处理和流式传输。...跨域请求: Fetch 在跨域请求方面更灵活,支持 CORS。 流式传输: Fetch 支持可读流,适用于大文件下载。 维护性: Fetch 更容易维护和扩展。
引言 在现代分布式系统中,高效的数据传输是核心需求。gRPC作为Google开源的高性能RPC框架,其流式传输能力在处理大规模数据、实时通信等场景中展现出巨大优势。...本文将深入解析gRPC流式传输的原理、实现与应用。 一、gRPC流式传输基础 1....与传统RPC对比 特性 传统RPC gRPC流式传输 通信模式 请求-响应 持续双向数据流 数据包数量 1次请求1次响应 多个消息持续传输 适用场景 简单查询 实时数据流、大文件传输 2....Streaming):客户端和服务端同时发送消息流 二、实战:文件传输服务 我们通过一个文件分块传输服务演示双向流式传输。...随着云原生架构的普及,流式处理将成为微服务通信的重要范式。 技术雷达:gRPC 2023生态报告显示,流式接口使用率年增长47%,已成为实时数据处理的首选方案。
为什么要使用Application Cache技术? 在HTML5之前,我们需要接入网络才能访问,这毫无疑问是网站多次请求服务器,造成速度变慢,对于PC用户,网络相对比较稳定,载入速度也不会差太多。...(2)LocalStorage:通常用于AJAX请求缓存,存储非关键性AJAX数据。...manifest文件中的cache部分不能使用通配符,必须手动指定,没有自动化工具。 在开发过程中,通过ajax与WCF进行数据交互时,常常头一次或头几次数据加载成功,以后均加载失败。...因为启用的web离线缓存机制,所以每次ajax加载数据时是从本地缓存文件中读取的,用的是ajax的get模式,因为get模式缓存,所以不会重新向服务器请求数据,导致数据加载失败。...由更新机制来说,首次更新manifest时,因为页面加载已经开始甚至已经完成,缓存更新尚未完成,浏览器仍然会使用过期的资源;浏览器是当Application Cache有更新时,该次不会使用新资源,第二次才会使用
举例: 搜索引擎搜索框输入字符后下边显示可能要搜索的内容; 注册账号是显示昵称是否被使用 AJAX使用步骤 1.创建XMLHTTPRequest对象 2.open打开与服务器的连接 3.向服务器端发送请求...get请求数据在url上,但send函数参数不能为空,所以 xmlHttp.send(null); 4.监听服务器响应 XMLHttpRequest对象在使用的时候有5种状态,每个状态对应着一个值: 0...2.$.getScript 通过 AJAX 请求来获得并运行一个 JavaScript 文件,即可以根据需要来决定是否引入 $.getScript("test.js", function(){ alert...发送信息至服务器时内容编码类型。...这里有json字符串和json对象两个概念 json字符串就是数据交换传输的信息格式,json对象其实是javascript对象的子集 数据传输或转换时,先将原数据转换成json字符串,使用时再将json
页面切换快: 页面每次切换跳转时,并不需要做`html`文件的请求,这样就节约了很多`http`发送时延,我们在切换页面的时候速度很快。...- 在js中尽量减少闭包的使用 - 尽量合并css和js文件 - 尽量使用字体图标或者SVG图标,来代替传统的PNG等格式的图片 - 减少对DOM的操作 - 在JS中避免“嵌套循环”和...node是单线程的,异步是通过一次次的循环事件队列来实现的.同步则是说阻塞式的IO,这在高并发环境会是一个很大的性能问题,所以同步一般只在基础框架的启动时使用,用来加载配置文件,初始化程序什么的. 7、...ajax 什么是ajax?ajax有什么优缺点? ajax不是语言,ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术 优点 1、最大的一点是页面无刷新,用户的体验非常好。...`在OSI` 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层 5.
以下是国密算法在HTTP/HTTPS中的具体应用场景和优势:SM2加密:用于对传输的数据进行加密,确保数据在传输过程中的保密性。例如,对用户的敏感信息(如密码、个人资料等)进行加密传输,防止被窃取。...例如,在文件上传下载过程中,使用SM4加密可以保护文件内容的安全。...该协议特点:✔️ 基于HTTP长连接✔️ 服务端主动推送✔️ 自动断线重连1、 适用场景:▸ 实时日志推送▸ 新闻热点推送▸ 股票行情订阅▸ 直播间弹幕流▸ AI模型响应流式传输:如ChatGPT、DeepSeek...六、gRPC✔️ 基于HTTP/2:多路复用+头部压缩✔️ Protocol Buffers:二进制编码,体积比JSON小60%✔️ 流式传输:适合视频分块上传/日志实时收集适用场景:内部服务通信、流式数据传输...操作技巧:服务反射:自动获取Proto文件,无需手动上传。流式调试:支持服务端流、客户端流(后续还会支持双向流)。操作建议:Proto管理:服务反射失败时,本地导入Proto文件,记得勾选依赖目录!
▸ SM4加密:适用于对大量数据的加密传输,具有较高的加密效率。例如,在文件上传下载过程中,使用SM4加密可以保护文件内容的安全。Apipost 内置sm国密算法库,可以在脚本中直接使用。...适用场景▸ 实时日志推送▸ 新闻热点推送▸ 股票行情订阅▸ 直播间弹幕流▸ AI模型响应流式传输:如ChatGPT、DeepSeek等AI开放接口,返回的大量文本数据分批推送。...每次接收到事件时,消息将依次显示在消息列表中,并且支持点击查看消息详情。...小60%▸ 流式传输:支持服务端/客户端/双向流,适配实时日志、文件分块等场景;适用场景内部服务通信、流式数据传输。...操作技巧▸ 服务反射:自动获取Proto文件,无需手动上传。流式调试:支持服务端流、客户端流(后续还会支持双向流)。操作建议▸ Proto管理服务反射失败时,本地导入Proto文件,记得勾选依赖目录!
▸ SM4加密:适用于对大量数据的加密传输,具有较高的加密效率。例如,在文件上传下载过程中,使用SM4加密可以保护文件内容的安全。Apipost 内置sm国密算法库,可以在脚本中直接使用。...适用场景▸ 实时日志推送▸ 新闻热点推送▸ 股票行情订阅▸ 直播间弹幕流▸ AI模型响应流式传输:如ChatGPT、DeepSeek等AI开放接口,返回的大量文本数据分批推送。...每次接收到事件时,消息将依次显示在消息列表中,并且支持点击查看消息详情。...小60%▸ 流式传输:支持服务端/客户端/双向流,适配实时日志、文件分块等场景;适用场景内部服务通信、流式数据传输。...操作建议▸ Proto管理服务反射失败时,本地导入Proto文件,记得勾选依赖目录!▸ 流式数据提前和服务端约定数据结束标志,避免无限等待。
HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。...第一个数据块传输完成后会使用同样的方式传输下面的数据块直到整个文件上传完成。...c.在数据块传输成功后但客户端没有告诉namenode之前如果namenode宕机那么这个数据块就会丢失。 d.在流式复制时,逐级传输和响应采用响应队列来等待传输结果。...c.在流式复制时如果有一台或两台(不是全部)没有复制成功,不影响最后结果,只不过datanode会定期向namenode汇报自身信息。...数据操作日志文件是用来记录元数据操作的,在每次改动元数据时都会追加日志记录,如果有完整的日志就可以还原完整的元数据。主要作用是用来完善fsimage,减少fsimage和内存元数据的差距。
大概背景就是:前期已经完成在系统里接入ES查询日志并展示,各个微服务将接收上游和请求下游的相关信息(比如模块、接口、错误码等)打印并收集到ES中,我们想给用户直观展示一个从用户端到最终数据端的一个请求调用链路图...,所以直接需要两次请求来完成SSE流程: 第一个请求使用Axios往后端发送请求,将需要传输给大模型的数据传递到后端,后端通过唯一ID将其缓存; 第二个请求即是SSE请求,原生EventSource只支持...GET,所以我们可以在路径中拼接上一个请求的ID传递给后端,后端通过ID查询上一请求的缓存数据发给大模型接收流式数据; 后面对这个流程进行了一次优化,第一次请求就发送数据给大模型,接收大模型第一条消息则成功...,此时如果大模型API异常(超时)则可以不用发送第二次请求了,以免第二次请求又没有数据。...,后端使用python脚本分别写了一个支持GET和POST请求方法的SSE样例 sse-get.py文件sse-post.py文件sse.js文件 sse-get.py文件 from flask import
有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回数据...在发送密码或其他敏感信息时绝不要使用 GET ! POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 可见性 数据在 URL 中对所有人都是可见的。...用的都是同一个传输层协议,所以在传输上,没有任何区别。...【误解】 经测试,使用ajax采用GET方式请求静态数据(比如html页面,图片)的时候,如果两次传输的数据相同,第二次以后消耗的时间将会在10ms以内(chrome测试),而POST每次消耗的时间都差不多...所以,在可以使用get请求通信的时候,不要使用post请求,这样用户体验会更好,当然,如果有安全性要求的话,post会更好。
请求包(应用层 -> 传输层 -> 网络层 -> 数据链路层)) 服务端接受到http请求包后开始处理请求包(数据链路层 -> 网络层 -> 传输层 -> 应用层) 在服务器收到请求之后,服务器调用自身服务...如图所示 在浏览器中输入url 在浏览器中输入的是一个网址,是不能直接用来进行连接的,因而就要使用DNS地址解析将输入的URL网址转换为IP地址。...第一次握手:建立连接时,client发送syn包到server 第二次握手:server收到client的syn包,使用ack回复client的syn包,同时server也会发送syn包.所以server...它为了方便传输,将大块的数据分割成以报文段为单位的数据包进行管理,并为它们编号,方便服务器接收时能准确地还原报文信息(MTU)。...TCP协议确认保证传输的安全可靠的方式: ack确认 超时重传 连接管理 服务器返回响应的文件 client收到http的response,使用http协议解析 Http Response: Response