在用go开发web程序前,必须了解HTTP协议,对于没有接触过的人来说,强烈建议看下这两本书:《HTTP权威指南》和《图解HTTP》。
HTTP概述
我们平时上网,打开浏览器,输入网址后按下回车键,相应的Web页面就显示出来了。那这个过程到底是如何实现的呢?
先来看下面一张图:
上图很清楚的描述了一个用户访问一个web站点的过程。分为三步:
1. 通过客户端也就是浏览器输入URL网址,客户端通过DNS协议与DNS服务网络交互,获取域名对应的IP地址。
2. 浏览器再通过IP地址找到对应的IP服务器,并建立连接。浏览器发送 HTTP Request 包,服务器处理请求包,并返回 HTTP Response 包
3. 浏览器收到响应包后,绘制页面,等所有内容收到后,断开与该服务器之间的TCP连接
DNS解析
DNS是“域名系统”的英文缩写,是一种组织成域层次结构的计算机
和网络服务命名系统,它用于 TCP/IP 网络,它从事将主机名或域名转换为实际 IP 地址的工作。
DNS解析流程
上图是 DNS 解析的整个流程。
更详细的DNS即系过程如下:
- 在浏览器中输入www.qq.com域名,操作系统会先检查自