跳到主要内容

网络编程

一、HTTP 客户端

1.1 http.Client

  • Client 创建
  • 默认 Client
  • 自定义 Client

1.2 HTTP 请求

  • GET 请求
  • POST 请求
  • 请求头设置
  • 请求体

1.3 HTTP 响应

  • 响应处理
  • 响应体读取
  • 响应状态码

1.4 高级客户端功能

  • 超时控制
  • 重定向
  • Cookie 管理
  • 代理设置
  • TLS 配置

二、HTTP 服务端

2.1 http.Server

  • Server 创建
  • 监听配置
  • 启动服务

2.2 HTTP 处理器

  • Handler 接口
  • HandlerFunc
  • ServeMux 路由
  • 请求处理

2.3 请求处理

  • Request 结构
  • 请求参数
  • 请求头
  • 请求体

2.4 响应写入

  • ResponseWriter
  • 响应头设置
  • 响应体写入
  • 状态码设置

2.5 上下文(Context)

  • 请求上下文
  • 超时控制
  • 取消传播

三、HTTP 高级特性

3.1 RESTful API

  • 路由设计
  • JSON 处理
  • 状态码使用

3.2 中间件

  • 中间件模式
  • 日志中间件
  • 认证中间件
  • CORS 中间件

3.3 文件上传下载

  • multipart 表单
  • 流式上传
  • 文件下载

3.4 WebSocket

  • gorilla/websocket
  • WebSocket 服务器
  • WebSocket 客户端

3.5 HTTP/2 和 HTTPS

  • HTTP/2 特性
  • TLS 配置
  • 证书管理

四、JSON 处理

4.1 encoding/json

  • Marshal 序列化
  • Unmarshal 反序列化
  • 自定义序列化

4.2 JSON 流式处理

  • Encoder/Decoder
  • 流式读写

4.3 JSON 标签

  • 结构体标签
  • 别名和选项
  • 忽略字段

五、RPC 编程

5.1 RPC 基础

  • RPC 概念
  • Go RPC
  • 服务端和客户端

5.2 gRPC

  • Protocol Buffers
  • gRPC 服务定义
  • gRPC 服务实现
  • gRPC 客户端

5.3 JSON-RPC

六、Socket 编程

6.1 TCP Socket

  • net.Listen
  • net.Dial
  • TCP 服务端
  • TCP 客户端

6.2 UDP Socket

  • UDP 数据报
  • UDP 服务端
  • UDP 客户端

6.3 Socket 高级

  • 连接池
  • 心跳检测
  • 断线重连

七、网络编程最佳实践

7.1 连接管理

7.2 资源清理

7.3 错误处理

7.4 性能优化

7.5 安全考虑

八、常用框架

8.1 Web 框架

  • Gin
  • Echo
  • Fiber
  • Chi

8.2 RPC 框架

  • gRPC
  • Thrift
  • RPCX

8.3 网络库