Web基本原理
- 打开浏览器输入网址按下回车后浏览器的运行过程:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服务器后,要求建立TCP连接,等浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,服务器调用自身服务,返回HTTP Response(响应)包;客户端收到来自服务器的响应后开始渲染这个Response包里的主体(body),等收到全部的内容随后断开与该服务器之间的TCP连接。
总的来说,web服务器通过HTTP协议与客户端进行通信,而客户端通常指的是我们的浏览器。那么在这个过程中,DNS服务器又起到的很关键的作用。那么DNS的具体是如何起到作用的呢? - DNS工作原理:
在上述服务器之外,还存在着本地DNS服务器,其不属于服务器的层次结构但也至关重要。
DNS的查询过程分为“递归查询”和“迭代查询”。递归查询指的是当提交查询请求到其他域名服务器,而其他域名服务器最终会返回一个最终结果到当前客户机。迭代查询指的是,其他域名服务器不是自己去递归查询,而是返回一个查询地址到当前域名服务器,当前客户机沿着这个查询地址自己去进一步查询。 - DNS解析的详细工作流程:
- 首先搜索浏览器的 DNS 缓存,缓存中维护一张域名与 IP 地址的对应表.
- 若没有命中,则继续搜索操作系统的 DNS 缓存
- 若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的 DNS 缓存,查找成功则返回结果 .
- 若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询
- 首先本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器的地址给本地服务器
- 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址
- 本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址 - 本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来
- 操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起
- 浏览器就得到了域名对应的 IP 地址,并将 IP 地址缓存起
- Web应用程序的组成:
在Web应用程序中,一般由从处理器(Handler)、模板引擎(template)组成。其中处理器是最核心的部分,负责把客户端发送过来的HTTP请求进行接收和处理。处理器接受HTTP请求,然后进行路由解析,再将URL映射到对应的控制器中。在处理过程中会先调用模板引擎,然后将模板引擎生成的HTML文档通过HTTP协议返回给客户端。