6、网络模块和7、设计模式

不止于编译:用VS2019的类设计器可视化分析ZLToolKit的模块架构与核心类图 本文详细介绍了如何使用VS2019的类设计器可视化分析ZLToolKit的模块架构与核心类图。通过环境配置、启动类图分析的多种路径以及核心模块架构解析,帮助开发者快速掌握线程池、事件轮询器和网络模块的设计模式与实现细节,提升源码阅读效率。 阅读详情

6、网络模块

http 响应码 301 和 302 代表的是什么?有什么区别?

301:永久重定向。
302:暂时重定向。
它们的区别是,301 对搜索引擎优化(SEO)更加有利;302 有被提示为网络拦截的风险。


forward 和 redirect 的区别?

forward 是转发 和 redirect 是重定向:
地址栏 url 显示:foward url 不会发生改变,redirect url 会发生改变;
数据共享:forward 可以共享 request 里的数据,redirect 不能共享;
效率:forward 比 redirect 效率高。


简述 tcp 和 udp的区别?

tcp 和 udp 是 OSI 模型中的运输层中的协议。tcp 提供可靠的通信传输,而 udp 则常被用于让广播和细节控制交给应用的通信传输。
两者的区别大致如下:
tcp 面向连接,udp 面向非连接即发送数据前不需要建立链接;
tcp 提供可靠的服务(数据传输),udp 无法保证;
tcp 面向字节流,udp 面向报文;
tcp 数据传输慢,udp 数据传输快;


tcp 为什么要三次握手,两次不行吗?为什么?

如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。


说一下 tcp 粘包是怎么产生的?

tcp 粘包可能发生在发送端或者接收端,分别来看两端各种产生粘包的原因:
发送端粘包:发送端需要等缓冲区满才发送出去,造成粘包;
接收方粘包:接收方不及时接收缓冲区的包,造成多个包接收。


OSI 的七层模型都有哪些?

物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
数据链路层:负责建立和管理节点间的链路。
网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
会话层:向两个实体的表示层提供建立和使用连接的方法。
表示层:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。
应用层:直接向用户提供服务,完成用户希望在网络上完成的各种工作。


get 和 post 请求有哪些区别?

get 请求会被浏览器主动缓存,而 post 不会。
get 传递参数有大小限制,而 post 没有。
post 参数传输更安全,get 的参数会明文限制在 url 上,post 不会。


如何实现跨域?

实现跨域有以下几种方案:
服务器端运行跨域 设置 CORS 等于 *;
在单个接口使用注解 @CrossOrigin 运行跨域;
使用 jsonp 跨域;


说一下 JSONP 实现原理?

jsonp:JSON with Padding,它是利用script标签的 src 连接可以访问不同源的特性,加载远程返回的“JS 函数”来执行的。


7、设计模式

说一下你熟悉的设计模式?

单例模式:保证被创建一次,节省系统开销。
工厂模式(简单工厂、抽象工厂):解耦代码。
观察者模式:定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有的依赖者都会收到通知并自动更新。
外观模式:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。
模版方法模式:定义了一个算法的骨架,而将一些步骤延迟到子类中,模版方法使得子类可以在不改变算法结构的情况下,重新定义算法的步骤。
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。


简单工厂和抽象工厂有什么区别?

简单工厂:用来生产同一等级结构中的任意产品,对于增加新的产品,无能为力。
工厂方法:用来生产同一等级结构中的固定产品,支持增加任意产品。
抽象工厂:用来生产不同产品族的全部产品,对于增加新的产品,无能为力;支持增加产品族。


Go语言设计模式实战:23种经典模式的Go实现与最佳实践 本文系统介绍了Go语言中23种经典设计模式的实现方式,通过一个分布式应用系统案例,展示了创建型、结构型和行为型模式的Go语言实践。文章强调Go语言"组合优于继承"的哲学,详细讲解了单例、工厂、观察者等模式的Go特有实现,并分析了SOLID原则在设计模式中的基础地位。特别针对Go语言特性,介绍了工作池、错误处理和Functional Options等特有模式。最后指出设计模式应用应结合Go语言简洁哲学,注重代码清晰度和可扩展性,而非机械照搬类图。 阅读详情

