web盲区(DNS,http)网站术语分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web盲区(DNS,http)网站术语分析相关的知识,希望对你有一定的参考价值。

1.访问网站流程。(以访问http://12042068.blog.51cto.com/为例)
    第一步:从浏览器输入网址http://12042068.blog.51cto.com/,会车后,系统先查找hosts文件和本地的DNS缓存。
确定是否存在http://12042068.blog.51cto.com/这个域名对应的IP地址。一般hosts都是局域网做测试用(ip
 域名),第一次访问一般不会有DNS缓存。
    第二步:由于本地hosts和DNS缓存没有http://12042068.blog.51cto.com/域名对应的解析记录,那么。系统把浏览
        器需要解析的内容发送给本地配置的DNS服务器。(LDNS即local DNS)如果没有,会继续请求别的DNS服务器。
    第三步:LDNS服务器会从DNS系统的(".")根服务器查找,但是根服务器没有12042068.blog.51cto.com域名对应的解析
        记录。但是,根下面有12042068.blog.51cto.com对应的顶级域.com的的解析记录,根会把.com的服务器的地址返回给
    LDNS服务器。
    第四步:LDNS获取.com对应的DNS服务器地址后,会请求.com服务器解析12042068.blog.51cto.com域名。不过,.com服务
        器没有12042068.blog.51cto.com域名的解析记录。但是,.com会包含51cto.com域名所对应的域名,并返回给LDNS。
    第五步:LNDS获取51cto.com的对应的域名地址,去请求51cto.com解析12042068.blog.51cto.com。51cto.com对应的
        域名DNS服务器是授权DNS服务器(一般这个域名服务都是购买域名时,用于域名解析的服务器。)如果,没有解析成功
    可能是该域名没有被授权(没有被购买使用)或是网站没有假设好。
    (也又可能接着向51cto.com请求.blog.51cto.com的解析记录。就这样。从后向前逐级发起请求,直到找到)
    第六步:51cto.com域名DNS服务器把12042068.blog.51cto.com对应的IP解析发送给LDNS
    第七步:LDNS把来自授权域名服务器51cto.com对应的ip解析记录发送浏览器,并且把该域名和ip缓存起来,(这些缓存有NDS TTL
        控制在指定TTL内不过期)
    第八步:浏览器获取到12042068.blog.51cto.com对应的ip,对改ip发起请求,网站服务器响应请求并处理。将客户请求内容返回
        给浏览器。
    (第一次访问是这样:连续访问后,本地系统和LDNS层级都会有缓存,再次访问的话,就直接读取缓存记录)
2.所谓的翻墙访问Google等网站。
      一般免费的都是直接写入hosts文件。把ip和对应的域名做号本地解析。访问的时候直接读取本地解析。不用查询LNDS服务器
  巧妙的躲过DNS防火墙(防火长城)。还有我们访问的Google不可能是官网。大多是和官网有关联的镜像站点。
3.关于根DNS服务器
    根域名服务器(root name server) 是互联网域名解析中最高级的域名服务器。返回顶级域名的地址。截至,2014年10月全球共有
504台服务器,被编号为A-M共13个编号大部分借由任播(Anycast)技术(根据路由拓扑图,开决定最快,最好的路线),
编号相同的根服务器使用同一个IP,504台根服务器总共只使用13个IP。其中A-M这13台服务器大都在美国(军方,互联网
及相关权威部门,大学)荷兰和瑞典及日本各有一台。
前面提及的504,只有13台是独立的。余下的都是镜像站点。(也就是拷贝13台主机的内容共享)。
    中国大陆在北京有三台编号为L的镜像,编号为F、I、J的镜像各一台,共6台;
    香港有编号为D、J的镜像各2台,编号为A、F、I、L的镜像各一台,共8台;
    台湾则有编号为F、I、J各一台,共3台。
