从url输入到页面加载完成发生了什么?

大致的说,可分为如下几个步骤:

  1. 解析URL
  2. DNS(Domain Nams System,域名解析服务器)查询,把域名转换成为网络可以识别的IP地址
  3. ARP(Address Resolution Protocol,地址解析协议)广播,根据IP地址来解析到MAC地址
  4. 分别从应用层到传输层、网络层和数据链路层分别加入各个层的头部封装为包
  5. 进行三次握手后,客户端与服务器建立连接
  6. 服务器向客户端返回数据,浏览器接收到数据
  7. 浏览器开始渲染页面

第一步:在浏览器输入URL

URL是什么?

URL:Uniform Resource Locator,统一资源定位符,有时也被俗称为网页地址(网址),用于定位互联网上的资源
http、https、ftp、file 协议

http://jirengu.com/blog
file:///Users/hunger/workspace/a.html
https://10.245.23.456:3000/users
//jirengu.com/static/imgs/a.png

第二步:域名解析

对于http://jirengu.com的URL,浏览器实际上并不知道jirengu.com到底是什么东西,需要查找jirengu.com网站所在的服务器的IP地址,才能找到目标

为什么要发明域名,不直接用IP?

域名是为了方便理解而存在的,也解决了IP地址和网络服务设备的关系不固定的问题

  • 域名是什么?
    • 对于http://jirengu.com:8080/blogjirengu.com就是域名
  • IP地址是什么?
    • 每个处于互联网中的设备都有IP地址,形如192.168.0.1
    • 局域网IP和公网IP是有差别的
    • 127.0.0.1代表本机的IP

域名解析的流程

  1. 浏览器缓存 —— 浏览器会缓存DNS记录一段时间
  2. 系统缓存 —— 从Hosts文件查找是否有该域名和对应IP
  3. 路由器缓存 —— 一般路由器也会缓存域名信息
  4. ISP DNS缓存 —— 比如到电信的DNS上查找缓存
  5. 如果都没有找到,则向根域名服务器查找域名对应IP,根据域名服务器把请求转发到下一级,直到找到IP

电脑上不了网,为什么修改dns为8.8.8.8或者144.144.144.144?

  • 用户在浏览器中输入域名之后,操作系统首先就要将域名解析到IP地址才能访问,如果IP地址信息中配置的DNS服务器本身出现问题(比如宕机或者遭受攻击等),那么很显然是不能完成解析工作的,结果就是访问的网站打不开,不过既然互联网这么发达,DNS服务器远远不止一台,事实上,基本每个地区自己的DNS服务器(甚至个别规模比较大的公司也有专业的DNS服务器对外提供服务),我们可以配置当地的DNS服务器地址也可以配置其他地区的甚至国外的
  • 8.8.8.8是一个IP地址,是Google提供的免费DNS服务器的IP地址,用户可以使用Google提供的DNS服务器上网,无论从稳定性还是安全性上来说都非常的有保障,不过因为8.8.8.8这台DNS服务器位于国外,虽然有一定的优势,还是建议国内用户用境内的DNS服务器为妙,毕竟中美之间的带宽有限,也经常会发生访问不正常的事情。要找境内的DNS服务器其实很简单,就在百度中搜当地的DNS就行了
  • 114.114.114.114 是国内电信联通移动全国通用DNS

DNS是什么?

  • DNS(Domain Name System)中文意思为域名解析服务器,它在互联网的作用是把域名转换成为网络可以识别的IP地址。当用户在浏览器中输入网址域名时,首先就会访问系统设置的DNS域名解析服务器(通常由ISP运营商如电信、联通提供)。如果该服务器内保存着该域名对应的IP信息,则直接返回该信息供用户访问网站。否则,就会向上级DNS逐层查找该域名的对应数据

DNS劫持是什么?

  • DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址
  • 目前国内用户普遍使用的是ISP运营商提供的DNS服务器,这样有着一个巨大的风险,就是DNS劫持,目前国内ISP运营商普遍采用DNS劫持的方法,干扰用户正常上网,例如,当用户访问一个不存在(或者被封)的网站,电信运营商就会把用户劫持到一个满屏都是广告的页面,以帮助自己盈利

第三步:服务器处理

服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012。系统里安装的处理请求的应用叫 Web server

三次握手

  1. 建立连接时,客户端发送SYN包到服务器,等待服务器确认
  2. 服务器收到SYN包之后 ,确认客户的SYN,同时自己也发送一个SYN包
  3. 客户端收到服务器的包之后,向服务器发送确认包,此包发送完毕,客户端和服务器进入连接状态
  4. 开始传输数据

Web服务器

常见的web服务器有 Apache、Nginx、IIS、Lighttpd
web服务器接收用户的Request交给网站代码,或者接收请求反向代理到其他的web服务器

网站处理流程

MVC:模型(model)- 视图(view)- 控制器(controller)
这里以 Rails 举例:


浏览器处理

  • 浏览器渲染页面详解:
    • 由从服务器接收到的html形成DOM
    • 样式被加载和解析,形成css对象模型CSSOM
    • DOM和CSSOM创建一个渲染树
    • 每个渲染元素来说,它的坐标是经过计算的,进行渲染树的布局layout
    • 最后,将布局显示在浏览器窗口,进行渲染树的绘制painting
  • HTML字符串被浏览器接收后被一句句读取解析,解析到link标签后重新发送请求获取css, 解析到script标签后发送请求获取js,并执行代码,解析到img标签后发送请求获取图片资源
  • 绘制网页
    • 浏览器根据HTML和CSS计算得到渲染树,绘制到屏幕上,js会被执行

参考:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容