GO WEB 学习记录

这篇博客主要介绍了Go语言在Web开发中的应用,包括HTTP、TCP/IP协议、网络、数据包封装、中间件、RPC、模板、数据序列化、WebSocket、JSON、正则表达式、Cookie、跨域解决方案等。还提到了Go的RPC实现、HTTP RPC服务器和客户端的使用,以及Go标准包的访问服务开启方法。此外,文章还讨论了分布式系统、网络模型和数据传输机制。
摘要由CSDN通过智能技术生成

https://wide.b3log.org/playground golang网页版IDE

分布式系统:

协议层

OSI(开放系统互联)协议

TCP/IP协议:

网络

网关

数据包封装

链接模型

面向连接模型

无连接模型

通讯模型

消息传递

远程过程调用RPC

分布式计算模型

什么是组件?

组件分布

胖与瘦

中间件模型

什么是中间件:

中间件示例

套接字

数据序列化

如何通过命令行开启go标准包的访问服务

https是HTTP+tls

template

远程过程调用

详细过程:

GO的RPC

HTTP RPC 服务器

HTTP RPC客户端

JSON RPC

Network channels

Web socket服务端

JSON简介

转换

属性TAG配置: `json:”name”`

正则表达式

正则函数

go语言对cookie的支持

Cookie的常用设置

跨域

1.什么是跨域?

2.跨域访问示例

3.如何解决跨域问题?

nginx反向代理解决方案

HTTP访问控制(CORS)解决方案

Beego支持restful格式的API开发

Sync.map

SSO

TLS

git push origin branch1失败

函数参数传递的方式

 

https://wide.b3log.org/playground golang网页版IDE

详细介绍HTTP相关知识(WEB相关)的网站:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Authentication

 

缺少依赖包的解决方案:找到github.com中依赖包的位置然后命令行下载

go get -u github.com/golang/exp/tree/master/old/netchan // -u后边的是依赖包的地址

分布式系统:

协议层

将复杂的部分分解成更小更简单的部分,这些部分都有自己的结构,但也定义了与其他相关部分进行通讯的方式,在分布式系统中这种部分称为协议层。

OSI(开放系统互联)协议

物理层:

数据链路层:

网络层:提供交换和路由技术

传输层:在终端系统中提供透明的数据传输,并负责端对端的错误恢复及流程控制。

会话层:是应用间、管理并结束链接。

表现层:提供数据表现差异的独立性(例如加密)

应用层:支持应用与最终用户的处理。

TCP/IP协议:

TCP/IP协议中一下三层合并成一层:

会话层:是应用间、管理并结束链接。

表现层:提供数据表现差异的独立性(例如加密)

应用层:支持应用与最终用户的处理。

 

网络

网络是一个通讯系统,它连接了称为主机的最终系统。

互联网:多个不同网络的链接(如局域网 , 城域网 , 广域网)

内联网:属于某个组织的所有网络加上互联网

网关

网关是一个统称 ,它用于链接一个或多个网络。

数据包封装

在OIS或者TCP/IP协议栈层与层之间的通讯, 是通过将数据包从一个层发送到下一个层,最终穿过整个网络,每一层都有必须保持其自身层的管理信息,。从上层收到的数据包在向下传递时,会添加头信息,这些头信息在向上传递的时候移除。

链接模型

面向连接模型

即为会话建立单个链接,沿着链接进行双向通信。当会话结束后,该链接就会断开。类似于电话交谈,例子就是TCP

无连接模型

在无连接模型系统中,消息的发送彼此独立,这类似于普通的邮件,无连接模型的消息可能不按顺序抵达。例子就是IP协议

通讯模型

消息传递

一些非过程化语言建立在消息传递的原理上,并发语言经常使用这种机制。这也适用于分布式消息传递系统。

远程过程调用RPC

分布式计算模型

第一种模型:在上层,我们可以考虑分布式系统的组件是否等价,最常见的就是不对等的情况:客户端向服务器发送请求,然后服务器端响应。这就是客户端-服务器系统

第二种模型:若连个组件等价,且均可发起并响应信息,那么我们就有了一个点对点系统,注意这个是逻辑上的分类

第三种模型:就是过滤器 , 有一个组件将信息传至另一个组件,他会在修改信息之后传到第三个组件,这是个相当普遍的模型,例如,中间组件通告SQL从数据库中获取信息,并将其转换成HTML表单提供给第三个组件(他可能是浏览器)

 

什么是组件?

组件是基于功能划分的功能单位。组件一般有独立的封装,组件强调的是“跨项目的可重用性”,为了可重用性而开发。

模块:功能和组件相同,在项目中独立的功能,功能模块。

组件分布

分解一个应用简单有效的方式就是把他们分为三个部分: 1.表现组件

2.应用逻辑组件

3.数据访问组价。

表现组件负责与用户的交互,即显示数据和采集输入。他可以是带有按钮,列表和菜单等的GUI界面。

应用逻辑组件负责解释用户的响应,根据应用业务业务规则,准备查询并管理来自其组件的响应。

数据访问组件负责存储并检索数据。这一般是听过数据库进行。

胖与瘦

胖组件占用大量内存做一些复杂处理,瘦组件占用少量内存做简单处理,浏览器经常被分为瘦组件

 

 

中间件模型

中间件组件包括&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值