Go语言创建HTTP服务器

        Web服务器可提供网页、Web服务和文件,而Go语言为创建Web服务器提供了强大的支持。

1.通过Hello World Web 服务器宣告您的存在

        标准库中的net/http包提供了多种创建HTTP服务器的方法,它还提供了一个基本的路由器。

package mainimport ("net/http"
)func helloWorld(w http.ResponseWriter, r *http.Request) {w.Write([]byte("Hello World\n"))
}func main() {http.HandleFunc("/", helloWorld)http.ListenAndServe(":8000", nil)
}

程序解读如下:

  • 导入net/http包
  • 在main函数中,使用方法HandleFunc创建了路由/。这个方法接受一个模式和一个函数,其中前者描述了路径,而后者指定如何对以送到该路径的请求做出响应
  • 函数helloWorld接受一个http.ResponseWriter和一个指向请求的指针。这意味着在这个函数中,可查看或操作请求,再将响应返回给客户端。在这里,使用了方法Write来生成响应。这个方法生成的HTTP响应包括状态、报头和响应体。[ ]byte声明一个字节切片并将字符串值转换为字节。这意味着方法Write可以使用[ ]byte,因为这个方法将一个字节切片作为参数。
  • 为响应客户端,使用了方法ListenAndServer来启动一个服务器,这个服务器监听localhost和端口8000

 2.查看请求和响应

        curl是一款用于发起HTTP请求的命令行工具,它几乎可在任何平台上使用。macOS系统预先安装了curl;Linux系统通常也安装了curl,如果没有安装,可使用包管理器进行安装;Windows系统没有预先安装curl。

                2.1 使用curl发出请求

        安装curl后,就可在开发和调试Web服务器时使用它。可不使用Web浏览器,而使用curl来向Web服务器发送各种请求以及查看响应。

在macOS或Linux系统中,再开一个终端;执行下面的命令,其中的选项-is指定打印报头,并忽略一些不感兴趣的内容。

curl -is http://localhost:8000

如果上面命令成功了,将会看到来自Web服务器的响应,基中包含报头和响应体。

HTTP/1.1 200 OK

Date:Fri,05 Apr 2024 11:42 GMT

Content-Length: 12

Content-Type: text/plain; c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/802920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3中项目优化(Web Worker的使用)

1.Web Worker的作用 本人的理解:js是单线程执行代码,也就是代码需要从上往下执行,而使用Web Worker后相当于分了一条线程出来执行代码,那么两条线程肯定是比一条线程执行的快。 2.新建Web Worker文件 在public文件夹下新建work…

Linux:gcc

Linux:gcc gcc概述语言发展史gcc的编译过程预处理编译汇编 gcc的链接过程动态库与静态库 gcc概述 GCC(英文全拼:GNU Compiler Collection)是 GNU 工具链的主要组成部分,是一套以 GPL 和 LGPL 许可证发布的程序语言编译…

汽车变速器原理?

汽车的变速器是负责调整发动机输出转速与车辆行驶速度匹配的关键部件。它的基本原理涉及到两个主要部分:齿轮组和离合器(对于手动变速器)或液力变矩器(对于自动变速器)。 齿轮组(Gear System)&a…

SpringBoot整合RabbitMQ-应答模式

