首页 > 资料专栏 > IT > 互联网 > 网络其他 > 9. Go语言实践 - 网络编程PPTX

9. Go语言实践 - 网络编程PPTX

sunxinc***
V 实名认证
内容提供者
热门搜索
编程
资料大小:9375KB(压缩后)
文档格式:PPTX(57页)
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2024/9/13(发布于广东)

类型:金牌资料
积分:--
推荐:升级会员

   点此下载 ==>> 点击下载文档


文本描述
毛剑
Go进阶训练营 第9课 Go 语言实践- 网络编程
网络通信协议 Go 实现网络编程 Goim 长连接网关 ID 分布式生成器 IM 私信系统
网络通信协议
互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite),正是这一些协议规定了电脑如何连接和组网。 主要协议分为: Socket 接口抽象层 TCP / UDP 面向连接(可靠) / 无连接(不可靠) HTTP1.1 / HTTP2 / QUIC(HTTP3) 超文本传输协议
Socket 抽象层
应用程序通常通过“套接字”向网络发出请求或者应答网络请求。 一种通用的面向流的网络接口 主要操作: 建立、接受连接 读写、关闭、超时 获取地址、端口
TCP 可靠连接,面向连接的协议
TCP/IP 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议。 服务端流程: 监听端口 接收客户端请求建立连接 创建 goroutine 处理连接 客户端流程: 建立与服务端的连接 进行数据收发 关闭连接
UDP 不可靠连接,允许广播或多播
UDP 协议(User Datagram Protocol)中文名称是用户数据报协议,是 OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议。 一个简单的传输层协议: 不需要建立连接 不可靠的、没有时序的通信 数据报是有长度(65535-20=65515) 支持多播和广播 低延迟,实时性比较好 应用于用于视频直播、游戏同步
HTTP 超文本传输协议
HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,它详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 请求报文: Method: HEAD/GET/POST/PUT/DELETE Accept:text/html、application/json Content-Type: application/json application/x-www-form-urlencoded 请求正文 响应报文: 状态行(200/400/500) 响应头(Response Header) 响应正文
GET / HTTP/1.1 Host: google Content-Type: text/html Connection: keep-alive -------- HTTP/1.1 200 OK Content-Length: 3059 Server: GWS/2.0 Content-Type: text/html Connection: keep-alive ... nload tcpflow ss netstat nmon top
gRPC 基于 HTTP2 协议扩展
Request: Headers :method = POST :scheme = https :path = /api.echo.v1.Echo/SayHello content-type = application/grpc+proto grpc-encoding = gzip Data
Response: Headers :status = 200 grpc-encoding = gzip content-type = application/grpc+proto Data Trailers grpc-status = 0 grpc-message = OK grpc-details-bin = base64(pb)
Data: 1 byte of zero (not compressed). network order 4 bytes of proto message length. serialized proto message.