首页 文章 精选 留言 我的

精选列表

搜索[零代码平台],共10000篇文章
优秀的个人博客,低调大师

从零用Rust编写正反向代理,一个数据包的神奇HTTP历险记!

wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子 项目地址 国内: https://gitee.com/tickbh/wmproxy github: https://github.com/tickbh/wmproxy 数据包的自白 我是一个小小的数据包,今天我将跟着大部步出发,去体验传说中的HTTP之旅,听前辈说那是一场精彩绝伦的出走之旅。 旅行准备 首先,我先来到了出发地,他们在整理各项目数据,包括选择公交(HTTP1)还是自驾(HTTP2)或者询问是否有私家车(H2C),然后目的地是哪个房间(Path),是否防止旁边的人窥探(TLS),选择轻装上阵还是带上行李箱(GET或POST等),还有其它杂七杂八的事情(是否支持压缩,数据长度等)。 我问:“导游,我们什么时候可以出发”。 导游答:“别急,这躺路我熟的很,这次的数据有点重要,正在向对方获取加密信息,这是防止偷窥的秘诀。万一在中途被截走,那会使我们损失惨重。” 过了一会,我又问:“现在可以出发了吗?” 导游答:“可以了,我们通过交换已经将约定的加密信号确定下来了,让我先给你做个加工。” 我就跟着导游来到了一个加工场,进入其中,任由它来操作,当我走出加工场的时候,我突然发现我的模样完全跟变了个人似的。我差点认不出我自己。 我们就来到了公交站台(浏览器),他看到我们的到来,快速的帮我们排上了班次,紧接着,我们跟着车一直的往前走,我东看看西瞧瞧,我有看到像我一样乔装的自己都认不出来的,也看到了没有经过打扮的,都可以看的一清二楚,我猜那一定不怕别人窥探的吧(没用TLS)。 旅行中转 突然公交车停了下来,播报着:“欢迎来到wmproxy”。 我有点疑惑的问导游:“我记得我们的目的地不是这里,为什么在这里停下来?”。 身经百战的导游对我说:“看来我们的目的地被隐藏起来了,用来更好的保护目的地家园不被破坏,只有通过这里中转走专属的路线才能到达目的地。” 接着我急着问:“那我们在这里要做啥吖?” 导游回答:“接下来我们走的就是私人的领域了,我们路上看到的都是主人的朋友,并不会把我们的秘密泄漏出去,所以我们需要把我们身上打扮的乱七八糟的还原。” 我就跟随着来到了加工场,加工场把我们身上乱七八糟的装扮通过特定的方法进行了还原(卸掉TLS转HTTP),走出加工场,我又看到帅气的自己。我问:“那么接下来我们做什么?” 导游回答:“根据我们原来的信息,他现在要安排我们做私家车(HTTP2),好灵活地做响应,你看,那车已经来了,我们一起上车吧。” 我们坐上了私家车,我发现我带的东西被切割成了奇奇怪怪的几个部分。我就问司机:“为什么原来我就一个整体,现在变成了奇怪的几个部分?” 司机笑着回答:“在这车里,通常副驾驶上坐着Header,也就是你带着的那些属性全都组装在这里了,后排通常就是额外的数据包,当然你们数据包兄弟可能会很多,你看看你的手臂上,跟着相同导游的此刻都被挂上了红色的布。” 我才发现,原来刚在加工场的时候还帮我和导游都做上了特殊的标记了吖,而且我还发现,每个人头上还顶着一个特殊的帽子。包括了颜色,还有一串特殊的数字。看起来附带了我身高体重(实际长度)这些信息。 旅行到达 私家车停在了一个漂亮的房间前面,我想这是旅程的目地吧。 此时我终于知道我这躺的任务了,原来我需要来这里获得一个重要的文件,这文件数据量还大的有点夸张,是我来时数据的上万倍(Content-Length)。 这时候我有点慌乱的找到导游:“这要带的数据那么多,那么重要,我怎么样才能把他们安全的带回去吖。” 导游这时候就说:“你还记得我们开始带的工具包列表(Accept-Encoding)吗?” 我说:“记得记得,当时好像把名字记下来了,好像是说家里有真空机(gzip),压缩机(brotli)吧?” 导游答:“对的对的,你看到那边的那座大山(gzip)吧,等下我们会带着数据兄弟们爬上那大山,到时候我们就可以瘦很多,那样子接下来我们动用的资源会小很多。” 我们带着浩浩荡荡的数据大军去爬了山,我确实发现我们的个头都小了许多,但是我觉得这大军的数量远远没有一开始说的上万倍。 我问:“这大军的数量不对吖,不会有兄弟们迷路了吧?” 导游笑着回答:“这边的房子就这么大,如果把数据一下子从异次元全部召唤出来(文件中读取)那不直接把这小小的房子全部挤满了吖,看到上面那个指示牌了没有?” 只见指示牌上面写着:“当前房间可容纳人数4096/4096”,此时前面有100个兄弟走出了房间就变成了,3996/4096,然后又看到异次元召唤出了新的100个兄弟。 此时我晃然大悟:“原来这东西就是控制着不会膨胀的秘密吖(内存缓冲区已满)。” 旅行返程 当我们瘦完身后,就有一辆辆的小汽车来接我们回家了 此时一辆辆汽车大军稳稳的向前行驶,突然间速度慢了下来,我就很好奇的问司机:“刚刚不是速度很快的吗,怎么到这个地方突然间速度就慢下来了吖?” 司机指了指前面说:“前面是一段较窄的路,你看看两边的车流,如果全速全进的话,大家都会堵死在这段路上,所以你看上方,有个牌子100辆/分钟,也就是一分钟只能通过100辆,要不然就会挤到前面的窄路上,所以我们现在速度是慢了下来,但是我们这条线路还是可以每分钟可以通过100辆,也不算慢。” 于是我就往两边看,两边的车也都是差不多的速度在通行,慢慢的我们来到了比较狭窄的路,确实这里无法通行通行太多的车(从内网转入公网,传输能力下降),我想:“高负载的情况下确实只能通过这种方式来限制,要不然此刻交通应该瘫痪掉了吧,大家越急着挤,越没法正常通行。” 紧接着,我们又回到了中转站了,我突然很好奇的想着:“要是我们兄弟全部挤到中转站这里,他会不会直接被挤满了?” 这时我听到导游说:“别发呆了,公交车来了,我们该出发了。” 我顿时有点迷惑:“我们后面不是还有很多兄弟吗?不用等他们集合完再出发吗?” 导游就笑着说:“如果全部集合在出发,那我们就得停下来等,然后启动的时候后面的兄弟又得等前面的走完才能走,这样子速度就慢了很多,这是其一。另外,你看这中转台上也容不下这么多的兄弟同时停留在这里,他根据我们帽子的颜色帮我们分好了公交车啦,上车!”(此时代理只处理了头部数据,body数据只做简单的转发) 我突然想到我们现在来到了公共区域,我问导游:“我们是不是得保证我们的数据安全,现在我们都是属于公共区域了。” 导游回过神来说,对对我们先去加工厂处理下,那个是我们的专属加工场。还好你提醒,要不然数据就不安全了。(TLS加密) 我们从加工厂出来乘上公交车,一路平稳的来到了出发的站台(浏览器),这时候我们一个个从加厂场出来(TLS解密),我们的兄弟有点多,浏览器的站台有点放不下了,我就问:“我们不是到达了目的地了吗?他怎么不还来接我们到目的地?” 导游笑着说:“此次我们带回来的信息量有点大,而且还是经过了瘦身的,我们等下去那个标gzip的房间进行处理,然后你看那边有个异次元空间(临时文件),我们先到那里下,好让后来的兄弟有地方住。” 我跟着来到了异次元空间,里面是一个空旷,超大的空间,我们这么多兄弟秩序井然的排列在一起,直到最后一个兄弟到达,我们就看到了前面有一个出口,我就问:“从那个出口出去我们就完成任务了吗?” 导游就回答:“从那个出口,不要乱,现在兄弟都到了,知道大家各自的位置,就不会乱套了,大家排队往前走,不要乱。” 当我们一个个出来后,慢慢的把身子还原回来,我看着自己变成了一个巨大的人,很完整的,帅气的,我想我应该完成了这一项任务了吧。 此时浏览器播报,数据传输完成,完整无误,任务完成,进行展示。 结语 这是数据的一趟历险记,也是互联网上每天都在发生的,他快速稳定的传播,给我们构建了一个美好的世界。 点击 <font color=green>[关注]</font>,<font color=green>[在看]</font>,<font color=green>[点赞]</font> 是对作者最大的支持

