美文网首页
输入URL后的那些事

输入URL后的那些事

作者: 白手_ | 来源:发表于2018-03-21 17:08 被阅读0次

1.用户输入URL

首先,用户输入URL(统一资源定位符):https://www.baidu.com
https : 协议名
www : 在配置域名解析的时候,这叫主机记录
baidu.com : 域名
说道这里,可能有小伙伴不知道网址-域名-服务器这几个家伙的关系!

配置域名解析(一句话概况:通过URL去访问哪个资源)

2、DNS解析

上一步,游览器拿到了URL,接着游览器需要知道具体的ip地址,这时候就需要DNS解析服务来告诉它了,你可能会问,那我们干嘛不干脆输IP地址呢?

  1. IP地址是192.168.0.1这类数字,相比baidu.com等语义化不利于记忆
  2. 你也可以直接输入IP地址,但是如果你的服务部署在阿里云,阿里云会视访问为恶意攻击而触发警报

DNS是什么呢?

DNS(Domian Name System),网域名称系统,我们配置域名解析的过程,其实就是在互联网上建立一个域名IP地址的映射关系(一个分布式数据库),当然具体的操作是你的域名提供商帮你做了。

解析过程

  1. 游览器从缓存中查找DNS记录(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存,chrome查看办法:net-internals/#dns)
  2. 如果没找到,则到操作系统的DNS缓存(Windows系统可以在命令行下使用 ipconfig /displaydns查看 )中查找
  3. 如果没找到,则到hosts文件(位于C:\Windows\System32\drivers\etc)中查找
  4. 如果没找到,游览器发起DNS的系统调用,接着向本地配置的DNS服务器(360可以配置,反正它说自己的好,-,-)发起域名解析请求
  5. 接下来的过程,嘴炮不如上图


    DNS解析过程

3、发起TCP三次握手

拿到服务器IP后,游览器会以一个随机端口(1024 < port < 65535)向服务器的80端口(第一张图域名解析中,可以看到没有配置服务器端口,默认的)发起TCP连接请求。这个连接请求(原始的http请求经过TCP/IP4层模型的层层封包)到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终到达WEB程序,最终建立了TCP/IP的连接

大白话模式
client : 嘿,服务器大哥,咱们唠唠嗑吧
server:好,我听着呢,你唠吧
client : 那你听好啦,我要唠了!

三次握手

4、发起HTTP请求

这个时候,有个需要注意的点,很多人也奇怪的东西,为什么我的请求前面有个类型为option的请求,这个是复杂请求简单请求的区别,叫预检请求(PreFlight),详情:阮一峰:跨域资源共享 CORS 详解
http请求成功后,服务器把html发送给游览器,碰到linkscript标签后,渲染暂停,等待下载完成(阻塞式),所以性能优化中有一点就是把必要的css和script放在head标签内,其他的比如点击事件,定时器,放在下面(onload就是这个作用)

后面还有几个大点,后续更新:
1、游览器渲染原理(dom树,渲染树,回流,重绘)
2、浏览器渲染阻塞与优化

相关文章

网友评论

      本文标题:输入URL后的那些事

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