什么是gin?
一套Web框架。
什么是框架?
框架只是别人给你搭的一个舞台。你可以借助这个舞台去表演自己的才艺。这个舞台,有优点也有缺点,优点是你可以更方便的去做一些事情。缺点是,它作为一套体系,有各种规定和约束。
没有框架会怎么办?
就需要我自己根据Go标准库来搭建,很麻烦。既然大家都在做Web开发,就有人把自己的经历总结成一套体系(造了一个轮子),公开出来供大家使用。
什么是Web?
基于HTTP协议进行交互的应用网络。大白话就是通过浏览器/app访问各种网络资源。 这其实就是B/S架构和C/S架构,app也就是客户端。 有什么区别?B/S架构,是浏览器发请求给服务器,服务器返回网页给你。C/S架构,是客户端发请求给服务器,服务器返回数据给你;客户端为服务器分担了一些数据处理的压力,不像B/S架构,全是服务器在做数据处理,累麻了。
什么是HTTP协议?
超文本传输协议。是基于TCP/IP协议来传输数据的协议。目前主流的是1.1版本。
有什么特点?
1、无状态
服务器只处理请求、返回响应,但不会保存客户端的状态信息(身份、会话状态、历史记录),也就不知道当前的请求和之前的请求是否来自一个客户端。
为什么?
优点:不用保存客户端状态信息,变得简单高效,更好的承受高并发请求。 缺点:跨请求共享状态信息时,就需要用Cookie、Session来保存和传递状态信息。
2、无连接
每次连接只处理一个请求,服务器处理完一个请求并且等到客户端的应答之后就把连接断了。
为什么?
优点:可以节省传输时间。每个连接只会在请求和响应时占用一点资源,不会长时间占用服务器资源。缺点:每次请求都要重新连接,增加时间开销,影响响应的速度。
改进
1.1引入持久连接,多个请求和响应可以复用同一个TCP连接。避免每次请求都得建立连接;2.0引入多路复用,可以在一个连接上并行发送和接收多个请求和响应,提高网络的性能和效率。