4.下面是chrome浏览器解析出来的访问http://12042068.blog.51cto.com/的HTTP协议的请求头部信息和返回的头部信息
返回头部的主要信息:
    Request URL:http://12042068.blog.51cto.com/
    Request Method:GET
    Status Code:200 OK
    Remote Address:120.55.238.29:80

请求头部;
    GET / HTTP/1.1
    Host: 12042068.blog.51cto.com
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/55.0.2883.87 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: zh-CN,zh;q=0.8
    Cookie: _ourplusFirstTime=117-1-17-16-7-31; www51cto=D9E6C415373C4981F6F5E2778D62624BABwY; _ourplusReturnCount=7; _ourplusReturnTime=117-1-18-9-38-32; pub_cookietime=864000; refreshlimit=1484800933%09%2Fuser_index.php%3Faction%3Daddblog_new; Hm_lvt_2283d46608159c3b39fc9f1178809c21=1484964849,1484964919,1484970898,1484971967; Cto_lvt_d2cb9d6ccefce8d1e89582c2a2a24cc0=1484964850,1484964919,1484970898,1484971967; lastvisit=0%091484971964%09%2Fmod%2Fedu_void.php%3F

响应头部的详细信息
    HTTP/1.1 200 OK
    Date: Sat, 28 Jan 2017 09:02:43 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: keep-alive
    Set-Cookie: aliyungf_tc=AQAAAC36Jk9mLAoAUihGei5+IG/9P2ni; Path=/; HttpOnly
    Set-Cookie: acw_tc=AQAAAFI79XO2LgoAUihGeuYewiNEfQa3; Path=/; HttpOnly
    Set-Cookie: PHPSESSID=40e4c04395327fe99a6362caff1ee99f; path=/
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: lastvisit=0%091485594163%09%2Findex.php%3F; expires=Sun, 28-Jan-2018 09:02:43 GMT; path=/; domain=.blog.51cto.com
    If-Modified-Since: Sat, 21 Jan 2017 16:00:00 GMT
    Vary: Accept-Encoding
    Content-Encoding: gzip
    Vary: Accept-Encoding
    Load-Balancing: web06
    Load-Balancing: web06
5.浅谈HTTP协议
    HTTP协议,全称(HyperText Transfer Protocol 超文本传输协议)该协议主要是:发布和接收HTML页面的。
    目前广泛用于:web浏览器和web服务器之间的通信。目前版本是HTTP/1.1.HTTP协议的重要应用WWW服务的
    端口号80.还有另一个加密的web服务https的端口号443(主要用于支付)。
    HTTP报文一般分为2种:requset message 请求报文 和 response message 响应报文
    1.请求报文。
        包含一系列的动作:以前面的举例说明:
        GET / HTTP/1.1
        请求的方法  和http的版本
        Host: 12042068.blog.51cto.com
        请求的主机
        Connection: keep-alive
        发送本次连接后,返回信息后继续链接。如果参数:close 则关闭连接
        Pragma: no-cache
        Cache-Control: no-cache
        缓存的机制  no-cache 一般就是不缓存。(包括上面的)
        Upgrade-Insecure-Requests: 1
        (这个是W3C最新的修订。原本是HTTPS :1  为了支持https 的。这里更名为Upgrade-Insecure-Requests)
        User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
        发起请求的客户端浏览器的信息
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
        请求的内容
        Accept-Encoding: gzip, deflate, sdch
        请求支持的内容:比如gzip 压缩传输
        Accept-Language: zh-CN,zh;q=0.8
        请求支持的语言。
        Cookie:
        服务器生成的代码,服务器会回收的。cookie(一般会在本地缓存。有些需要用户名密码的网站。我们输入一次。点击记录密码
        再次进入的时候就不需要再次输入了。就是cookie起到的作用)便于服务器和浏览用户交互。
    2.响应报文。
        HTTP/1.1 200 OK
        http协议 返回的状态码和 状态信息
        Date: Sat, 28 Jan 2017 09:02:43 GMT
        时间
        Content-Type: text/html
        传输文件的类型
        Transfer-Encoding: chunked
        Connection: keep-alive
        响应连接并传输信息后,继续保持连接
    当然,只有头部信息是不可以。这些头部信息是浏览器读取的。我们看到的页面才是主体内容。
