当你键入一个网址之后,到底发生了什么
1.浏览器对用户输入的网址做初步的格式化检查
未写明是https协议,就默认为http协议
2.通过DNS查找目标IP
DNS首先检查浏览器缓存
检查操作系统缓存 如host文件
检查路由缓存
前三步都未找到的话 DNS会通过UDP向ISP的LDNS发出查找请求
UDP -> IP -> ARP -> MAC ->LDNS 但如果LDNS没有的话就会连接域名服务系统的根服务器(.) 如zhihu.com. 最后的点就是根服务器 (根域名服务器全球13台)根据多级域名找到IP地址并返还
3.浏览器把拿到的IP地址找TCP TCP进行三次握手建立虚拟通道
4.浏览器将http请求消息交给TCP TCP加入端口 发送消息
5.http server收到消息 返还 HTTP Redirect 消息 告知目标信息所在
6.浏览器拿到新的信息,在TLS安全处理加密后,重复3,目标为拿到的信息地址
7.最后http server拿到请求,返还所求页面
8.浏览器拿到资源,进行渲染
tips
1.涉及概念
http/https
【超文本传输协议】HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间 的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息
为了解决HTTP协议的这一缺陷,需要使用另一种协议:【安全套接字层超文本传输协议】HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器 的身份,并为浏览器和服务器之间的通信加密。
参考资料:
https://juejin.im/entry/58d7635e5c497d0057fae036
DNS/CDN
域名系统DNS(Domain Name System)
ta是一个分布式数据库,功能是联系域名和ip地址。域名与ip的对应关系,被称为记录(record),记录的各种类型
- A: Address,域名指向的IP地址,一个域名可以有多个A记录。
- NS:Name Server,保存下一级域名信息的服务器地址
- MX:Mail eXchange,接受电子邮件的服务器地址
- CNAME:Canonical Name,返回另一个域名,令当前查询域名挑去该域名,多个域名->服务器的映射。
- PTR: Pointer Record,只用于ip地址查询域名
DNS的组成
- 名称解析器(resolver)
- 域名空间(domain name space)
- 名称服务器(name server)
DNS查询过程
DNS安全问题
DNS优化
什么是CDN
CDN的全称是Content Delivery Network,即内容分发网络,它能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的 服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
使用CDN优化后的DNS过程
参考资料:https://juejin.im/entry/5ad011216fb9a028cd457f60