Go by Example 中文版: HTTP 服务端
时间:2022-07-24
本文章向大家介绍Go by Example 中文版: HTTP 服务端,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
[Go by Example 中文版](https://gobyexample-cn.github.io/): HTTP 服务端
使用 net/http 包,我们可以轻松实现一个简单的 HTTP 服务器。 示例代码如下:
// Go by Example 中文版:HTTP 服务端
// https://gobyexample-cn.github.io/http-servers
// 使用net/http包,我们可以轻松实现一个简单的HTTP服务器。
package main
import (
"fmt"
"net/http"
)
/**
** handlers 是net/http服务器里面的一个基本概念。
** handler 对象实现了http.Handler接口。
** 编写handler的常见方法是,在具有适当签名的函数上使用http.HandlerFunc适配器。
*/
/**
** handler 函数有两个参数,http.ResponseWriter和http.Request。 reponse writer被用于写入HTTP响应数据,
** 这里我们简单的返回"hellon"。
*/
func hello(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "hellon")
}
/**
** 这个handler稍微复杂一点,我们需要读取的HTTP请求header中的所有内容,并将他们输出至response body。
*/
func headers(w http.ResponseWriter, req *http.Request) {
for name, headers := range req.Header {
for _, h := range headers {
fmt.Fprintf(w, "%v: %vn", name, h)
}
}
}
func main() {
/**
** 使用 http.Handler函数,可以方便的将我们的handler注册到服务器路由。它是net/http包中的默认路由,
** 接受一个函数作为参数。
*/
http.HandleFunc("/hello", hello)
http.HandleFunc("/headers", headers)
// 最后,我们调用ListenAndServe 并带上端口和handler。
// nil表示使用我们刚刚设置的默认路由器。
http.ListenAndServe(":8090", nil)
}
后台运行服务器。
$ go run http-servers.go &
访问 /hello
路由。
$ curl localhost:8090/hello
hello
使用curl分别访问/hello
和headers
路由如下图所示:
在Google Chorme浏览器中访问http://localhost:8090/hello输出如下图所示的信息:
再访问http://localhost:8090/headers路由,如下图所示:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- C++核心准则SF.6:(只)为转换,基础库或在局部作用域内部使用using namspace指令
- C++核心准则SF.7:不要在头文件中的全局作用域中使用using namespace指令
- 二叉树:看看这些树的最小深度
- Hive初体验
- Hive数据的存储以及在centos7下进行Mysql的安装
- 一个改进的数学学习工具
- 配置hive的元数据到Mysql中
- 二叉树:我有多少个节点?
- POST请求和GET请求如何传递和接收解析参数
- 二叉树:我平衡么?
- 机器学习中的常用编码方式(二)
- 个人Next主题配置文件
- 数组中出现次数超过一半的数字
- 二叉树:找我的所有路径?
- Java每日一题20201008