优秀的个人博客,低调大师

【云栖号案例 | 新零售】母婴企业上云 实现线上线下互动营销、一体化管理服务

云栖号案例库:【点击查看更多上云案例】不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 主要从事母婴产品的销售,拥有三家门店,未上云之前采用单机收银,未实现线上商城。 业务痛点 三家门店以前都是单机版本的收银系统,无法实现会员互通 无法实现营销互通 无法实现统一调货、统一人员管理、统一数据管理 解决方案 解决方案逻辑图 这个方案可以说目前很多小的连锁企业都在使用的架构图,一方面他们把总店放在云服务器上,提供数据的汇总,货物的调配,会员数据的共享,营销活动的统一配置,以及门店人员的统一管理,营收的分析等都掌握在总部,实现数据的统一管理。 另一方面由于受到互联网的冲击,线下实体店都会采用搭建自己的小程序或公众号商城,让客户在家里也能了解自己的店里产品或活动情况,可以及时触达客户。客户通过小程序商城下单还提供周边区域的配送上门服务,或者到店自提服务。还可以通过小程序商城来进行营销活动,比如:拼团购、砍价、抽奖、充值送、积分兑换等活动来增加线上与线下的关联,进一步达到线上线下一起营销的目的。 对于个体商户成本的投入是他们上云首要考虑的,因为开始业务上并没有太多的并发量,因此架构上并不需要太复杂,在用户量达到一定量后再持续优化调整架构,这个时候个体工商户也愿意付出金钱来投入建设。 上云价值 通过这个案例可以帮助个体工商户实现了少量连锁店的上云服务,实现了会员、营销、数据、人员管理等一体化的服务,比之前的单独单机收银的方式,可以让个体工商户在投入少量的费用即可实现多店管理,实现线上线下互动营销。 选用的产品 云服务器ECS 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。更多关于云服务器ECS的介绍,参见云服务器ECS产品详情页。 云栖号案例库:【点击查看更多上云案例】不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策!

