
Web
文章平均质量分 81
瑜陀
Sophomore, major in Computer Science.
展开
-
ngrok内网穿透以及原理
我们启动ngrok服务后,服务器就产生了一个连接。如果有别的用户访问这个域名,服务器拿到服务请求后,会通过 ngrokd 将这个请求转发给我们本地运行的 ngrok。之后 ngrok 就会把用户请求的数据发送给 ngrokd,然后 ngrokd 拿到数据后再转发给用户,这样就完成一次请求-服务。原创 2023-09-29 18:48:28 · 484 阅读 · 0 评论 -
go Session的实现(一)
众所周知,http协议是无状态的,这对于服务器确认是哪一个客户端在发请求是不可能的,因此为了能确认到,通常方法是让客户端发送请求时带上身份信息。容易想到的方法就是客户端在提交信息时,带上自己的账户和密码。但是这样存在着严重的安全问题,可以改进的方法就是,服务器给一个确定的客户端返回一个唯一 id,客户端将这个 id 保存在本地,每次发送请求时只需要携带着这个 id,就可以做到较好的验证。原创 2023-09-02 16:57:25 · 918 阅读 · 0 评论 -
gin 框架中的 gin.Context
Context 是 gin 中最重要的部分。例如,它允许我们在中间件之间传递变量、管理流程、验证请求的 JSON 并呈现 JSON 响应。Context 中封装了原生的 Go HTTP 请求和响应对象,同时还提供了一些方法,用于获取请求和响应的信息、设置响应头、设置响应状态码等操作。在 Gin 中,Context 是通过中间件来传递的。在处理 HTTP 请求时,Gin 会依次执行注册的中间件,每个中间件可以对 Context 进行一些操作,然后将 Context 传递给下一个中间件。原创 2023-08-01 11:40:21 · 3978 阅读 · 0 评论 -
Redis (一)消息订阅和发送测试
调用Publish() 函数发布一条消息,这个 Publish() 是 go-redis中封装好的方法。可以看到,go-redis 中使用消息的订阅和发布功能,可以使得消息发送和接受的过程异常简单!本文基于 Ubuntu20.04 云服务器配置Redis,且在本地进行 Redis 测试。这里面的核心就是Redis 的连接,以及在 Redis 中发布消息和订阅消息了。原创 2023-07-31 21:47:22 · 413 阅读 · 0 评论 -
Docker网络模型以及容器网络初探(一)
安装Docker时,它会自动创建三个网络,默认`bridge网桥`(创建容器默认连接到此网络)、 `none` 、`host`。各个方式有各自的特点,它们有着特定的差距,比如网络性能等,一般按照实际应用方式手动指定(或者选用默认)一个网络,或者使用命令自己添加一个自己定义的网络。原创 2023-07-04 15:51:59 · 393 阅读 · 0 评论 -
阿里云 Ubuntu 网络设置
在云服务器 Ubuntu 中运行 go 的时候,某些库在加载的时候速度太慢,甚至被限制了以至于没有速度。网上的教程或多或少的有难以捉摸的问题,本文旨在提供一个可靠的方案。原创 2023-06-26 22:03:58 · 2272 阅读 · 3 评论 -
Unix/Linux编程:UDS 数据报
对于`recvfrom()`来讲,src_addr 和 addrlen 参数会返回用来发送数据报的远程 socket 的地址。src_addr 参数是一个指针,它指向了一个与通信 domain 匹配的地址结构。与 `accept()`一样, addrlen 是一个值-结果参数。原创 2023-06-08 20:51:32 · 1012 阅读 · 0 评论 -
Unix/Linux编程:UDS 流(Stream)
socket 是一种 IPC (Inter-Process Communication,进程间通信)方法,它允许位于同一主机(计算机)或使用网络连接起来的不同主机上的应用程序之间交换数据。通过使用Socket,开发人员可以创建网络应用程序,使其能够通过网络进行数据交换和通信。原创 2023-06-07 21:49:01 · 3571 阅读 · 2 评论