Web服务(一):简介
简介
在 Go 项目开发中,我们是在写能提供某种功能的后端服务,这些功能以 RPC API 接口 或者 RESTful API 接口 的形式对外提供,能提供这两种 API 接口的服务也统称为 Web 服务。
核心功能
核心功能分为 基础功能 和 高级功能 两大类。
1. 基础功能
1.1 通信协议 & 通信格式
在 Go 项目开发中,有 HTTP + JSON 和 gRPC + Protobuf 两种组合可选。
1.2 路由匹配
根据 HTTP 方法,请求路径 匹配到处理这个请求的函数,最终由该函数进行 参数解析、参数校验、逻辑处理,返回结果。
1.3路由分组
对于一个系统,可能会有多个 API 接口,API 接口随着需求的更新迭代,可能会有多个版本,为了便于管理,需要对路由进行分组。
1.4 一进程多服务
有时候,需要在一个服务进程中,同时开启 HTTP 服务的 80 端口 和 HTTPS 的 443 端口。
这样我们就可以做到:1. 对内的服务,访问 80 端口,简化服务访问复杂度;2. 对外的服务,访问更为安全的 HTTPS 服务。
因为,没必要为相同功能启动多个服务进程。
2. 高级功能
2.1 中间件
在进行 HTTP 请求时,经常需要针对每一次请求都设置一些通用的操作。
比如添加 Header、添加 RequestID、统计请求次数等。
2.2 认证
为了保证系统安全,对于每一个请求,都需要进行认证。通用的两种认证方式:
1. 基于用户名和密码
2. 基于 Token
认证通过后,就可以继续处理请求了。
2.3 RequestID
为了方便定位和跟踪某一次请求,需要支持 RequestID。
定位和跟踪 RequestID 主要是为了 排障。
2.4 跨域
在前后端分离的架构中,前端访问地址 和 后端访问地址往往是不同的,浏览器为了安全,会针对这种情况设置跨域请求,所以 Web 服务需要能够处理浏览器的跨域请求。
总结
其它的功能,可以学习 Gin 框架文档 来了解。
Web服务(一):简介相关推荐
- Shell脚本学习-阶段二十六-Web服务与端口
文章目录-Shell阶段二十六-端口与服务对照表 前言 端口与Web服务对照表 简介 前言 端口与Web服务对照表 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口: ...
- J2EE基础之Web服务简介
J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上 ...
- AWS(Amazon Web Services, 亚马逊网络服务系统)简介
1.简介 亚马逊网络服务系统(英语:Amazon Web Services,简称为AWS),由亚马逊公司所建立的云端运算平台,提供许多远端Web服务.Amazon EC2与Amazon S3都架构在这 ...
- Web服务和WSDL简介
在"使用 WSDL 部署 Web 服务"系列中,Bilal 将研究创建.部署和发布 Web 服务的所有主要技术方面 - 从 Web 服务描述语言(WSDL),到简单对象访问协议(S ...
- Docker安装Apache与运行简单的web服务——httpd helloworld
Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...
- Web 服务编程,REST 与 SOAP
2019独角兽企业重金招聘Python工程师标准>>> 为什么选择 REST 李 三红, 高级软件工程师, IBM 简介: REST 架构风格是一种全新的针对 Web 应用的开发风格 ...
- php开源 饭馆记账软件_GitHub - CNYoki/xxjzWeb: 小歆记账WebApp项目(Web服务端)
小歆记账WebApp项目(Web服务端) 1.简介 小歆记账WebApp是一个面向移动端的记账工具,此项目为Web服务端:使用ThinkPHP+MySQL作为后台,AmazeUI作为前端. 项目基础版 ...
- 用WSE在Web服务中验证用户身份
一.Web服务安全与WS-Security 毫无疑问,SOAP和XML Web服务在交互操作和标准上已经完全改变了电子商务领域的格局. 然而直到最近,在Web服务技术领域仍然存在着一些缺陷,那就是处理 ...
- 用 Java 技术创建 RESTful Web 服务--转载
简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范.它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代. 在本文中,了解 JAX ...
最新文章
- TaskManager
- android开发桌面源码,android launcher 源码 自己开发启动桌面
- java不用析构函数,堆栈分配的类--C发生不需要的析构函数调用
- python添加环境变量_windows系统下python学习-1 (python环境变量配置)
- AIX6.1下WebLogic的nohup日志按天分割
- DataTable两列转换四列
- 【Java 学习笔记】 抽象类和接口
- 常用类中的方法 —— java.util.Map
- CrazyWing:Python自动化运维开发实战 十八、Python面向对象
- oracle9.2.0.7,Oracle9.2.0.1升级到9.2.0.7
- 中国石油大学《输气管道设计与管理(含课程设计)》第三阶段在线作业
- PyQt5开发桌面程序二(获取公网ip)
- Gazebo模型制作dae
- 译文: C28x Compiler Error and Warning Messages
- 如何在组装或维修计算机时避免静电,组装电脑怎么避免手上的静电
- html 引入gif 不会动,GIF图片在电脑上不会动的解决办法
- vscode C++编译和调试
- WIN11连接WIN7共享的打印机报0x00000709错误
- java枯燥吗_Java程序员工作枯燥?换什么工作好?
- android 录制屏幕 带声音 可直播方案 截屏