Go语言HTTP实战 | 青训营

82 阅读2分钟

在线翻译实践

构造原始报文直接获取内容

  • 打开彩云小译在线翻译并打开检查页面
  • 点击网络这样可以实时捕获网页发出的HTTP报文
  • 输入任意单词并点击翻译后就可以找到我们需要的POST请求,它以JSON格式呈现,内容如下:
{
    {rc: 0, wiki: {},…}
        dictionary: 
            {prons: 
            {en-us: "[ˈεntrəpɪ]", en: "[ˈentrəpi]"}, 
            explanations: ["n.熵;平均信息量;崩溃;无变化"]}
            entry: "entropy"
            explanations: ["n.熵;平均信息量;崩溃;无变化"]
            prons: {en-us: "[ˈεntrəpɪ]", en: "[ˈentrəpi]"}
            source: "wenquxing"
            type: "word"
        rc: 0
        wiki: {}
}

JSON文件中包含了我们需要的音标、含义等需要的翻译内容,接下来只要提取出其中的内容即可

当然这样每次翻译一个词语就需要我们重新获得一次JSON文件并转化构造,显然这样的方法是非常慢的,我们可以定义一个struct,在程序运行时由用户输入source,然后将该struct序列化为JSON数据,这样就不用修改整一段JSON数据了。

当然,为了更加美观地输出我们需要的数据还可以直接构造一整个单词卡片的struct,这样在输出的时候就可以通过反序列化更加美观地呈现数据了。

socks5实践

socks简介

socks协议的设计初衷是在保证网络隔离的情况下,提高部分人员的网络访问权限,但是现在更多的是利用socks5这个协议来访问到内部的网络,访问一些访问不到的资源,这也是对于网络攻防层面来讲,但是socks5的用途也是很多的。例如一般我们在大学里面,学校内网肯定提供了很多服务资源给学生,我们可以通过校园网在学校内部网络进行访问使用。但是如果我们假期回到家了就很难进入到学校的内网再访问到学校内部的资源,一般我们可以通过在公网上面的一个VPS搭建一个socks代理服务器,并且在内网搭建一台服务器和VPS建立socks通道。然后我们就可以通过连接到VPS提供的某个代理端口来访问到学校的内部资源了。

实现简易服务器

在这个简单的服务器中,我们首先实现TCP端口监听,使用Go语言包进行网络操作。然后让程序持续监听直到接收到信息并返回一个Conn对象表示已经建立连接,然后调用process函数进行客户端与服务端之间的通信 ,在这个程序中我们只是简单地将输入的内容返回给客户端。