相关推荐

深入理解quftp-1.0.7:C++编写的高效FTP客户端库源码分析

文件传输协议(FTP)是用于在网络上进行文件传输的一系列规范。它允许用户使用客户端软件连接到远程服务器,通过命令行或图形界面管理文件与目录。FTP在不同的操作系统和网络环境中广泛支持,其简单性与易用性让它成为文件共享的经典方式。Qt的网络模块是其提供的一个功能强大的库,用于处理跨平台的网络通信问题。它包含多种类和函数,能支持TCP、UDP、HTTP等多种协议,为应用程序提供了从底层套接字到高级协议抽象的网络通信能力。

weixin_42124497的博客 684

计算机网络—TCP相关知识总结

文章目录TCP 协议如何保证可靠传输校验和序列号/确认应答超时重传连接管理流量控制拥塞控制TCP 三次握手和四次挥手TCP协议概述三次握手和四次挥手的简单回答三次握手四次挥手为什么连接的时候是三次握手,关闭的时候却是四次握手?为什么要TIME_WAIT如果已经建立了连接,但是客户端突然出现故障了怎么办?TCP 粘包产生原因以及解决方法为什么会出现TCP 粘包何为面向字节流什么是粘包、拆包?粘包产生的常见原因粘包的解决方法基于TCP/UDP协议的应用层协议有哪些TCP和UDP的区别是什么?HTTP 与 HTT

1626

ZYNQ开发(2)在Linux系统层上PL-PS通过AXI-DMA传输数据详细步骤及注意事项

参考的网络资料 https://github.com/bperez77/xilinx_axidma/tree/master https://gitlab.gnome.org/HosseinBeheshti/UlteraZed7EV/-/tree/master/petalinux/xilinx_axidma https://www.icode9.com/content-3-925319.html https://blog.youkuaiyun.com/weixin_38218267/article/details/1

aizaiyueye的专栏 3448

JAVA--计算机网络常见面试题

网络分层模型 - OSI七层模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层

Zero摄氏度的博客 1375

XCKU060光纤卡学习资料保存:基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡

基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡 一、板卡概述 本板卡系我司自主研发,基于XilinxUltraScaleKintex系列FPGAXCKU060-FFVA1156-2-I架构,支持PCIEGen3x8模式的高速信号处理板卡,搭配两路40GQSFP+接口,两组64-bitDDR4,每组容量8Gbyte,可稳定运行在2400MT/s。板卡具有自控上电顺序,BP...

3075

海豚调度器(dolphinscheduler)再次使用,添加钉钉预警

1,首先我们部署是海豚调度器 1.3.8版本,由于页面只有邮件预警,所以在了解源码的同时,需要添加钉钉预警 2,说明,这一块是同事搞的,不是我搞的,新版本的dolphinscheduler已经有了钉钉模块,只是新版本还没有发布 3,我们现在只是添加简单的钉钉预警,任务成功或者失败会发送邮件+钉钉 4,具体操作 找到最新的源码devhttps://github1s.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-alert/src/ma...

qq_31866793的博客 3084

Java之网络面试经典题(一)

关于tcp和udp,http和https,forward 和 redirect,以及get和post的面试题

tq02的博客 1698

学习记录-Simpack生成车轮不圆的几种示例

单阶、多阶和实测车轮多边形的添加教程

weixin_51965897的博客 3707

Java面试--网络篇(超级详细,看完迎接offer)