优秀的个人博客,低调大师

《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-CAPI映射

Swift与Objective-C API映射 在混合编程过程中Swift与Objective-C调用是双向的,由于不同语言对于相同API的表述是不同的,他们之间是有某种映射规律的,这种API映射规律主要体现在构造函数和方法两个方面。 1、构造函数映射 在Swift与Objective-C语言进行混合编程时,首先涉及到调用构造函数实例化对象问题,不同语言下构造函数表述形式不同,如图是苹果公司官方API文档,描述了NSString类的一个构造函数。 Swift构造函数除了第一个参数外,其它参数的外部名就是选择器对应部分名。规律的其它细节图中已经解释的很清楚了,这个规律反之亦然,这里不再赘述。 2、方法名映射 在Swift与Objective-C语言进行混合编程时,不同语言下方法名表述形式也是不同的,如图是苹果公司官方API文档,描述了NSString类的rangeOfString:options:range:方法。 选择器第一个部分rangeOfString作为方法名,一般情况下Swift方法第一个参数的外部参数名是要省略的,“_”符号表示省略。之后的选择器各部分名(如:options和range),作为外部参数名。除了参数名对应为,参数类型也要对应下来。 Swift 2.0之后方法可以声明抛出错误,这些能抛出错误的方法,不同语言下方法名表述形式如图下图所示,是writeToFile:atomically:encoding:error:苹果公司官方API文档。 比较两种不同语言,我们会发现error参数在Swift语言中不再使用,而是在方法后添加了throws关键字。 这种映射规律不仅仅只适用于苹果公司官方提供的Objective-C类,也适用于自己编写的Objective-C类。 本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1749107,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册