一、应答模式 RabbitMQ 中的消息应答模式主要包括两种:自动应答(Automatic Acknowledgement)和手动应答(Manual Acknowledgement)。(一般交换机发送消息,RabbitMQ只有在接收到消费者的确认后才…

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】 题目描述:解题思路一:Python动态规划五部曲:定推初遍举【先遍历背包 后遍历物品】必须是排列解题思路二:Python动态规划版本二解题思路三:回…

C++——优先级队列

前言:这篇文章我们继续来分享一个c的容器——优先级队列。 一.理解优先级 何为优先级一说?实际上就是有顺序的意思。 优先级队列,即有顺序的队列,是一个无需我们自己进行排序操作,在数据传入时就会由容器自己排好序的…

冒泡排序解读

在信息爆炸的时代,数据无处不在,而如何有效地管理和处理这些数据,成为了现代计算机科学的一个重要课题。排序算法,作为数据处理的基本工具之一,对于数据的组织、搜索和分析起着至关重要的作用。今天,我们就…

在家学机器人技术指南

机器人技术是一个跨学科的领域,涉及计算机科学、电子工程、机械工程、人工智能等多个方面。在家自学机器人技术是完全可能的,但需要有计划和系统的学习路径,以及对相关领域的基础知识有一定的了解。 以下是一些建议,可以帮助你在家…

Jeecg的Dict注解的用法

Jeecg 是一个基于代码生成器的快速开发框架,它提供了一系列的注解来简化开发过程。其中,Dict 注解是用于将数据库中的数据字典值转换成具体含义的注解。 通常情况下,在数据库中,一些字段的值可能是数字或者代码,而不是…

[C++][算法基础]合并集合(并查集)

一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。 现在要进行 m 个操作,操作共有两种: M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操…

力扣刷题Days33-209. 长度最小的子数组(js)

目录 1,题目-滑动窗口 2,代码 滑动窗口 3,学习与总结 1,题目-滑动窗口 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1,…

动态路由-基于vue-admin-template

基于 vue-admin-template的动态路由 1. 拆分静态路由与动态路由 静态路由----所有人都可以访问—首页/登录/404 动态路由–有权限的人才可以访问—组织/角色/员工/权限 2. 根据用户权限添加动态路由 获取对应的权限标识(vuex中actions中把用户资料通过return 进行返回&…

AI创业项目:AI旅游规划定制师

在当前的旅游市场中,个性化旅游规划成为越来越多旅行者的需求。然而,现行的定制旅行服务主要依赖于人工定制师,这一模式面临着信息不透明、价格弹性大等挑战。定制师在客户与服务供应商之间掌握着信息差,依靠这一优势获得收益&…

代码算法训练营day14 | 理论基础、递归遍历

day14: 理论基础二叉树的分类:二叉树的种类:满二叉树完全二叉树二叉搜索树平衡二叉搜索树 二叉树的存储方式:链式存储顺序存储 二叉树的遍历方式:深度优先和广度优先遍历实现方式 二叉树的定义: 递归遍历递…

(学习日记)2024.04.11:UCOSIII第三十九节:软件定时器

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Vue文档

Vue是什么?为什么要学习他 Vue是什么? Vue是前端优秀框架, 是一套用于构建用户界面的渐进式框架 为什么要学习Vue Vue是目前前端最火的框架之一Vue是目前企业技术栈中要求的知识点Vue可以提升开发体验Vue学习难度较低… Vue开发前的准备 安…

JavaScript PAT乙级题解 1057 数零壹

给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Basi…

Redis数据倾斜

Redis 数据倾斜问题通常出现在分布式 Redis 环境中,尤其是 Redis 集群环境。这意味着一部分节点承载了比其他节点更多的数据或者接收的请求更多,导致负载不均衡。数据倾斜可能会对性能和可扩展性造成影响。以下是一些解决数据倾斜的通用策略:…

分享 3 个实时人工智能图像生成工具

如果有人还需要开源人工智能技术快速发展的实例,那就是实时 Diffusion 。一年前,如果想分析单个单词对图像提示的影响,甚至尝试使用 Diffusion 模型替换视频中的面孔,需要两件事: 处理开源代码自建 WEB 应用程序 到 …

cexprtk:Python中的数学表达式解析和计算

1 安装 可以使用 pip 安装: pip install cexprtk 注意:安装需要安装兼容的 C 编译器。 2 用法 1)示例:计算一个简单的方程 计算算术表达式 (55) * 23 import cexprtk cexprtk.evaluate_expression("(55) * 23", {}…