长连接和短连接是指客户端与服务器之间的网络连接状态。短连接:即客户端每发送一次请求,服务器就会响应一次,然后立即关闭连接。这样,每次请求都需要重新建立连接,这样会产生较大的开销。因此,短连接适用于一次性请求数据量较小的情况,例如简单的网页浏览。长连接:即客户端与服务器建立连接后,不关闭连接,客户端可以连续发送多个请求,服务器也会连续响应多个请求,最后在客户端关闭连接或者服务器超时关闭连接时才会关闭连接。这样,客户端可以复用连接,减少了建立连接的开销,也避免了频繁地打开和关闭连接所带来的额外开销。

junjun178的博客 1053

C语言编写Picard迭代和牛顿迭代法

为了完成学校计算方法的作业,花了两个多星期将所有实验报告编写出来,看到同桌找代码的辛苦,优快云也没有这类代码,我只是一时兴起,想分享我写的代码与大家共飨,有错误还请多多指正,代码都不难,也是为了让优快云帮我保存下,我辛辛苦苦做出来的,倘若能给别人带来一丝一毫的帮助,我都万分荣幸。 1:什么是Picard迭代 先弄一个满足f(x) = 0的函数将其转化为x= 正在上传… 重新上传 取消 ...

mohenxiang的博客 4699

[Linux项目实践] LCD Panel的硬件分析及调试

LCD硬件分析 项目使用3.5” TFT-LCD并且支持触摸控制。LCD的硬件可从几个方面学习:1)查看LCD的硬件连线。2)查看数据手册了解寄存器的控制。3)查看LCD DATASHEET了解硬件操作 1)LCD硬件连线 在图中有33个引脚,22根数据引脚和9根控制引脚。 LCD的工作原理:像素点是从左至右,从上至下逐个显示,LCD控制寄存器会从从内存中的framebuffer通

Terry_Yuan的技术专栏 3025

Java——《面试题——网络篇》

在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连 接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的 Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重 新建立一个HTTP会话。而从HTTP/1.1起,默认使用长连接,用以保持连接特性。

行秋的博客 2374

UG二次开发之 三面摆正体代码分析

CIUGUIBlock 是一个从UIBlock 派生的一个类,为什么要从UIBlock 派生出CIUGUIBlock,这是为了兼容低版的UG。如果我们不从的UIBlock 派生控件类对象指针,在UG 8.5以下的版本,会出现编译错误的问题。这是一个简单的入门功能,包括了不少的常用的UF函,下面我们将结合成品代码一起分析一下常用的函数,这对初学者是必要的。根据创建好的UI控件,在 initialize_cb 中创建控件的指针对象。//根据选定的面,指定 X,Y坐标系轴。//根据变换的矩阵,平移实体。

u014657217的博客 351

ZLToolKit网络模块深度剖析:如何设计一个高性能、易扩展的C++网络框架?

本文深入剖析了ZLToolKit网络模块的设计哲学,探讨了如何构建高性能、易扩展的C++网络框架。通过模块化设计、缓冲区优化、事件驱动模型等七个核心决策,ZLToolKit实现了高并发处理能力与架构优雅的完美平衡,特别适合物联网和边缘计算场景。

weixin_30444105的博客 343

5.7 医疗 Agent 实战:构建一个懂“望闻问切”的智能医疗咨询助手

本文介绍了如何构建一个智能医疗咨询助手项目,通过LoRA微调和vLLM部署技术,将通用大模型改造为专业"AI皮肤科医生"。项目采用精简架构:Streamlit前端直接与vLLM推理服务通信,重点展示了微调模型在专业性、安全性和同理心方面的显著提升。实施步骤包括:部署微调模型、构建交互界面,并通过对比测试验证微调效果。项目强调AI仅作为咨询助手而非医生替代品,始终以引导用户寻求专业医疗帮助为核心目标,体现了负责任AI应用的关键原则。

yonggeit的博客 2962

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C++项目 | 集群聊天服务器 | 业务模块

/ 获取单例对象的 函数接口// 线程安全 懒汉式单例// 注册消息以及对应的 handler 回调// 网络模块和业务模块 解耦的核心//获取消息对应的处理器//记录错误日志, msgid 没有对应的事件回调// 使用 muduo 自带的日志系统// 不要endl, 已经封装了else// 处理登录业务//测试用// 处理注册业务////测试用。

