Go 正则

正则作用 匹配 是否存在:match 匹配 提取:find 匹配 替换:replace 匹配 其他操作 匹配 是否存在 match matchstring matchrender re.match re.matchstring 匹配提取 find Regexp 类型提供了多达 16(2^4)个方法,用于匹配正则表达式并获取匹配的结果。它们的名字满足如下正则表达式: Find(All)?(String)?(Submatch)?(Index)? 如果’All’出现了,该方法会返……

阅读全文

Go xml json 小结

最常见错误 struct 字段小写,序列化反序列化都无法访问——无法外部访问 解析 XML,反序列化,Unmarshal 如果 struct 的一个字段是 string 或者[]byt 类型且它的 tag 含有",inner xml “,Unmarshal 将会将此字段所对应的元素内所有内嵌的原始 xml 累加到此字段上 比如下边例子……

阅读全文

登录状态保持的发展——session,token

根本原因 http 是无状态的协议 以后能从这根本上解决吗? 1.很久以前:没有这个需求 很久很久以前,Web 基本上就是文档的浏览而已,既然是浏览,作为服务器,不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的 HTTP 协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了 HTTP 请求, 每个请求对我……

阅读全文

MongoDB 简介

MongoDB 是什么 是一个高性能,开源,无模式的文档型数据库, 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 他支持的数据结构非常松散,采用的是类似 json 的 bjson 格式来存储数据,因此可以存储比较复杂的数据类型。Mongo 最大的特点是他支持的查询语言非常强……

阅读全文

防止多次重复提交表单

解决方案 1 是在表单中添加一个带有唯一值的隐藏字段。在验证表单时,先检查带有该惟一值的表单是否已经递交过了。如果是,拒绝再次递交;如果不是,则处理表单进行逻辑处理。 解决方案 2 如果是采用了 Ajax 模式递交表单的话,当表单递交后,通过 javascript 来禁用表单的递交按钮……

阅读全文

Go 时区设置

获取 time 对象 设置时区 按设置的时区输出 package main import ( "fmt" "time" ) func main() { now := time.Now() // 1. 获取 time 对象 // 2. 设置时区 local1, err1 := time.LoadLocation("") //等同于"UTC" if err1 != nil { fmt.Println(err1) } local2, err2 := time.LoadLocation("Local")//本地的时区 if err2 != nil { fmt.Println(err2) } local3, err3 := time.LoadLocation("America/Los_Angeles") if err3 != nil { fmt.Println(err3) } // 3. 按设置的……

阅读全文

Go Http 工作过程

Go 代码的执行流程 通过对 http 包的分析之后,现在让我们来梳理一下整个的代码执行过程。 首先调用 Http.HandleFunc 按顺序做了几件事: 调用了 DefaultServerMux 的 HandleFunc 调用了 DefaultServerMux 的 Handle 往 DefaultServeMux 的 map[string]muxEntry 中增加对应的 handler 和路由规则 其次调用 http.ListenAndServe(":9090", nil) 按顺序做了几件事情: 实例化 Server 调用 Server 的 ListenAndServe() 调用 net.Listen(“tcp”, addr) 监听端口 动一个 for 循环,在循环体中 Accept 请求 对每个请求实例化一个 C……

阅读全文

无状态 和 Keep Alive 的区别

无状态 = 无记忆 无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。 HTTP 是一个无状态的面向连接的协议,无状态不代表 HTTP 不能保持 TCP 连接,更不能代表 HTTP 使用的是 UDP 协议(面对无连接)。 Keep alive 保持……

阅读全文

Http 状态码小结

HTTP 响应状态代码指示特定 HTTP 请求的 状态(是否完成)。 响应分为五类: 信息响应(100–199) 成功响应(200–299), 重定向(300–399), 客户端错误(400–499) 服务器错误 (500–599)。 信息响应节 100 Continue 这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求……

阅读全文

行数据库 vs 列数据库

是什么 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。 行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于小批量的数据处理,常用于联机事务型数据处理。 举例 数据库以行、列的二维表的形式存储数据,但是却以一维字符串的方式存储,例如以下的一……

阅读全文