6.HTTP的响应状态码:HTTP status code 由三位数字组成。用于判断请求的是否成功,和不成功的原因。
总体来判断:500的代码多与服务器相关。
  

状态码

简单描述

200-OK

代表访问成功

301

永久跳转。一般是网站更换域名或者输入baidu.com (省去www)

403-Forbidden

禁止访问,可能是服务器预先配置了策略

404-not  Found

服务器上找不到页面(可能服务器的路径有问题)

500

可能服务器的安全策略没有关闭。如selinux在作怪

501

通常是代理服务器的节点问题

503

服务器宕机或是代理节点有问题

504

网关超时,多半是服务器过载,没有在规定时间内把数据传给前端

7.网址(学名 URL uniform resource location 统一资源定位符)
    一般有3部分组成:协议 ip地址 资源目录地址

协议

分隔符

Ip地址或域名

分隔符

资源目录地址

http

://

12042068.blog.51cto.com

/

12032068/1894334

8.静态网页VS动态网页
    本质区别是否需要后端数据库的支持。
    从URL形式上看。动态的一般含有 ?或 & 之类的特殊符号。
    https://www.kernel.org/这个网站页面就是静态的
    http://12042068.blog.51cto.com/12032068/1894334就是典型的动态网站
    在用浏览器查看加载元素的时候,发现好多这样的引用
    https://tongji.51cto.com/frontend/index?cc=0&ck=1&cl=24-bit&ds=1366x768&ep=44&et=3&fl=24.0&ja=0&ln=zh-CN&lt=1485594167&nv=0&rnd=788547715&si=d2cb9d6ccefce8d1e89582c2a2a24cc0&st=3&su=http%3A%2F%2F12042068.blog.51cto.com%2F&v=1.1.0&lv=3&ft=1485599898&u=http%3A%2F%2F12042068.blog.51cto.com%2F12032068%2F1894334&fft=1485599943
    但是,为什么这个看起来像是静态的呢。
    这个是伪静态技术。大多网站靠访问量生存。而带来访问量的源头是互联网引擎(百度就是考引擎成暴发户的)的收录
    搜索引擎对静态网页的收录十分友好。所有,大家就把动态网站伪装成静态。
9.网站流量术语
    IP(独立IP)指独立ip数。国内大多是通过局域网共享上网。即路由器NAT地址转换上网,每个计算机在局域网的ip都独立,但是
    在公网上,必须把每个私网地址转换成路由器接口的固定公网ip。所有,公用一个公网ip上网的人数无论多少。在统计IP时,都
    算作一个ip。
    PV (page view) 即页面浏览。只要打开一个页面就算一个PV。一般逛个淘宝。几百个PV(页面)都不止吧。
    UV(Unique visitor 独立访客)是指访问的浏览器的客户端媒介(如笔记本,手机)比如你电脑手机都访问一个网站。就算2个UV。
    举个例子:你们宿舍6个人,都拿一个笔记本电脑浏览同一个电影网站。一小时内都看了30个网页。
    那么该网站的数据是:IP为1 (你们宿舍只能有一个公网ip出入)UV 为 6X1=6  PV 6X1X30=180.



本文出自 “赵雁生的linux之旅” 博客,请务必保留此出处http://12042068.blog.51cto.com/12032068/1894349

以上是关于web盲区(DNS,http)网站术语分析的主要内容,如果未能解决你的问题,请参考以下文章

大型分布式网站术语分析

HTTP 基础术语

什么是DNS

对于非 RESTful 的 HTTP Web 服务或对此类 Web 服务的调用是不是有标准术语?

DNS常用术语介绍

Web缓存基础:术语HTTP报头和缓存策略