Go语言中文网 为您找到相关结果 76

Golang 守护进程

package main import ( "fmt" "os" "os/exec" "path/filepath" ) func main() { fmt.Println(os.Getppid()) if os.Getppid() != 1 { //判断当其是否是子进程,当父进程return之后,子进程会被 系统1 号进程接管 filePath, _ := filepath.Abs(os.Args[0]) //将命令行参数中执行文件路径转换成可用路径 cmd := exec.Command(filePath) //将其他命令传入生成出的进程 cmd.Stdin = os.Stdin //给新进程设置文件描述符,可以重定向到文件中 cmd.Stdout = os.Stdout cmd.Std...阅读全文

博文 2015-02-11 19:00:02 未来还没来

Go HTTP请求处理——net/http包

Go 语言中处理 HTTP 请求主要跟两个东西相关:ServeMux 和 Handler。 一、ServeMux 和 Handler ServrMux 本质上是一个 HTTP 请求路由器(或者叫多路复用器,Multiplexor),它把收到的请求与一组预先定义的 URL 路径列表做对比,然后在匹配到路径的时候调用关联的处理器(Handler)。 Handler(处理器)负责输出HTTP响应的头和正文,任何满足了http.Handler接口的对象都可作为一个处理器。通俗的说,对象只要有个如下签名的ServeHTTP方法即可: ServeHTTP(http.ResponseWriter, *http.Request) Go语言的HTTP 包自带了几个函数用作常用处理器,比如FileServer,...阅读全文

博文 2016-12-12 13:00:04 吃一堑消化不良

Golang获取有重定向信息的response的location

在用golang做模拟登录某个网站的功能时发现了一个问题:如何获取该网站带有重定向信息的Response?或者说我只需要这个Response中的location信息即可,但是发现对于go的标准库net/http来说如果不hack这个库是没办法直接获取带有重定向信息的Response,而且目前大多第三方的http库也是基于标准库net/http的,貌似就要改net/http库或库本身就提供了对于重定向的设置? 那么我们就得先查看一下net/http库的源码了,通常我们都会用http.Client的Do方法发起一个请求,首先看一下它的源码: // Do sends an HTTP request and returns an HTTP response, following // policy ...阅读全文

博文 2015-05-04 09:00:01 reflectsky

supervisor运行golang守护进程

最近在鼓捣golang守护进程的实现,无意发现了supervisor这个有意思的东西。supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来实现golang的守护进程,下面描述下具体实现。 安装supervisor 基于centos 6.4。 supervisor使用python编写的,可以用easy_install安装。centos上默认有python的运行环境,安装起来就非常简单了。 $ sudo yum install python-setuptools $ sudo easy_install supervisor 如果没有看到什么报错,那么就安装成功了,可以使用echo_supervisord_...阅读全文

博文 2015-07-17 03:00:00 cnsanshao

怎样使页面重定向到登录界面?

在ajax页面中,用户开始在正常使用,然后我把服务器关闭,再重新启动,这个时候用户的登录数据都没有了,用户不知道数据其实服务器不接受需要重新登录,怎么在用户操作的时候重定向到登录页面,使用了http.Redirect(w, r, "/login", http.StatusFound),但是页面还是停留在当前...阅读全文

golang 创建守护进程

package main import ( "os" "os/exec" "path/filepath" ) if os.Getppid()!=1{ //判断当其是否是子进程,当父进程return之后,子进程会被 系统1 号进程接管 filePath,_:=filepath.Abs(os.Args[0]) //将命令行参数中执行文件路径转换成可用路径 cmd:=exec.Command(filePath,os.Args[1:]...) //将其他命令传入生成出的进程 cmd.Stdin=os.Stdin //给新进程设置文件描述符,可以重定向到文件中 cmd.Stdout=os.Stdout cmd.Stderr=os.Stderr cmd.Start() //开始执行新进程,不等待新进程退...阅读全文

博文 2015-06-17 20:15:59 ghost911_slb

Golang实现ping

ICMP部分的结构 报头 ICMP报头从IP报头的第160位开始,即第20个字节开始(除非使用了IP报头的可选部分)。 Bits 160-167 168-175 176-183 184-191 160 Type Code 校验码(checksum) 192 ID 序号(sequence) Type - ICMP的类型,标识生成的错误报文;Code - 进一步划分ICMP的类型,该字段用来查找产生错误的原因.;例如,ICMP的目标不可达类型可以把这个位设为1至15等来表示不同的意思。Checksum - 校验码部分,这个字段包含有从ICMP报头和数据部分计算得来的,用于检查错误的数据,其中此校验码字段的值视为0。ID - 这个字段包含了ID值,在Echo Reply类型的消息中要返回这个字段。...阅读全文

博文 2016-04-13 22:00:06 simplelovecs

关于Go语言daemon启动的方法.

昨天搞了个文件共享的小程序,遇见了意见蛋疼的事,就是启动之后终端不能关闭,不然程序也会随着关闭. 我的解决方法: nohup ./httpserver & nohup这个命令可以把程序放后台运行,顺便通过1>和2>把标准输出和标准错误重定向到文件,这样程序崩溃时才会有记录可查,这两者和程序的日志最好是分开,混在一起没办法判断轻重缓急: nohup ./server 1> server.out 2> server.err 进程启动时候记录下自己的pid: if pid := syscall.Getpid(); pid != 1 { ioutil.WriteFile("server.pid", []byte(strconv.Itoa(pid)), 0777) defer os.Remove("s...阅读全文

博文 2016-01-05 20:00:00 fyxichen

编译go及go get进度显示

一、首先附上编译完成能显示go get进度的Go包: centos7直接解压版go:http://pan.baidu.com/s/1mik3cI8 windows7直接解压版go:http://pan.baidu.com/s/1jIaxKEE 一、编译之前修改go get进度显示: 因为beego在github.com上的包有点大, 所以 go get github.com/leanote/leanote/app 会很慢, 这个会执行几分钟或更长, 不知道的朋友还以为卡死了. 找了下 go get 没有一个选项可以输出进度的, 于是决定修改golang源码(别以为很有技术含量, 还不是go代码?). 看了下golang的源码 src/cmd/go 下是go命令的源码, 其中, get.go是...阅读全文

博文 2016-08-06 19:00:01 tantexian

调用其它程序并得到程序输出(go和python)

在c语言中可以用system函数调用系统命令并得到输出,通过输出重定向也可以将程序执行的输出保存到文件以供使用,但用起来不是很方便。我这里介绍下用python和go语言的实现方式,可以将其它程序的输出直接保存成变量供程序使用。 下面的示例用的是ls命名,需要安装MinGW,并将“C:\MinGW\msys\1.0\bin”加入环境变量。 一、用python调用其它程序,并得到输出 示例代码: import osvar = os.popen('ls -l').read()print var 运行效果(以我机器为例): 二、用go语言调用其它程序,并得到输出 go代码: package mainimport ( "exec" // "os/exec" in go1 "fmt")func main...阅读全文

golang中 net/http 网络连接与协程

前言: golang处理http一般有这几种方式: 直接使用net包(这个是很底层的包,是tcp层次,需要自己进行封装)。 使用http包(这个是已经封装好的,可以直接使用的)。 最后的是使用第三方的开源包(不太建议,一般是使用官方的http包,方便升级和迁移)。 http包中包含http请求的客户端和服务端处理流程的实现。这些方法以函数的方式来实现http各个流程,如:Get,Head,Post,以及PostForm。golang的http处理和其余的web语言类似但又有不同之处,其余的语言比如php是利用进程来处理每个请求的而golang是在底层包中就实现了用协程来hold各个http连接,这是其最大的不同,这样golang就直接用其http包实现后端服务器的功能而不必使用nginx或t...阅读全文

博文 2018-06-17 22:34:38 coopbee

单点登录设计方案

单点登录设计方案 随着业务复杂性的增加,作为一个整体的应用程序会被划分成许多“模块”,这通常需要考虑为这些子应用程序建立一个共同的基础,或者说,一开始就选择SOA的设计方式。不管怎样,我们开始运行多个单独的应用程序,并且需要它们无缝交互时,共同的基础就是必备的。实现单点登录服务便是其中必备功能之一。 授权与认证的概念 很多人容易搞混这两个概念。最典型的就是OAuth。比如我们要建立一个集中式统一认证体系,有人就会跳出来建议使用OAuth。但实际上OAuth是一个授权系统,而不是身份认证系统。 这个很具有迷惑性。比如,你可能想某网站X通过OAuth“验证”你的QQ账户,让你能直接访问该网站。 但你真正做的是允许该网站X使用OAuth provider(服务提供方,比如-腾讯)存储的你的信息。 ...阅读全文

golang使用fasthttp 发起http请求

fasthttp 据说是目前golang性能最好的http库,相对于自带的net/http,性能说是有10倍的提升,具体介绍可以看看官方介绍: valyala/fasthttp 正好最近需要用到,但是发现网上的资料也不是很多,特别是关于client模块的就更少了,只有一些翻译成中文的文档,于是乎就把关于client的代码研究了一下,总结了一些比较简单的使用方法,测试对比net/http是有一定程度的提升,如果需要用到http client似乎fasthttp也是一个不错的选择,当然fasthttp也可以用来做http服务的,不过着并不在此次研究范围内。 顺便也提下他的不足之处吧: 一个是他目前还没有支持http2, 一个是不支持WebSocket,但是WebSocket貌似已经有第三方库的支...阅读全文

博文 2019-01-16 12:34:43 gogo_zhou

python requests 基础学习

Requests是用Python语言(http://www.maiziedu.com/course/python/)编写的。在Python标准库中的urllib2模块为我们所需要的大多数http功能,但是它的 API 不友好。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务,所以学习reuqests模块,比较简洁好用(以后慢慢会学习scapy,更强大的库),安装就不用说了      1 导入模块      >>> import requests      2 直观感受一下发送请求的简洁      >>> r = requests.get('your url')      >>> r = requests.post('you...阅读全文

Go实战--golang中OAuth2.0的使用(使用google账号进行登陆验证)

生命不止,继续 go go go!!! 今天继续分享golang中的认证问题,之前写过两篇: 一篇是关于basic认证:Go实战–通过basic认证的http(basic authentication) 一篇是关于JWT的:Go实战–golang中使用JWT(JSON Web Token) 这里就介绍一下golang中使用oauth2.0. OAuth2.0 OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。2012...阅读全文

博文 2017-09-19 11:31:36 wangshubo1989

google appengine的yaml文件,配置说明

application: myapp # 你的google app id version: 1 # 版本 runtime: go # 运行时语言 api_version: go1 # API的版本 default_expiration: 1d 2h 3m 4s # 可选的,如果静态资源没有设置expiration,则会使用该项 handlers: # 分发器 - url: /stylesheets # 扩展的posix regex表达式,可以使用\W, \w, \S, \s, \D, \d static_dir: stylesheets # 静态目录 mime_type: xxxx # 可选的,如果设置了,就会指定response的类型 expiration: 1d 2h 3m 4s # 可...阅读全文

博文 2014-10-04 19:27:47 刘地

beego1.6.1 使用Redirect方法重定向301之后路由就失效了

登出方法 ``` func (c *IndexController) Logout() { beego.Debug("==========", 123) c.Redirect("/", 301) } ``` 第一次掉用可以生效,再次打开这个路由的话,就直接转到首页了,根本就不进方法里,也就是那个debug信息没有打印出来,如果重定向code改成302就没有这样的问题,求解决办...阅读全文

golang 的编译安装以及supervisord部署

go的编译 go的编译相对很简单,只需要一个命令即可完成,进入项目开发路径,输入 go install 即可在bin文件夹下生成可执行文件 appName。此文件可直接运行。 备注:生成的可执行文件只包含go的程序文件,配置文件,views文件等需要拷贝过来,这样才能组成一个完整的运行程序。 go的部署 supervisord安装 yum install setuptools //先安装工具 yum install supervisor 修改配置文件 vi /etc/supervisord.conf 将最后一行的代码改为 files = /etc/supervisord.conf.d/*.conf 新增文件并编写配置 vi /etc/supervisord.conf.d/...阅读全文

golang 爬取教务系统的成绩 goquery的使用

const ( login_url string="你的网页"//登陆页 post_url string="你的URL"//跳转页(隐藏路由) main_url string="你的URL"//进入学生专区页 score_url string="你的URL"//成绩页面 creit_url string="你的URL" ) func Login(id string,password string,kksj string,xsfs string) (interface{} interface{},interface{},interface{}){ course_url := "http://jwcxxcx.ccsu.cn/jwxt/tkglAction.d...阅读全文

如何写 go 中间件

编写 go 中间件看起来挺简单的,但是有些情况下我们可能会遇到一些麻烦。 让我们来看一些例子。 ## 读取请求 我们例子中的所有中间件都会接收一个 `http.Handler` 作为参数,并返回一个 `http.Handler` 。 这样便于将中间件链接起来。我们所有的中间件将会遵循如下基本模式: ```go func X(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Something here... // 这里还有一些其他信息 h.ServeHTTP(w, r) }) } ``` 假设我们想要将所有请求重定向到一个末尾斜杠(例...阅读全文

博文 2018-05-10 21:36:47 SergeyChang

beego实现过滤器功能

beego 支持自定义过滤中间件,例如安全验证,强制跳转等。 过滤器函数如下所示: beego.InsertFilter(pattern string, postion int, filter FilterFunc, params ...bool) InsertFilter 函数的三个必填参数,一个可选参数 · pattern 路由规则,可以根据一定的规则进行路由,如果你全匹配可以用 * · postion 执行 Filter 的地方,四个固定参数如下,分别表示不同的执行过程 1. BeforeRouter 寻找路由之前 2. BeforeExec 找到路由之后,开始执行相应的 Controller 之前 3. AfterExec 执行完 Controller 逻辑之后执行的过滤器 4. F...阅读全文

博文 2017-02-10 16:08:39 skh2015java

用SetStdHandle重定向golang的panic信息

go程序一般都会有很多的goroutine,panic打印了满屏的goroutine的信息,而且windows自带的控制台能显示的信息很有限,这样就出错的提示信息总是会被刷掉了。以前用过console2来替代控制台,但是这个软件不是很友好,通常显示的信息的格式问题比较多,而且汉字显示问题很大。今天又仔细的研究了下发现以前网上看的的SetStdHandle代码改动下就可以了。代码如下,只要把var f *os.File这个作为全局变量就可以了 import ( "code.google.com/p/log4go" "os" "syscall" ) var ( kernel32 = syscall.MustLoadDLL("kernel32.dll") procSetStdHandle = ke...阅读全文

博文 2015-06-17 20:17:46 varding

用js异步提交表单后,怎么接受服务端返回的cookie

我用jqury.form.js 异步提交了一个登陆账号表单,服务端验证通过了,我写了一个cookie,返回的数据全被js拦截了,cookie也没有写到浏览器,我要怎么才能处理这个cookie呢? 下面是我的golang代码片段 ``` func loginHandler(w http.ResponseWriter, r *http.Request){ //do something // 获取表单信息 加 判断 //返回cookie SetCookie(loginInfo.username,w) http.Redirect(w, r, "/", 302) return } func SetCookie(name string, w http.Respons...阅读全文

go http实现HDFS操作

## HDFS介绍 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。 目前使用golang调用hdfs的方式有以下几种: - 使用go http 调用webHDFS/httpfs接口实现。 - 使用c li...阅读全文

博文 2018-12-17 18:09:02 ghbin0108

supervisor运行golang守护进程

最近在鼓捣golang守护进程的实现,无意发现了supervisor这个有意思的东西。supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来实现golang的守护进程,下面描述下具体实现。 安装supervisor 基于centos 6.4。 supervisor使用python编写的,可以用easy_install安装。centos上默认有python的运行环境,安装起来就非常简单了。 $ sudo yum install python-setuptools $ sudo easy_install supervisor 如果没有看到什么报错,那么就安装成功了,可以使用echo_supervisord_...阅读全文

博文 2015-10-11 11:01:56 陈杰斌

从零部署 supervisor 维护 golang 进程

golang supervisor go准备工作 创建一个项目,里面main.go代码 代码摘自 package main import ( "fmt" "log" "net/http" "strings" ) func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() //解析参数,默认是不会解析的 fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息 fmt.Println("path", r.URL.Path) fmt.Println("scheme", r.URL.Scheme) fmt.Println(r.Form["url_long"...阅读全文

博文 2017-10-20 12:04:44 正为疯狂

OAuth2 和 OpenID Connect ServerORY Hydra

![image](https://static.oschina.net/uploads/space/2019/0627/192201_Pvxr_3734192.png) ORY Hydra 是针对低延迟,高吞吐量和低资源消耗而优化的强化 OAuth2 和 OpenID Connect Server,也就是一个 OAuth 2.0 的服务端框架,它能够发出访问、刷新和 ID 令牌。Ory Hydra 不提供用户管理(登录、注销、配置文件管理、注册),而是使用基于重定向的流和 REST API 将用户身份验证(登录)委托给实现和控制的服务。 主要特点: * Ory Hydra 实现 IETF 制定的开放标准 * Ory Hydra 是 OpenID 基金会认证的 OpenID 提供...阅读全文

开源项目 2019-07-05 18:30:01 ory

URL短链接服务 Shortme

![image](https://github.com/andyxning/shortme/raw/master/logo.png) 使用Golang编写的URL短链接服务。当前版本1.2.0。 Shortme的特点 * 相同的URL对应成不同的短链接 * 提供了short和expand的api。expand的api通过[HTTP的307状态码](https://httpstatuses.com/307)进行重定向 * 黑名单。避免一些不是特别好的短链接,比如fuck, stupid等;同时避免了同shortme其它的api接口相同,如果短链接跟shortme的其它api接口比如version和health相同,则对应的短链接不能完成expand的操作,会被...阅读全文

Golang爬虫全攻略

本文地址:https://www.jianshu.com/p/4e53d4727152 一、简介 Golang诞生已经超过十个年头了,发展得愈发完善,其简单方便的协程并发机制使得其在爬虫领域有着一定的天赋。 首先我们来看一看,Golang相对于Python这个爬虫领域的传统强者,有哪些优点和缺点。 优点: 完善简便的协程并发机制 并发数量大 占用资源少 运行速度更快 部署方便 缺点: 数据处理比较繁琐 成熟工具不是很多 资料较少 实现相同逻辑需要的代码更多 由于Golang本身静态语言的特性,和其特别的异常处理方式等等原因,在发起较复杂的请求时需要的代码量自然会比Python多不少,但是其并发的数量也是远超Python的,所以两者应用的场景并不十分相同,我们可以根据需要灵活的选择。 在刚刚接...阅读全文

博文 2019-05-20 18:34:43 王南北丶

使用 Go(Golang)实现 OAuth2.0

2018 年 7 月 1 日 OAuth2 是一种身份验证协议,用于使用其他服务提供商来对应用程序中的用户进行身份验证和授权。 本文将介绍如何构建 Go 应用程序  来实现 OAuth2 协议。 > 如果您想查看代码,可以在[此处](https://github.com/sohamkamani/go-oauth-example) 查看 ## OAuth2 流程 在我们开始实现之前,让我们简要介绍一下 OAuth 协议。如果您曾经见过类似这样的对话框,那么您可能对 OAuth 的含义有所了解: ![gitlab 使用 GitHub OAuth](https://raw.githubusercontent.com/studygolang/gctt-images/master/implement...阅读全文

关闭HTTP的响应

当你使用标准http库发起请求时,你得到一个http的响应变量。如果你不读取响应主体,你依旧需要关闭它。对于新的Go开发者而言,这个很容易就会忘掉。 错误的做法 resp可能为nil resp, err := http.Get(url) defer resp.Body.Close()//may panic if err != nil { return err } err不为nil,resp也不为nil 有些同学可能以为这样子修改代码就可以了 resp, err := http.Get(url) if err != nil { return err } defer resp.Body.Close() 这对于绝大多数情况是可以的,因为err不为nil往往意味着resp为nil,但是当遇到一个重定...阅读全文

博文 2017-11-06 07:04:41 因心而来

Go 语言的 http 包工作模式

译注: 这篇文章的内容非常基础,也非常容易理解。 原文地址,感觉是最能清晰的讲述了 net/http包的用法的一篇,故翻译一下共享之。 Go 语言中处理 HTTP 请求主要跟两个东西相关: ServeMux和 Handler。 ServrMux 本质上是一个 HTTP 请求路由器(或者叫多路复用器,Multiplexor)。它把收到的请求与一组预先定义的 URL 路径列表做对比,然后在匹配到路径的时候调用关联的处理器(Handler)。 处理器(Handler)负责输出HTTP响应的头和正文。任何满足了 http.Handler接口 的对象都可作为一个处理器。通俗的说,对象只要有个如下签名的 ServeHTTP方法即可: ServeHTTP(http.ResponseWriter, *htt...阅读全文

博文 2016-09-05 20:00:02 caiyang101

gin退出登录清理Cookie问题笔记

问题描述 : python项目go重写,使用gin context中的cookie方法清理缓存。当第一退出登陆之后,cookie可以正常清理,但是当第二次之后登录系统再退出登录,就会发现缓存一直清理不了。找了很久都不知道为什么导致这样 解决方法 :求助我们的大佬,反复调试发现,使用http状态码301永久重定向会出现这个问题,修改为302之后,问题解决...阅读全文

博文 2018-05-31 11:07:42 18393910396

supervisor管理golang程序

1、安装supervisor apt-get install supervisor 2、新建配置 /etc/supervisor/conf.d/test.conf 注:directory是可执行文件路径,command是可执行文件,stdout_logfile是日志文件,autostart表示服务是否需要跟随supervisor启动,autorestart表示当服务挂掉的时候是否需要自动重启,user 以什么用户执行,redirect_stderr重定向 [program:test] directory = /opt/golang/work/src/test command = /opt/golang/work/src/test/test autostart = true autoresta...阅读全文

博文 2016-11-09 04:00:04 别人说我名字很长

理解OAuth 2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 一、应用场景 为了理解OAuth的适用场合,让我举一个假设的例子。 有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"读取自己储存在Google上的照片。 问题是只有得到用户的授权,Google才会同意"云冲印"读取这些照片。那么,"云冲印"怎样获得用户的授权呢? 传统方法是,用户将自己的Google用户名和密码,告诉"云冲印",后者就可以读取用户的照片了。这样的做法有以下几个严重的缺点。 (1)"云冲印"为了后续的服务,...阅读全文

博文 2017-11-29 01:55:56 阮一峰的网络日志

RESTful API 设计最佳实践

文:RESTful API Design. Best Practices in a Nutshell.作者:Philipp Hauer 项目资源的URL应该如何设计?用名词复数还是用名词单数?一个资源需要多少个URL?用哪种HTTP方法来创建一个新的资源?可选参数应该放在哪里?那些不涉及资源操作的URL呢?实现分页和版本控制的最好方法是什么?因为有太多的疑问,设计RESTful API变得很棘手。在这篇文章中,我们来看一下RESTful API设计,并给出一个最佳实践方案。 每个资源使用两个URL 资源集合用一个URL,具体某个资源用一个URL: /employees #资源集合的URL /employees/56 #具体某个资源的URL 用名词代替动词表示资源 这让你的API更简洁,URL...阅读全文

博文 2017-10-16 02:54:00 众成翻译

一个session验证登录问题

我封装了个 验证session是否存在 函数, 并且我在 http的每个访问路由页面都调用了 **我想问下 大家在不用任何框架的情况下 如何验证是否登录状态的** ~~~ 然后我一些用户中心的页面头部都加了这个一个调用函数, 但是我尝试谢了个post接收的接口 就在第一句就加了这个,当尝试注册的时候既然通过了注册成功 虽然他提示 没有找到session 但是后面的代码他依然执行了 不知道为什么! IsSessionAdminLogin(w, r) ~~~ ~~~ func IsSessionAdminLogin(w http.ResponseWriter, r *http.Request) { //result := false sess2 := gl...阅读全文

移动H5前端性能优化指南

脚本执行优化预加载首屏加载 2015 /11/12 15:15 1条评论 移动H5前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用 2. 在Mobile侧我们提出三秒种渲染完成首屏指标 3. 基于第二点,首屏加载3秒完成或使用Loading 4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB 5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点 6. 基于第五点,要合理处理代码减少渲染损耗 7. 基于第二、第五点,所有影响首屏加载和渲染的代码应在处理逻辑中后置 8. 加载完成后用户交互使用时也需注意性能 优化指南 [...阅读全文

go调用其它C库,若采用命令行方式,不支持重定向的输出解决;smp协议未打开,发送信息到对方,没人响应

很多时候要学会站在巨人的肩膀上,该用别人 现有的东东一定要用,只要是开源合法的 go调用其它C库,一般两种方式,1,查看是否有接口,采用cgo方式编写;2.采用命令行直接执行,前提必须被调用的C库已经安装运行在该机器上 为了高效处理gif文件,采用gifsicle工具 http://download.csdn.net/detail/u010026901/7711469 重定向符合 > 在代码中会出错,所以在代码中实现重定向代替命令行重定向 package main import ( // "encoding/json" // "fmt" "log" "os" "os/exec" ) func main() { f, _ := os.Create("out") cmd := exec.Comm...阅读全文

博文 2016-02-22 12:00:06 u010026901

企业建站需要注意的方面

当今是互联网盛行时代,越来越多公司企业入驻互联网当中。网站成为了企业在网络上与客户对接的窗口。如何把企业网站做好?怎么样才能让客户找到你的网站?很多人在企业建站时因为前期没做好准备,粗略的把网站建设出来,导致后期网站运营乏力、推广效果差。今天小编给大家分析一下:企业建站需要注意的方面有哪些。 一、网站的详细策划 网站建设前的策划是你网站建设的重中之重,要从多个方面来拟定策划,才能让你网站在后期运营的更好。 1.同行业的市场分析(分析同行业网站优势,吸取别人的精华,分析同业网站的缺点,在建设过程中避免同类问题出现在自身上) 2.网站的定向(要明确自己方向,要找到自己的核心,这样才能更好的在后期进行发展) 3.要有自己的特点(无论你是做服务还是卖产品,都要有自己突显的地方,...阅读全文

简单的网站优化方法

简单的网站优化方法 做好网络推广,首先你要做好网站的站内优化。 一、 关键词: 做站内优化,第一步也是最重要的就是关键字的选择,这一个关乎你后期页面的排名,一个网站不但首页排名高,其他页面排名上来了,这样才能到达覆盖效果。 小建议: 1.合理的挑选关键词 2.不要把所有词都堆积在首页, 3.关键词的部署要分配好,(顶级关键词、目标关键词、固定关键词、长尾关键词分配不同的页面) 4.每个页面关键词使用合理 例:耐思尼克首页 文章页面 每个栏目页面的关键词选择都要不同,title;keyword;description都需要设定好,针对自身的产品或者服务来选定自己的关键词。注:如果是一个新站,已经有许多行业网站,你在关键词的选择上可以偏向于长尾词...阅读全文

记录golang 的一个坑

使用golang做web服务的时候,会出现一个问题: 他默认页就是index.html,也就是说对于request , http://localhost/ 和http://localhost/index.html, 对于业务层来说,收到的请求全部是http://localhost 这个坑一般情况下是没有问题的,但是如果你想区分这两个请求的时候,就没有办法了,因为进入你的handler的时候,已经无法区分了。 先抱怨一把,为了这个问题,还给领导批了一顿,还害的公司的另外一个同事的印象不好了,挺难过的 好了,不废话了。分析下原因,其实很简单,go里面做了重定向嘛,会把/index.html 这样的请求 自动解析成 / 为了证明自己的想法,就去看了下源码(:-),还好这货是开源的,否则就真要哭了,...阅读全文

博文 2016-04-09 04:00:06 mi_tiger

网站优化与推广的细节

网站优化与推广的细节 做网站优化推广的成效在于细节,往往在起初的时候,可能忽略了一个小细节导致没有得到更高的效益。前文我给大家讲解过小部分关于简单的网站优化方法。今天我给大家继续详细讲下网站优化与推广的细节。昨天给大家讲解了关键词、网站地图、404页面、301重定向。今天给大家讲一下其他方面的站内优化。 一、站内优化 1.内链布局策略(给重要网页更多关注、控制文章内链数量) 2.内容优化(原创文章内容与伪原创文章内容) 3.内容细节优化(标题、关键词、描述设置) 4.次导航 5.图片ALT属性、title标签 6.关键词密度 做网站推广的大前提就是自身网站的优化一定要做好、做充分,这样才能更好的去做站外优化推广。做网络推广,最重要的是需要沉淀与沉积。...阅读全文

supervisor用为golang后台创建守护进程

supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。下面基于centos 6.6,描述下具体实现:sudo yum install python-setuptools sudo easy_install supervisor如果没有看到什么报错,那么就安装成功了,可以使用echo_supervisord_conf查看配置详情,而后生成配置文件。sudo echo_supervisord_conf > /etc/supervisord.conf假设如下一段简单的golang代码:package main import ( "fmt" "log" "net/http") func main() { http.Handl...阅读全文

博文 2017-02-09 17:24:01 ponpon_

在CentOS7上用Supervisor运行Golang守护进程

安装pip 下载pip安装文件并执行安装 下载文件[root@snails ~]# wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate 执行安装[root@snails ~]# python get-pip.py [root@snails ~]# pip -V pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7) 设置pip国内aliyun源 创建或修改配置文件linux ~/.pip/pip.conf windows %HOMEPATH%\pip\pip.ini 修改内容 [global] index-url = http://mirrors.a...阅读全文

博文 2017-02-10 15:52:18 技术学习

go语言编译生成文件无法用crontab执行,sh -x分析报错 cannot execute binary file,命令行下可以执行

aiFileTrans程序每2分钟扫描读取解析文件,把解析的每行数据插入MySQL数据库。程序在终端可以运行。 aiFileTrans程序权限是可执行的,就在本机上编译生成的包,但就是报错: cannot execute binary file,是不是我crontab需要声明环境变量呢?请大神指点,先谢谢了。 报错内容(重定向到/root/1.txt) [root@localhost bin]# cat /root/1.txt /root/tasks/go/fjgd/bin/aiFileTrans: /root/tasks/go/fjgd/bin/aiFileTrans: cannot execute binary file crontab内容如下: */2 * ...阅读全文