【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 文档中快速定位所需内容。

相关推荐
爱喝水的鱼丶9 分钟前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇)第三篇:SAP ALV 报表样式定制:字段布局与交互功能配置
服务器·开发语言·学习·交互·sap·abap
很楠爱上14 分钟前
Node.js 模块化学习笔记
笔记·学习·node.js
毕竟是shy哥24 分钟前
CLIP:从自然语言监督中学习可迁移的视觉模型
学习
川石课堂软件测试29 分钟前
作为一名测试工程师如何学习Kubernetes(k8s)技能
学习·测试工具·容器·职场和发展·kubernetes·测试用例·harmonyos
tryqaaa_37 分钟前
学习日志(五)【php反序列化全加例题】【pop链,字符逃逸,session,伪协议】
android·学习·php·web·pop·session
li星野43 分钟前
FastAPI 参数详解:路径参数、查询参数与请求体 —— 从入门到实战
服务器·学习·fastapi
承渊政道1 小时前
【MySQL数据库学习】(MySQL数据类型)
数据库·学习·mysql·ubuntu·bash·数据库开发·数据库系统
WangX-西石油1 小时前
DVWA靶场Low级别Brute Force学习
学习·web安全·网络安全
段一凡-华北理工大学1 小时前
工业领域的Hadoop架构学习~系列文章08:Flink流处理引擎
人工智能·hadoop·学习·架构·flink·高炉炼铁·高炉炼铁智能化
海鸥-w1 小时前
前端学习python第三天笔记整理(list 列表,str字符串,tuple元组,set集合,dect,函数,类型注解)
前端·python·学习