• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > Go语言使用HTTP包创建WEB服务器的方法

Go语言使用HTTP包创建WEB服务器的方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了go语言web开发,go语言web下载文件,go语言web,go语言web框架,go语言服务器等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了Go语言使用HTTP包创建WEB服务器的方法。分享给大家供大家参考,具体如下:

在Golang中写一个http web服务器大致是有两种方法:

1 使用net包的net.Listen来对端口进行监听

2 使用net/http包

这里是讨论如何使用net/http包创建一个web服务器

net/http请求提供了HTTP客户端和服务端的具体实现

http客户端

先看到的是Get,Post,PostForm三个函数。这三个函数直接实现了http客户端
    "fmt"
    "net/http"
    "io/ioutil"
)
func main() {
    response,_ := http.Get("http://www.baidu.com")
    defer response.Body.Close()
    body,_ := ioutil.ReadAll(response.Body)
    fmt.Println(string(body))
}</div>

除了使用这三个函数来建立一个简单客户端,还可以使用:

http.Client和http.NewRequest来模拟请求
import (
    "net/http"
    "io/ioutil"
    "fmt"
)
func main() {
    client := &http.Client{}
    reqest, _ := http.NewRequest("GET", "http://www.baidu.com", nil)
    reqest.Header.Set("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
    reqest.Header.Set("Accept-Charset","GBK,utf-8;q=0.7,*;q=0.3")
    reqest.Header.Set("Accept-Encoding","gzip,deflate,sdch")
    reqest.Header.Set("Accept-Language","zh-CN,zh;q=0.8")
    reqest.Header.Set("Cache-Control","max-age=0")
    reqest.Header.Set("Connection","keep-alive")
    response,_ := client.Do(reqest)
    if response.StatusCode == 200 {
        body, _ := ioutil.ReadAll(response.Body)
        bodystr := string(body);
        fmt.Println(bodystr)
    }
}</div>

如何创建web服务端?

http包封装地非常bt,只需要两行!!:

import (
    "net/http"
)
func SayHello(w http.ResponseWriter, req *http.Request) {
    w.Write([]byte("Hello"))
}
func main() {
    http.HandleFunc("/hello", SayHello)
    http.ListenAndServe(":8001", nil)

}</div>
进行端口的监听:http.ListenAndServe(":8001", nil)

注册路径处理函数:http.HandleFunc("/hello", SayHello)

处理函数:func SayHello(w http.ResponseWriter, req *http.Request)

golang服务器的效率怎样呢?

看看这个帖子:

http://groups.google.com/group/golang-nuts/browse_thread/thread/cde2cc6278cefc90

node.js is 45% faster than golang(确实伤心)

golang服务端的效率确实没有node.js高,几乎是它的一半。但话说回来,如果一些并发量不是很大的site,还是可以使用golang做服务器的。

希望本文所述对大家Go语言程序设计有所帮助。

</div>

您可能想查找下面的文章:

  • Go语言使用HTTP包创建WEB服务器的方法
  • 利用Go语言初步搭建一个web应用的教程
  • go语言实现通过FTP库自动上传web日志
  • Go语言实现的web爬虫实例
  • Go语言实现简单Web服务器的方法
  • Go语言实现简单的一个静态WEB服务器
  • Go语言实现的一个简单Web服务器
  • Go语言开发环境搭建与初探(Windows平台下)

相关文章

  • go语言制作的zip压缩程序
  • Go语言操作mysql数据库简单例子
  • Go语言struct类型详解
  • Go语言中字符串的查找方法小结
  • go语言中range用法
  • 在ubuntu下构建go语言开发环境的方法
  • GO语言(golang)基础知识
  • 一步步教你编写可测试的Go语言代码
  • Go语言单链表实现方法
  • go语言睡眠排序算法实例分析

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • golang struct扩展函数参数命名警告解决方法
    • Windows环境下vscode-go安装笔记(不支持32位)
    • Golang加密解密之RSA(附带php)
    • Golang学习笔记(三):控制流
    • Go语言多值替换的HTML模板实例分析
    • linux中用shell快速安装配置Go语言的开发环境
    • go语言实现一个简单的http客户端抓取远程url的方法
    • Go语言用map实现堆栈功能的方法
    • Go语言里的结构体文法实例分析
    • GO语言类型转换和类型断言实例分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有