首页 > 代码库 > HTTP访问服务的相关解释

HTTP访问服务的相关解释

一、访问网站的基本流程

    第一步:客户端用户在浏览器输www.51cto.com网站,回车后,系统首先会查找系统本地的DNS缓存及hosts文件信息,确定是否存在www.51cto.com余名对应的IP解析记录,如果有就直接获取IP地址,然后去访问这个IP地址对应余名www.51cto.com的服务器。一般第一次请求的时候,DNS缓存是没有解析记录的,而hosts躲在内部临时测试时使用。

    第二步:如果客户端本地DNS缓存及hosts文件没有www.51cto.com余名对应的解析记录,那么,系统会把浏览器的解析请求发送给客户端本地设置的DNS服务器地址(称为LDNS)解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端;如果没有,则LDNS会负责继续请求其他的DNS服务器。

    第三步:LDNS从DNS系统的根开始请求对www.51cto.com余名的解析,并针对各个层级的DNS服务器系统进行一系列的查找,最终会查找到51cto.com域名对应的授权DNS服务器,而这个授权DNS服务器正式企业购买域名时用于管理域名解析的服务器,这个授权服务器会有www.51cto.com对应的IP解析记录。如果此时没有,就表示企业的域名管理人员没有为www.51cto.com域名做解析设置,即网站还没有架设好。

    第四步:51cto.com余名的授权DNS服务器会把www.51cto.com对应的最终IP解析记录发给LDNS。

    第五步:LDNS把来自授权DNS服务器的www.51cto.com对应的IP解析记录发给客户端浏览器,并且它会把该域名和IP地址的对应解析缓存起来,以便下一次更快的返回相同解析请求的记录,这些缓存记录在指定的时间(DNS TTL)内不会过期。

    第六步:客户端浏览器获取了www.51cto.com对应的IP地址,接下来,浏览器会请求获得IP地址对应的网站服务器,网站服务器接收到客户的请求并响应处理(此处的处理可能是数百台集群的服务器系统,也可能是一台云主机),将客户请求的内容返回给客户端浏览器。至此,一次访问浏览网页的完整过程也就完成了。

    附:

(1)查看windows客户端的本地缓存记录:

ifconfig /displaydns

(2)清楚Windows客户端本地缓存DNS记录:

ifconfig /flushdns

(3)Windows系统下的hosts域名解析记录位置:

C:\Windows\System32\drivers\etc\hosts

二、DNS系统解析基本流程

DNS简介

A记录----把余名解析为对应的IP地址。

CNAME别名记录--别名解析功能常备CDN加速服务商应用

MX邮件记录--MX记录功能,在购买或搭建邮件服务器时会被用到

PTR记录--反向解析,即把IP地址解析为对应域名,和A记录的解析相反,此功能在邮件服务业务中会用

技术分享

DNS解析流程图

技术分享


通过dig命令来实践理解DNS解析流程

[root@alon ~]# dig +trace www.51cto.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> +trace www.51cto.com
;; global options: +cmd
.            47942    IN    NS    j.root-servers.net.
.            47942    IN    NS    f.root-servers.net.
.            47942    IN    NS    b.root-servers.net.
.            47942    IN    NS    h.root-servers.net.
.            47942    IN    NS    e.root-servers.net.
.            47942    IN    NS    g.root-servers.net.
.            47942    IN    NS    k.root-servers.net.
.            47942    IN    NS    l.root-servers.net.
.            47942    IN    NS    m.root-servers.net.
.            47942    IN    NS    i.root-servers.net.
.            47942    IN    NS    c.root-servers.net.
.            47942    IN    NS    a.root-servers.net.
.            47942    IN    NS    d.root-servers.net.
;; Received 228 bytes from 192.168.0.1#53(192.168.0.1) in 54 ms
## a-m一共13个DNS服务器,j.root-servers.net根DNS负责了此处的解析
com.            172800    IN    NS    a.gtld-servers.net.
com.            172800    IN    NS    b.gtld-servers.net.
com.            172800    IN    NS    c.gtld-servers.net.
com.            172800    IN    NS    d.gtld-servers.net.
com.            172800    IN    NS    e.gtld-servers.net.
com.            172800    IN    NS    f.gtld-servers.net.
com.            172800    IN    NS    g.gtld-servers.net.
com.            172800    IN    NS    h.gtld-servers.net.
com.            172800    IN    NS    i.gtld-servers.net.
com.            172800    IN    NS    j.gtld-servers.net.
com.            172800    IN    NS    k.gtld-servers.net.
com.            172800    IN    NS    l.gtld-servers.net.
com.            172800    IN    NS    m.gtld-servers.net.
;; Received 491 bytes from 198.97.190.53#53(198.97.190.53) in 352 ms
##解析com的一共有13个DNS服务器,.com的a.gtld-servers.net负责了此处解析
51cto.com.        172800    IN    NS    ns1.dnsv2.com.
51cto.com.        172800    IN    NS    ns2.dnsv2.com.
;; Received 249 bytes from 192.54.112.30#53(192.54.112.30) in 272 ms
##解析  ns1.dnsv2.com负责了最终A记录解析
www.51cto.com.        600    IN    CNAME    web.dns.51cto.com.
web.dns.51cto.com.    600    IN    CNAME    gf.dns.51cto.com.
gf.dns.51cto.com.    600    IN    A    218.11.0.91
51cto.com.        86400    IN    NS    ns2.dnsv2.com.
51cto.com.        86400    IN    NS    ns1.dnsv2.com.
;; Received 162 bytes from 115.236.151.178#53(115.236.151.178) in 139 ms



本文出自 “Richy的运维日志” 博客,请务必保留此出处http://richylu.blog.51cto.com/1481674/1858308

HTTP访问服务的相关解释