Go For Web:踏入Web大门的第一步——Web 的工作方式
前言:
本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍。目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松的,接下来我们就去学习了解一些关于 Web 的相关基础,了解一些概念,以及 Golang 是如何运行一个 Web 程序的。
文章预计分为四个部分逐步更新
2023-04-13 星期四 一更 全文共计约 3800 字 阅读大约花费 5 分钟
文章目录:
- Web 的工作方式
- 用 Go 搭建一个最简单的 Web 服务
- 了解 Golang 运行 web 的原理
- Golang http 包详解(源码剖析)
- 总结
正文:
Web 的工作方式
-
了解当你访问一个网页时,背后是如何运作的,发生了一些什么?
其实当你输入网址(URL)并按下回车之后,你的浏览器相当于扮演了 客户端 的角色,首先你的浏览器会去请求 DNS 服务器进行域名解析,将你输入的 URL 地址 转化为对应的 ip 地址,通过 ip 地址 我们就可以找到对应的服务器位置,从而进行 TCP 连接。
连接之后,你的浏览器会发送 HTTP 请求 (Request)包,服务区收到请求包之后开始从响应处理请求包,调用自身的服务,并返回 HTTP 响应 (Response)包。
客户端收到了来自服务端的响应之后开始渲染这个响应包里的主体(body),等收到了全部的内容应答后,就会断开与服务器的 TCP 连接 (这里先讨论一般情况)
如图👇
而一个 Web 服务器也被称作 HTTP 服务器, 它通过 http 协议与客户端通信。这个客户端通常是指 Web 浏览器
所以 Web 服务器的工作原理可以简单的总结为:
- 客户端通过 TCP/IP 协议建立与服务器的 TCP 连接
- 客户端向服务器发送 HTTP 协议请求包,请求服务器里的资源文档
- 服务器向客户机发送 HTTP 协议应答包, 如果请求的资源包含有其他动态语言的内容,服务器就会调用动态语言的解析引擎负责处理这些动态内容,并将处理得到的数据返回给客户端
- 客户端与服务端断开连接。客户端开始解释收到的 HTML 文档,在客户端屏幕上渲染图形结果
以上步骤实现了一个 最简单的 HTTP 事务,在上述情况中