HTTP协议的学习,我之前避开了最基础最概念的东西,写到现在,我发现若是以前从来没接触过服务端,没了解过抓包,还不知道ABNF的一些核心规则。根本没法继续学下去
网络协议的概念实在太多,不动手实操一下,不仅记不住还难以理解。今天我们就与HTTP协议,进行一次亲密接触~
今天我在这儿就借着Form
表单提交发生的HTTP传输,来说下如何搭建Web服务器,以及如何抓包
关于ABNF的语法之后会结合实践,专门写一篇ABNF核心规则是如何描述HTTP的
今天我们就先来说一下Web服务的搭建吧,搭建服务器对应的代码,我已经放到了GitHub仓库上,文章中就仅截取片段代码了。GitHub Repo地址点击跳转,也可以直接clone
到你们自己本地
https://github.com/AdolphKevin/http-study-go.git
刚好我们大多数读者也正在学习Golang,我们就用Golang来搭建一个我们自己的服务端,用来与客户端交互,最后我们再用wireshark
切身体会一下HTTP协议的传输过程
我在这选择的框架是beego
,原因就是搭建Web
服务器快,而且文档都是中文文档,有兴趣深入了解框架的可以更方便的学习,最最重要的一点,用go get
命令安装时不会被墙
我们就先把环境搭建起来,在这需要安装的东西有
beego
bee
wireshark
如果还没有安装过go
的,可以看我之前的文章Vscode搭建go开发环境
beego
以及bee
的安装
$ go get -u github.com/astaxie/beego
$ go get -u github.com/beego/bee
我在这唯一值得提一点的事情就是bee
的环境配置,这点网上虽然有,但是一堆坑。文档也没明说,所以我在这说一下
Mac/Linux下的bee配置
不是把下面的内容全部放到Terminal
里面执行的,具体的执行步骤写在注释里了
# 打开配置文件
Vim ~/.bash_profile
## 加入下面两行
export GOPATH=/Users/naonao/go
export PATH=${PATH}:${GOPATH}/bin
## 重启配置文件
source ~/.bash_profile
不知道GOPATH
的路径在哪里,可以执行下go env
看看
在这我都说声抱歉,因为在外面出差,Windows下我没电脑搭建,所以没法写具体的操作步骤了,各位网上找找吧。思路就是将GOPATH下的bin文件夹,加入环境变量里
搭建Web服务器
配置好环境变量后,我们可以快速的搭建自己的Web服务器
Mac或者Linux直接在Terminal
里在GOPATH/src
目录选执行bee new '项目名称'
即可
## 进入GOPATH/src目录
cd ${GOPATH}/src
## 新建项目
bee new httpProject
在Windows下就在GOPATH/src
目录下打开cmd
执行bee new httpProject
即可
执行完之后可以在GOPAT