开发web服务程序

本文档介绍了如何使用Go语言开发Web服务程序cloudgo,包括任务目标、基本要求和扩展要求。主要内容涵盖服务器和路由的创建、静态文件服务、JS访问支持、表单提交与表格展示、curl测试及ab压力测试。还对net/http库进行了源码分析,解释了Go程序设计技巧。
摘要由CSDN通过智能技术生成

服务计算Homework07

项目地址
文件说明

  • main.go为启动程序
  • server/server.go实现创建服务器和router
  • handle/handlers.go主要实现提交表单输出表格相应的handle
  • assets/testjs.html为支持简单js访问对应的展示界面
  • assets/testjs.js为支持简单js访问对应的js
  • assets/login.html为提交表单对应的展示界面
  • templates/sheet.html为输出表格对应的页面

使用说明

  • 下载项目后直接输入命令go run "hw07\main.go"即可启动服务器,启动服务器后访问对应网址即可查看对应结果
  • 访问localhost:2125到达hw/07目录
  • 访问localhost:2125/static/查看静态文件服务结果,点击文件即可查看
  • 访问localhost:2125/assets/testjs.html查看简单js访问结果
  • 访问localhost:2125/login查看提交表单,并输出一个表格结果
课程任务

开发简单 web 服务程序 cloudgo,了解 web 服务器工作原理。

1. 任务目标
  • 熟悉 go 服务器工作原理
  • 基于现有 web 库,编写一个简单 web 应用类似 cloudgo。
  • 使用 curl 工具访问 web 程序
  • 对 web 执行压力测试
2. 基本要求
  • 编程 web 服务程序 类似 cloudgo 应用
    • 支持静态文件服务
    • 支持简单 js 访问
    • 提交表单,并输出一个表格(必须使用模板)
  • 使用 curl 测试,将测试结果写入 README.md
  • 使用 ab 测试,将测试结果写入 README.md。并解释重要参数
实现过程

先下载所需要用到的包

  • go get github.com/unrolled/render
  • go get github.com/codegangsta/negroni
  • go get github.com/gorilla/mux
  1. main.go实现监听端口并打开服务器

    func main() {
         
    	port := os.Getenv("PORT")
    	// 默认port为2125
    	if len(port) == 0 {
         
    		port = "2125"
    	}
    	// 解析port
    	currentPort := pflag.StringP("port", "p", "2125", "Port for http listening")
    	pflag.Parse()
    	if len(*currentPort) != 0 {
         
    		port = *currentPort
    	}
    	// 启动服务器
    	m := server.NewServer()
    	m.Run(":" + port)
    }
    
  2. server.go实现了服务器和router的创建

    func NewServer() *negroni.Negroni {
         
    	router := mux.NewRouter()
    	router.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir("d:/goworks/src/hw07/assets/"))))
    
    	router.HandleFunc("/json", handle.JsonHandler)
    
    	router.HandleFunc("/login", handle.LoginHandler)
    
    	router.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir("d:/goworks/src/hw07/"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值