从url输入到页面展现到底发生了什么
一、DNS解析:将域名解析成IP地址
1、URL(统一资源定位符)
2、URI(统一资源标识符)
- URL和URI的区别: URL是URI的自己, 原本URI是由URN(姓名)和URL(位置)组成, 但是由于URN几乎没人使用,所有URI几乎都为URL
- new URL(), 通过URL可以获取得到host, hostname, hash等, 不用通过字段判断
3、URL的语法规则 scheme://host.domain:port/path/filename
- scheme: 因特网服务类型。 常见的协议: http、https、ftp、file
- host:域主机, http的默认主机是www
- domain:因特网的域名
- port:主机上的端口号, 默认是(http: 80, https:443)
- path: 服务器的路径
- filename: 文档、资源的名称
4、浏览器的缓存机制(如果浏览器有对应url的缓存, 那么根据是否需要向服务进行请求可以分为以下两种类型)
- 强缓存(Expires 和 cache-control): 如果资源存在并且有效, 则直接读取本地磁盘, 无需建立连接
- 协商缓存(Last-modified或者etag): 服务器判断数据需要更新, 若需要更新返回状态码200+新数据, 否则返回204, 读取本地资源
- 具体可以看文章浏览器的缓存机制
5、DNS域名解析
浏览器输入网址后, 首先要经过域名解析, 因为浏览器并不能通过域名找到对应的服务器,而是要通过ip地址(IP协议提供的一种统一地址格式)。对于人类来说, 用字母配合数字的表示形式来指定服务器更加符合人类的记忆习惯(域名是给人类记忆和沟通的)。 对于计算机来说, 更擅长处理一长串的数字(ip地址是提供给计算机运算的)
域名解析本质:
1、DNS协议提供通过域名查找IP地址, 或者通过IP地址反找域名的服务
2、DNS是个网络服务器, 我们的域名解析简单来说就是在DNS中查找一条信息记录