美文网首页PHPGO读书笔记
《go web 编程》第三章 web基础:URL 和 DNS 解

《go web 编程》第三章 web基础:URL 和 DNS 解

作者: bycall | 来源:发表于2022-08-04 16:34 被阅读0次

浏览网页都是通过 URL 访问的,那么 URL 到底是怎么样的?

URL (Uniform Resource Locator) 是 “统一资源定位符” 的英文缩写,用于描述一个网络上的资源,基本格式如下

scheme://host[:port#]/path/.../[?query-string][#anchor]
scheme         指定底层使用的协议(例如:http, https, ftp)
host           HTTP 服务器的 IP 地址或者域名
port#          HTTP 服务器的默认端口是 80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/
path           访问资源的路径
query-string   发送给 http 服务器的数据
anchor         锚

DNS (Domain Name System) 是 “域名系统” 的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于 TCP/IP 网络,它从事将主机名或域名转换为实际 IP 地址的工作。DNS 就是这样的一位 “翻译官”,

更详细的 DNS 解析的过程如下,这个过程有助于我们理解 DNS 的工作模式

在浏览器中输入 www.qq.com 域名,操作系统会先检查自己本地的 hosts 文件是否有这个网址映射关系,如果有,就先调用这个 IP 地址映射,完成域名解析。

如果 hosts 里没有这个域名的映射,则查找本地 DNS 解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

如果 hosts 与本地 DNS 解析器缓存都没有相应的网址映射关系,首先会找 TCP/IP 参数中设置的首选 DNS 服务器,在此我们叫它本地 DNS 服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

如果要查询的域名,不由本地 DNS 服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个 IP 地址映射,完成域名解析,此解析不具有权威性。

如果本地 DNS 服务器本地区域文件与缓存解析都失效,则根据本地 DNS 服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地 DNS 就把请求发至 “根 DNS 服务器”,“根 DNS 服务器” 收到请求后会判断这个域名 (.com) 是谁来授权管理,并会返回一个负责该顶级域名服务器的一个 IP。本地 DNS 服务器收到 IP 信息后,将会联系负责 .com 域的这台服务器。这台负责 .com 域的服务器收到请求后,如果自己无法解析,它就会找一个管理 .com 域的下一级 DNS 服务器地址 (qq.com) 给本地 DNS 服务器。当本地 DNS 服务器收到这个地址后,就会找 qq.com 域服务器,重复上面的动作,进行查询,直至找到 www.qq.com 主机。

如果用的是转发模式,此 DNS 服务器就会把请求转发至上一级 DNS 服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根 DNS 或把转请求转至上级,以此循环。不管是本地 DNS 服务器用是是转发,还是根提示,最后都是把结果返回给本地 DNS 服务器,由此 DNS 服务器再返回给客户机。

相关文章

  • 《go web 编程》第三章 web基础:URL 和 DNS 解

    浏览网页都是通过 URL 访问的,那么 URL 到底是怎么样的? URL (Uniform Resource Lo...

  • java web目录

    java web目录 web编程基础web编程进阶(一)web编程进阶(二)web编程原理

  • Go Web编程一: Go Web 基础

    原文链接 http://ironxu.com/779 Go Web 基础概念与代码阅读 1. Go 搭建简单的we...

  • Golang资料整理

    视频 郝林-Go语言第一课 Go编程基础 Go Web 基础 Go名库讲解 社区 官网要翻墙 Github--Go...

  • go web编程基础

    通过了一段时间对go的接触,是时候展现真的技术了----嘻嘻嘻。大家都知道go语言因为它的轻量级,快速编译的特性用...

  • go web开发学习之路

    基础:go 原生web开发1、go web的工作原理2、搭建一个简单的go web站点3、go web中载入静态文...

  • Go基础编程---web编程

    简单web服务器代码 简单客户端代码 并发爬取百度贴吧的页面 并发爬虫爬取段子

  • Go Web编程.epub

    【下载地址】 《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一...

  • Go web编程

    Go web编程 专栏简介 分享 Go web 编程。在这里你可以了解到什么是 Go,为什么越来越多人喜欢它。在实...

  • 任务1-当在浏览器中输入一个url时,发生了什么?

    A)解析Web页面的URL,得到Web服务器的域名。 B)通过DNS服务器获得Web服务器的IP地址。 其实首先会...

网友评论

    本文标题:《go web 编程》第三章 web基础:URL 和 DNS 解

    本文链接:https://www.haomeiwen.com/subject/ybnywrtx.html