这是我参与「第五届青训营 」伴学笔记创作活动的第12天。
前言
这几天把用户登录方面的接口的服务实现简单讲了,今天来说一些以前没有提到但是应该提到的东西————HTTP协议。
HTTP协议
什么是HTTP协议?
HTTP 协议一般指 HTTP(超文本传输协议)。 超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。 HTTP 是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。 HTTP 是一个基于 TCP/IP 通信协议来传递数据的(HTML 文件、图片文件、查询结果等)。
HTTP请求方法
提到HTTP协议,我们肯定离不开HTTP请求方法,比如前文我们注册路由用到的:
douyin := h.Group("/douyin")
userGroup := douyin.Group("/user")
userGroup.POST("/register/", func(ctx context.Context, c *app.RequestContext))
userGroup.POST("/login/", func(ctx context.Context, c *app.RequestContext))
userGroup.GET("/", func(ctx context.Context, c *app.RequestContext))
这里所使用到的POST方法与GET方法,同时,这两位也是最常用到的HTTP请求方法。
GET方法:请求指定的页面信息,并返回实体主体。
POST方法:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
可以看到,在一般情况下,有文件参数传入的时候,我们一般不使用GET方法,而使用POST方法将文件夹带在body中,这也是我们之后实现视频投稿接口服务会使用到的HTTP请求方法。
除了这两种方法之外,还有HEAD``PUT``DELETE``CONNECT``OPTIONS``TRACE``PATCH等方法。
HTTP状态码
在我们发送HTTP请求之后,一般情况下会返回给我们一个HTTP状态码,不论有没有达到我们设想中的成功。
如我们使用过的:
consts.StatusUnauthorized//401
consts.StatusOK//200
以及较为出名的404``502等。