golang web服务器性能,使用Golang 搭建http web服务器

Golang在搭建web服务器方面的能力是毋庸置疑的。官方已经有提供net/http包为搭建http服务器做准备。使用这个包能很简单地对web的路由,静态文件,模版,cookie等数据进行设置。至于这个包是否好用,这个就见仁见智了。你可以从net包开始封装一个web框架,当然也可以基于http包封装一个web框架。但是不论你是打算怎么样做,了解基本的net/http包一定是你借鉴的基础。

需求

我们要做两个简单的后台web系统。这个系统简单到只有两个页面:登陆和首页。

1 登陆页面

当用户名和密码正确的时候,需要在cookie中种下用户名和加密后的密钥来进行cookie认证。我们不对cookie设置ExpireTime,这样这个cookie的有效期就是浏览器打开到浏览器关闭的session期间。

另外,这个页面还需要加载一个js。提交用户名和密码的是由js进行ajax post命令进行查询的。

这个页面需要加载css,进行页面排版

首先右上角的”欢迎登陆, 管理员:yejianfeng“。这里的用户名yejianfeng是根据不同的用户会进行变化的。这里需要用到模版,我们又会用到了一个模版包html/template。这个包的作用就是加载模版。

其次这个页面也需要的是css,js(退出系统的删除cookie操作由js控制)

路由

分析下访问路径,会有几个文件:

/admin/index -- 首页

/login/index --登陆页显示

/ajax/login -- 登陆的ajax动作

/css/main.css -- 获取main的css文件

/js/login.js -- 获取登陆的js文件

在net/http包中,动态文件的路由和静态文件的路由是分开的,动态文件使用http.HandleFunc进行设置,静态文件就需要使用到http.FileServer

这里的http.FileServer(http.Dir("template"))的路径是怎么算的要注意下了。相对路径都是从当前执行路径路径下开始算的,这里设置的路径树是这样:

处理器

这里需要定制4个handler对应相应的一级路径。我们将这些个handler都放入到route.go文件中

main中的逻辑是当/admin/ /login/ /ajax/都不符合路径的时候就进入404页面处理器NotFoundHandler

12

func NotFoundHandler(w http.ResponseWriter,r *http.Request) {

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值