简介

在 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服务(一):简介相关推荐

  1. Shell脚本学习-阶段二十六-Web服务与端口

    文章目录-Shell阶段二十六-端口与服务对照表 前言 端口与Web服务对照表 简介 前言 端口与Web服务对照表 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口: ...

  2. J2EE基础之Web服务简介

    J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上 ...

  3. AWS(Amazon Web Services, 亚马逊网络服务系统)简介

    1.简介 亚马逊网络服务系统(英语:Amazon Web Services,简称为AWS),由亚马逊公司所建立的云端运算平台,提供许多远端Web服务.Amazon EC2与Amazon S3都架构在这 ...

  4. Web服务和WSDL简介

    在"使用 WSDL 部署 Web 服务"系列中,Bilal 将研究创建.部署和发布 Web 服务的所有主要技术方面 - 从 Web 服务描述语言(WSDL),到简单对象访问协议(S ...

  5. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  6. Web 服务编程,REST 与 SOAP

    2019独角兽企业重金招聘Python工程师标准>>> 为什么选择 REST 李 三红, 高级软件工程师, IBM 简介: REST 架构风格是一种全新的针对 Web 应用的开发风格 ...

  7. php开源 饭馆记账软件_GitHub - CNYoki/xxjzWeb: 小歆记账WebApp项目(Web服务端)

    小歆记账WebApp项目(Web服务端) 1.简介 小歆记账WebApp是一个面向移动端的记账工具,此项目为Web服务端:使用ThinkPHP+MySQL作为后台,AmazeUI作为前端. 项目基础版 ...

  8. 用WSE在Web服务中验证用户身份

    一.Web服务安全与WS-Security 毫无疑问,SOAP和XML Web服务在交互操作和标准上已经完全改变了电子商务领域的格局. 然而直到最近,在Web服务技术领域仍然存在着一些缺陷,那就是处理 ...

  9. 用 Java 技术创建 RESTful Web 服务--转载

    简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范.它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代. 在本文中,了解 JAX ...

最新文章

  1. TaskManager
  2. android开发桌面源码,android launcher 源码 自己开发启动桌面
  3. java不用析构函数,堆栈分配的类--C发生不需要的析构函数调用
  4. python添加环境变量_windows系统下python学习-1 (python环境变量配置)
  5. AIX6.1下WebLogic的nohup日志按天分割
  6. DataTable两列转换四列
  7. 【Java 学习笔记】 抽象类和接口
  8. 常用类中的方法 —— java.util.Map
  9. CrazyWing:Python自动化运维开发实战 十八、Python面向对象
  10. oracle9.2.0.7,Oracle9.2.0.1升级到9.2.0.7
  11. 中国石油大学《输气管道设计与管理(含课程设计)》第三阶段在线作业
  12. PyQt5开发桌面程序二(获取公网ip)
  13. Gazebo模型制作dae
  14. 译文: C28x Compiler Error and Warning Messages
  15. 如何在组装或维修计算机时避免静电,组装电脑怎么避免手上的静电
  16. html 引入gif 不会动,GIF图片在电脑上不会动的解决办法
  17. vscode C++编译和调试
  18. WIN11连接WIN7共享的打印机报0x00000709错误
  19. java枯燥吗_Java程序员工作枯燥?换什么工作好?
  20. android 录制屏幕 带声音 可直播方案 截屏

热门文章

  1. 学习笔记(47):150讲轻松搞定Python网络爬虫-高速下载王者荣耀高清壁纸(1)
  2. 剑指offer java版 test3—从尾到头打印链表
  3. 毕业年薪20万起!24届南京理工大学自动化最新三年考研院校分析
  4. secureCRT 中文乱码 已解决
  5. 教你如何精准找到国外采购商决策人联系方式
  6. 实验三 SQL查询数据
  7. ADO CreateParameter 0xC0000005 错误原因及解决方法
  8. 将自己电脑设置成无线路由器
  9. Html和Css的学习,怎样才能快速且有效的学习前端的基本发展路径
  10. U盘提示需要格式化?优盘损坏修复