DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议 。它提供域名到IP地址之间的解析服务 。计算机既可以被赋予IP地址,也可以被赋予主机名和域名 。比如www.hackr.jp 。
用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问 。因为与IP地址的一组纯数字相比 , 用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯 。
但要让计算机去理解名称 , 相对而言就变得困难了 。因为计算机更擅长处理一长串数字 。
为了解决上述的问题,DNS服务应运而生 。DNS协议提供通过域名查找IP地址 , 或逆向从IP地址反查域名的服务 。
学习了和HTTP协议密不可分的TCP/IP协议族中的各种协议后,我们再通过这张图来了解下IP协议、TCP协议和DNS服务在使用HTTP协议的通信过程中各自发挥了哪些作用 。
URI和URL
与URI(统一资源标识符)相比 , 我们更熟悉URL(Uniform Resource Locator,统一资源定位符) 。URL正是使用Web浏览器等访问Web页面时需要输入的网页地址 。比如,下图的http://hackr.jp/就是URL 。
统一资源标识符
URI是Uniform Resource Identifier的缩写 。RFC2396分别对这3个单词进行了如下定义 。
采用HTTP协议时,协议方案就是http 。除此之外,还有ftp、mailto、telnet、file等 。标准的URI协议方案有30种左右,由隶属于国际互联网资源管理的非营利社团ICANN(Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)的IANA(Internet Assigned Numbers Authority,互联网号码分配局)管理颁布 。
IANA – Uniform Resource Identifier (URI) SCHEMES(统一资源标识符方案)
URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置) 。可见URL是URI的子集 。“RFC3986:统一资源标识符(URI)通用语法”中列举了几种URI例子,如下所示 。
URI格式
表示指定的URI,要使用涵盖全部必要信息的绝对URI、绝对URL以及相对URL 。相对URL , 是指从浏览器中基本URI处指定的URL,形如 /image/logo.gif 。让我们先来了解一下绝对URI的格式 。
使用http:或https:等协议方案名获取访问资源时要指定协议类型 。不区分字母大小写,最后附一个冒号(:) 。也可使用data:或javascript:这类指定数据或脚本程序的方案名 。
【ip地址精确定位查询技巧 域名解析ip地址查询命令 - 秒懂生活 www.miaodongshenghuo.com】
并不是所有的应用程序都符合RFC有一些用来制定HTTP协议技术标准的文档,它们被称为RFC(Request forComments,征求修正意见书) 。通常,应用程序会遵照由RFC确定的标准实现 。可以说,RFC是互联网的设计文档,要是不按照RFC标准执行 , 就有可能导致无法通信的状况 。比如,有一台Web服务器内的应用服务没有遵照RFC的标准实现,那Web浏览器就很可能无法访问这台服务器了 。由于不遵照RFC标准实现就无法进行HTTP协议通信,所以基本上客户端和服务器端都会以RFC为标准来实现HTTP协议 。但也存在某些应用程序因客户端或服务器端的不同 , 而未遵照RFC标准,反而将自成一套的“标准”扩展的情况 。不按RFC标准来实现,当然也不必劳心费力让自己的“标准”符合其他所有的客户端和服务器端 。但设想一下 , 如果这款应用程序的使用者非常多,那会发生什么情况?不难想象,其他的客户端或服务器端必然都不得不去配合它 。实际在互联网上,已经实现了HTTP协议的一些服务器端和客户端里就存在上述情况