网络编程
文章平均质量分 88
CrazyDragon_King
纸上得来终觉浅,绝知此事要躬行。
展开
-
Python 的 WSGI 简单了解
我们都知道通用的部分可以抽取出来,做成一个组件供其它应用使用。所以 WebServer 就是这样一个组件,它负责接收用户的请求,然后交给用户的Web应用,等到它处理完成之后,再把响应数据返回给调用者。所以,WebServer 要和 WebApplication 进行交互,那就需要定义一个协议或者更专业一点叫做接口,因此这就是 WSGI。而实现 WSGI 接口的,我们则成为 WebServer 或者 WSGI Server。原创 2024-09-16 15:37:02 · 1028 阅读 · 0 评论 -
基于 Gin 的 HTTP 代理上网行为记录 demo
前端时间写了好几篇使用 Gin 框架来做 HTTP 代理 demo 的文章,然后就想着做一个记录上网行为的小工具,就是简单记录看看平时访问了什么网站(基于隧道代理的,不是中间人代理,所以只能记录去了哪里,不能记录干了什么)。不过因为编译问题一直没有解决,我又不想重新在 Windows 上安装 Golang 的开发环境,所以就把它搁置了。最近正好把那个交叉编译的问题解决了,所以就把这个博客也发出来吧。原创 2023-12-16 14:55:48 · 341 阅读 · 0 评论 -
基于 Gin 的 HTTP 中间人代理 Demo
这篇博客和上一篇博客之间已经隔了好久了。因为理解这个中间人代理的过程遇到了困难,再加上时间不是很充足,也就没有继续写这个主题的内容。最近刚好又有了时间了,所以就集中时间看了很多内容,测试代码(因为 TSL 发生了错误基本上看不懂什么意思,感觉自己掌握的知识和工具还是太少了,很多错误只能束手无策了),也算是对这个东西有了一个新的理解。我其实还是更喜欢盲转发的代理,因为那样实现起来更简单,可以做一些上网行为统计的小工具玩一玩。原创 2023-12-09 18:44:39 · 687 阅读 · 0 评论 -
基于 Gin 的 HTTP 代理 Demo(2)
上次写了之后,对这方面还是蛮感兴趣的,所以就接着继续走下去。为了这个主题的内容,我斥巨资购入了一本二手的 《HTTP 权威指南》,因为我知道这本书里面有我想要的知识。在我还在大学的时候,我就看过这本书的前面关于 HTTP 协议的基本知识,当时正好也接触了 Fiddler,所以就利用 Fiddler 进行学习。抓取协议,了解各个字段的含义,尝试用JAVA的 TCP 来模拟,因此对于 HTTP 协议有了一个基本的认识。原创 2023-11-26 01:06:01 · 422 阅读 · 0 评论 -
如何通过代理共享网络
昨天在探索用 Gin 实现 HTTPS 代理,学习到了很多新的知识点,感觉可以把以前的内容串联起来了。然后在睡觉的时候,想到了怎么通过代理共享网络的问题。这个问题已经思考过了好几次,但是还是有一点模糊,昨天不知道怎么的,感觉有点想通了,事不宜迟得赶紧记录下来。我在电脑上面安装了 Fiddler,一个抓包软件,它算是一个 HTTP 代理软件。我使用它主要是用来学习 HTTP 协议,很多问题,要是可以亲眼看上一眼,其实就能解决了。原创 2023-11-20 22:57:26 · 1887 阅读 · 0 评论 -
基于 Gin 的 HTTP 代理 demo
上次用 TCP 模拟了一个 HTTP 代理之后,感觉那样还是太简陋了,想着是不是可以用框架来做一个有点实际用处的东西。所以,就思索如何用 golang 的 Gin 框架来实现一个?嗯,对的你没有听错,是 gin 框架。你可能会疑惑,它不是 Web 框架吗,怎么可以用来做代理软件呢?哈哈,其实仔细想一想就明白了。我已经说过了,HTTP 代理的本质其实就是一个 HTTP 服务器!所以,我只要想办法让它来处理所有的路由就行了!原创 2023-11-12 23:04:16 · 1437 阅读 · 0 评论 -
利用二维码在命令行查看图片
最开始的时候,我的想法是把图片完全展示,不过受限制于这中间传输的限制,还是挺困难的。所以,我就退而求其次,只把图片的部分信息拿出来,这里面的关键点是没有通过网络进行传输信息(获取图片信息的时候),不过若要是想完全传输一整个图片或者小文件,那也需要很多张二维码才行了,总之还是很麻烦的。原创 2023-11-05 23:31:22 · 183 阅读 · 0 评论 -
Fiddler抓包VSCode和探索
有趣的探索结束了,我确实感觉自己收获了不少,也把以前的一些知识串联起来了。希望各位读者也能从中有所收获。原创 2023-10-22 19:32:06 · 1753 阅读 · 0 评论 -
从RESP的角度理解事务和管道
通过网络抓包分析,我们可以清晰的看出来。事务的每一条指令都会进行一次网络请求,所以在 QUEUED 阶段失败了,整个事务就失败了,因为服务端是可以感知的,成功了它才会发送 QUEUED 指令。而管道呢,则是把若干条指令拼接起来一次性发送,它最大的作用是节省了多次建立连接所需要的时间(不要小看了每次建立断开连接是开销,累计起来是很庞大的!原创 2023-09-01 23:47:07 · 345 阅读 · 0 评论 -
网络连接中的舔狗协议
最近互联网上,“舔狗” 这个词语很火,也衍生出来很多梗(快速说出互联网 4 大舔狗!!!然后今天偶然间看到了一个 RFC 文档, 发现了一个有趣的网络协议, 这个协议让我立马想到了舔狗这个词,哈哈。也不卖关子了,让我们来直接看一看它吧 –。这大概是最简单的RFC文档了,其他的文档基本都是长篇大论,我基本没有看完过。discard service (丢弃服务)是一个很有用的调试和测量工具。discard service 只是简单的丢弃它接收到的所有数据。原创 2023-05-29 20:35:18 · 1355 阅读 · 0 评论 -
http 自动跳转 https
这里大致的思路是:监听两个端口,一个是端口提供 http 服务(只有一个根路径),一个提供 https 服务(正常的应用服务路径),然后如果有人访问了 http 的根路径,那么将其转发到 https 服务的根路径上即可。因为之前访问过了,浏览器会记住你访问过的网址的,这里的区别在于匹配到网址后,出现了百度的 logo 图标。我并没有输入协议,所以浏览器默认是会访问 http 网站的,但是最终的结果是访问了 https 网站。我前面说了这是做了跳转,但是这种说法是很模糊的,你并不知道实际上是使用了什么技术?原创 2023-02-12 23:22:52 · 930 阅读 · 0 评论 -
基于百度翻译api的命令行翻译助手
前言:最近总是需要浏览英语相关的内容,也不是全部都能认识的。所以查单词就成了一个需求,而且也不是只查一个,因为经常接触英语相关的内容。而且,查询了大量的单词,所以对查询的单词进行回顾也成了一个需求。因为单词查过很快就忘记了,所以要找时间把查询的单词都拿来集中学习一下,也算做是一个学习英语的努力了。基于此,我就想要开发一个使用的小工具,它需要满足两点:查询方便,因为会频繁从进行查询;查询结果可回溯,因为要找时间集中学习。第一点很容易满足了,第二点的话,我经常使用网页翻译,所以都无法查看历史记录(或者原创 2021-12-28 19:40:05 · 313 阅读 · 0 评论 -
多人协作共享画板——多人画板的bug解决
上一篇博客,我们分析了多人画板bug的产生原因,并且探索了一个解决的方法。现在让我们来实现它吧!实现思路代码实现<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> * { margin: 0; padding: 0; } .rg{原创 2021-08-24 00:23:21 · 460 阅读 · 0 评论 -
多人协作共享画板——多人画板的bug及分析
上一篇博客我们已经介绍了一个多人画板的实现过程,并且在最后添加了一个演示的GIF图片,证明它是可以正常工作的。我也是这样认为了,直到多个人一起测试的时候,出现了严重的bug。下面让我带领你去探索这个问题吧。多人画板的bug及分析多人画板的bug复现由于前期我都是一个人写一个人进行测试,完全觉得没有问题,不是我喜欢一个人测试,是因为我就一个人——形单影只(唉,这是一件伤心事!)。所以我在这个画板上绘制,然后跑到另一个画板上进行绘制,从来没有出现过问题,我就认为这是正常的了。可是后来才发现,当多个人同时绘原创 2021-08-24 00:22:15 · 862 阅读 · 0 评论 -
多人共享协作画板——多人画板
前面我们介绍了一个简单的单机画板的实现,现在我们将它向多人画板进行扩展,一个很自然的想法便是将绘制过程封装成指令,然后通过网络发送出去,接收到指定的客户端,需要依照绘图指令,同步进行绘制操作。那么首先需要解决的问题是,如何发送?发送什么?多人画板技术探究如何发送?这里需要解决的是所有人可以同步进行绘制,那么就需要连续不断的的接收和发送数据,所以网络协议我们选择WebSocket,我也见过使用WebRTC协议来实现的,不过这个东西我只是耳闻,从来没有使用过。选择协议的目的是为了全双工的工作,应该HTTP原创 2021-08-24 00:21:17 · 3488 阅读 · 3 评论 -
多人共享协作画板——单机画板
最近由于工作需要,接触到了多人共享协作画板这个东西。在这个过程中,学习到了不少前端的知识,现在正好抽时间来对这一段时间学习的知识做一个总结。我都计划是分几篇博客,对共享画板这一块我理解的知识做一个总结,主要是学习中的一些思考,以及对一些问题的解决,希望可以帮助到有需要的人。单机画板多人共享协作画板也是从单机画板演化出来的,所以我们这里先介绍如何实现一个简单的单机画板。了解一个单机画板的实现,会有助于理解后面将要做的多人协作画板。这里实现的过程主要是使用到了HTML的canvas标签,这个标签很有趣,功能原创 2021-08-24 00:20:43 · 1920 阅读 · 0 评论 -
多人协作共享画板——多人画板的收尾工作
通过前面的几篇博客,基本上已经可以实现数据在网络上的传递和正确的还原了。但是现在还留有一些细节上的问题亟待解决,所以在最后一篇博客,我们来进行一些收尾的工作!目前待解决的问题?多人可以同时进行绘制,但是线条的样式变得离散了,不再连续,很难看。多人同时进行绘制时,线条的颜色和粗细会进行干扰。我们先来解决第一个问题吧,因为它比较简单。线条离散问题改进方式:在绘制前,设置context的lineCap和lineJoin样式为“round“即可,即:context.lineJoin = "rou原创 2021-08-24 00:19:44 · 615 阅读 · 2 评论