查看“Go网络编程-HTTP Server”的源代码
←
Go网络编程-HTTP Server
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
<span id="简介-1"></span> == 简介 == 在这个例子中,你将学习如何在Go中创建一个简单的HTTP服务器。首先,让我们谈谈我们的HTTP服务器应该能够做什么。一个基本的HTTP服务器有几个关键任务需要处理。 * 处理动态请求:处理来自浏览网站、登录账户或发布图片的用户的传入请求。 * 提供静态资源:向浏览器提供JavaScript、CSS和图片,为用户创造动态体验。 * 接受连接:HTTP服务器必须监听特定端口,以便能够接受来自互联网的连接。 <br> == 处理动态请求 == net/http包包含了接受请求并动态处理它们所需的所有工具。我们可以使用http.HandleFunc函数注册一个新处理器。它的第一个参数是匹配路径,第二个参数是要执行的函数。在这个例子中:当有人浏览你的网站(http://example.com/)时,他或她将收到一条友好的消息。 <syntaxhighlight lang="go">http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Welcome to my website!") })</syntaxhighlight> <br> 对于动态方面,http.Request包含了有关请求及其参数的所有信息。你可以使用r.URL.Query().Get(“token”)读取GET参数,或使用r.FormValue(“email”)读取POST参数(HTML表单中的字段)。 <br> == 提供静态资源 == 要提供JavaScript、CSS和图片等静态资源,我们使用内置的http.FileServer并将其指向url路径。为了使文件服务器正常工作,它需要知道从哪里提供服务文件。我们可以这样做: <syntaxhighlight lang="go">fs := http.FileServer(http.Dir("static/"))</syntaxhighlight> <br> 一旦文件服务器就绪,我们只需将其指向url路径,就像我们处理动态请求一样。有一点需要注意:为了正确提供服务文件,我们需要去掉url路径的一部分。通常这是我们文件所在的目录名称。 <syntaxhighlight lang="go">http.Handle("/static/", http.StripPrefix("/static/", fs))</syntaxhighlight> <br> == 接受连接 == 完成我们的基本HTTP服务器的最后一步是,监听一个端口以接受来自互联网的连接。正如你所猜测的,Go也有一个内置的HTTP服务器,我们可以很快启动。一旦启动,你就可以在浏览器中查看你的HTTP服务器。 <syntaxhighlight lang="go">http.ListenAndServe(":80", nil)</syntaxhighlight> <br> <span id="完整代码-1"></span> == 完整代码 == <syntaxhighlight lang="go">package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Welcome to my website!") }) fs := http.FileServer(http.Dir("static/")) http.Handle("/static/", http.StripPrefix("/static/", fs)) http.ListenAndServe(":80", nil) }</syntaxhighlight> <br>
返回至“
Go网络编程-HTTP Server
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息