在课程“HTTP框架修炼之道”中,我们学习了HTTP协议的相关知识。
在本次课程之前,我在计算机网络这门课程中已接触过HTTP。随着课程的深入,我也加深了对HTTP协议的理解。
一.HTTP协议是什么 HTTP(Hypertext Transfer Protocol)即超文本传输协议。伴随着互联网的高速发展,简单的文字传输已经无法满足需求,人们想在两台电脑之间传输图片、音频甚至是视频。HTTP协议应运而生。
二.课后作业
1.为什么HTTP框架要做分层设计?分层设计有哪些优势与劣势
有这样一句话:计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。
优点:分层设计可以简化网络的复杂度;符合“高内聚,低耦合”的原则;易于更新、维护;利于各层的复用;
缺点:降低了系统的性能;可能导致级联的修改
2.现有开源社区HTTP框架有哪些优势与不足
(1)Apache HTTP Server,通俗地说就是 Apache 或者红帽发行版中的 httpd,是一个免费的开源 web 服务器。发布于1995年的Apache已经突飞猛进地成为最受欢迎和使用最广泛的网络服务器之一,为超过37% 的网站提供支撑。
优点:速度快、易用、性能稳定,并可做代理服务器来使用。
缺点:配置相对复杂,自身不支持动态页面,但可以通过扩展脚本、模块等支持动态页面等。
(2)Nginx 是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,音同“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。
优点:轻量级、抗并发,nginx 处理请求是异步非阻塞的、在高并发下nginx 能保持低资源低消耗高性能、对网络依赖性非常小、
缺点:适用范围小(仅能支持http、https和Email协议);对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测,不支持Session的直接保持,但能通过ip_hash来解决。
三.尝试用gin写一个hello world服务器
1.安装gin
go get -u github.com/gin-gonic/gin //终端输入
2.代码
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
//创建一个服务
ginServer := gin.Default()
//访问地址 处理我们的请求 Request Response
ginServer.GET("/hello", func(context *gin.Context) {
context.JSON(200, gin.H{"msg": "hello,world"})
})
//服务器端口
ginServer.Run(":8082") /注意看 这里有个冒号!!!!
}
3.访问 http://localhost:8082/hello