【go项目01_学习记录02】

学习记录

  • [1 新建项目](#1 新建项目)
  • [2 自动重载](#2 自动重载)
    • 安装air
    • [安装完成,查看版本:air -v](#安装完成,查看版本:air -v)
    • [使用air: air](#使用air: air)
  • [3 设置标头](#3 设置标头)
  • [4 如何知道 http 包有哪些接口呢?](#4 如何知道 http 包有哪些接口呢?)
  • [5 Web 数据响应](#5 Web 数据响应)
  • [6 小结](#6 小结)

1 新建项目

windows系统,cmd:

cd %GOPATH%/src //%GOPATH%表示取环境变量的路径
mkdir goblog / /注释创建goblog文件夹
cd goblog
code . //启动vscode

go mod init 是一个命令,用于初始化一个新的 Go 模块。该命令会在当前目录下创建一个新的 go.mod 文件,用于管理模块的依赖关系和版本信息。

go mod init

2 自动重载

安装air

windows 系统访问 <github.com/cosmtrek/air/releases>此处下载后放入 Go 安装目录下的 bin 目录,重命名为 air.exe

安装完成,查看版本:air -v

使用air: air

此时浏览器访问 localhost:3000/ :

修改main.go文件,会被自动编译运行,刷新浏览器页面(省去手动重复go build,go run)

建新的命令行窗口

为了保持 air 窗口持续运行着,我们点击 + 按钮新建命令行窗口,并使用命令:

git status

从上图可以看到我们的根目录下多了一个 tmp 文件夹,这是 air 命令的编译文件存放地。我们需要设置版本控制器将其排除在外:.gitignore

再次执行 git status 即可看到 tmp 目录已被排除在外:

3 设置标头

访问其他网站

查看响应标头

浏览器访问localhost:3000 ,右键查看网络请求:

浏览器访问 localhost:3000/about,右键查看网络请求:

Content-Type 标头

修改标头中的Content-Type为text/html

4 如何知道 http 包有哪些接口呢?

本地查看 Go 文档

godoc -http =:6060 //执行这条指令

localhost:6060/pkg/ 进入标准库文档,定位到 net/http:


5 Web 数据响应

Web 的响应与请求结构是类似的,响应分为三个部分:响应行、响应头部、响应体。

响应行:协议、响应状态码和状态描述,如: HTTP/1.1 200 OK

响应标头:包含各种头部字段信息,如 cookie,Content-Type 等头部信息。

响应体:携带客户端想要的数据,格式与编码由头部的 Content-Type 决定。

响应状态码的有固定取值和意义:

100~199:表示服务端成功接收客户端请求,要求客户端继续提交下一次请求才能完成整个处理过程。

200~299:表示服务端成功接收请求并已完成整个处理过程。最常用就是:200

300~399:为完成请求,客户端需进一步细化请求。比较常用的如:客户端请求的资源已经移动一个新地址使用 302 表示将资源重定向,客户端请求的资源未发生改变,使用 304,告诉客户端从本地缓存中获取。

400~499:客户端的请求有错误,如:404 表示你请求的资源在 web 服务器中找不到,403 表示服务器拒绝客户端的访问,一般是权限不够。

500~599:服务器端出现错误,最常用的是:500

在 http 包中我们是通过与 http.ResponseWriter 交互来改变响应内容的,要添加的 HTTP 状态码的话,我们先访问 ResponseWriter 的文档 localhost:6060/pkg/net/http/#Respon... :

提示: 本地文档访问请运行命令 godoc -http=:6060 。

页面按快捷键 Ctrl+F 搜索关键词 StatusOK,即可定位到设置状态码的常量:

选中我们的 404 状态码,在代码中添加:StatusNotFound 404

顺便访问一个不存在的页面:

6 小结

学到了以下知识点:

  1. 如何创建 go 项目;
  2. 如何使用 VSCode 的内置命令行;
  3. 如何使用 go run 命令来运行 Go 程序;
  4. 如何使用 git 做版本控制;
  5. Go 应用中 package main 的规则;
  6. 标准库 fmt 包的基本使用;
  7. 标准库 http 包的基本使用;
  8. http 包中如何通过 url 路径来处理业务逻辑;
  9. 如何使用 air 来自动重载代码;
  10. 如何使用 go proxy 来加速 go get 命令;
  11. 如何添加 http 标头;
  12. 如何在不需要联网的情况下查看 Go 文档;
  13. 如何在 Go 文档中快速定位所需内容。

相关推荐
StickToForever3 小时前
第4章 信息系统架构(五)
经验分享·笔记·学习·职场和发展
闲猫5 小时前
go orm GORM
开发语言·后端·golang
丁卯4045 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
leegong231117 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
Moonnnn.8 小时前
51单片机学习——动态数码管显示
笔记·嵌入式硬件·学习·51单片机
南宫生8 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
技术小齐8 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
竹言笙熙9 小时前
代码审计初探
学习·web安全
日记成书9 小时前
物联网智能项目
物联网·学习
虾球xz9 小时前
游戏引擎学习第118天
学习·游戏引擎