weixin_45902047的博客 423

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

每日博客Day7

看了《白日梦想家》电影,感觉自己很喜欢这种摄影风格。风光摄影的画面给人带来的感觉非常的震撼,给人的内心带来一种安静的感觉。昨天晚上是十二点休息的,但是还是早上十一点才起来,这三天都不是很在状态,早上起不来下午的项目效率不是很高,一个下午的时候才看了两节课的内容,项目写起来感觉挺痛苦的。

m0_73202575的博客 185

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

网络(二) HTTP

该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处! 导语         HTTP(HyperText Transfer Protocol,超文本传输协议)是一个客户端和服务器端请求和应答的标准。在Qt的网络模块中提供了网络访问接口来实现HTTP编程。网络访问接口是执行一般的网络操作的类的集合,该接口在特定

道法自然 1075

设计模式浅析

面向对象编程3大特性7大原则一、面向对象的特性三个基本的特性:封装、继承与多态。1、封装面向对象编程核心思想这一就是就是将数据和对数据的操作封装在一起.通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念.2、继承继承体现了一种先进的编程模式.子类可以继承父类的属性和功能,即子类继承了父类所具有的数据和数据上的操作,同时又可以增添子类独有的数据和数据上的操作.例如,...

301

设计模式之设计模式七大原则(详解)单一职责原则、开闭原则、接口隔离原则、依赖倒置原则、迪米特法则、里氏替换原则、组合优于继承原则

设计模式 七大设计原则 什么是设计模式? 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 23中设计模式背后是7大设计原则,也就是说,每个设计模式都属于一个或多个设计原则 7大原则的背后是一个字 分 七大设计原则: 开闭原则、单一职责原则、里氏替换原则、依赖倒置原则、迪米特法则(最少知道原则)、接口隔离原则、

codinglover5的博客 1812

server基本组成

基础结构: 字符串操作封装,例如分隔符等常用操作(string_handle) 对象池封装 位存储(bit_map) 序列化反序列化buffer(octets,能够支持写时拷贝以及压缩功能) 阻塞队列(block_queue) ring buffer 时间封装 json_to_pb,pb_to_json(pb_json_convert) 无锁队列 共享内存 定时器(timer...

MyObject-C的专栏 626

【Java SE】设计模式

Java中禁止使用全局方法。 是否因为static的main方法的存在?Java中不能出现静态内部类,所以无法写出一套包含main方法在内的全局方法?

IN THE ZONE 365

肝了2个月,在GitHub上撸了个Java面试指南,限时免费下载

学习笔记题库非常全面, 大致内容包括:Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈!由于整个面试文档比较全面,内容比较多,篇幅不允许,只能以截图形式展示部分资料。这不,肝了2个月,终于把今年大厂的高频面试题给肝出来了。

javaAnPou的博客 225

node.js零基础学习笔记 二

文章目录前言一、Node.js 事件循环1、事件驱动程序 前言 一、Node.js 事件循环 Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。 Node.js 几乎每一个 API 都是支持回调函数的。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函

weixin_45131334的博客 1516

游戏开发入门系列(目录)

进入游戏行业两年多了,处于一边实践一边学习的状态,一开始身边没有牛人引导感觉确实浪费了一些时间。偶然在Gad上看到这个系列的视频,觉得内容挺全面的,就定了一个月的计划把这些课程都看完了,收获不小,对游戏开发有了更为全面的认识。 如果你想进入游戏行业,觉得学习资料太多很难入门,那不妨先看看这个系列的视频。我对每个课程都做了笔记,如果课程中遇到了什么问题,随时可以向我提问。(当然,我还是建议你先去查...

Jerish的博客 6万+
上一篇: 5、异常模块
下一篇: 8、Spring/Spring MVC
Eastlin_1
博客等级 码龄6年 3109粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值