导航


HTML

CSS

JavaScript

浏览器 & 网络

版本管理

框架

构建工具

TypeScript

性能优化

软实力

算法

UI、组件库

Node

冷门技能

⭐️ 浏览器请求网页的过程

Untitled

  1. 敲下回车,首先对网址进行 DNS 解析,把网址转为 IP 地址
  2. TCP/IP 三次握手,建立以后才能开始 HTTP 请求
  3. 浏览器得到 HTML 代码,浏览器再解析并下载其中的静态资源渲染页面
  4. 四次挥手,中断连接
    1. TCP/IP 是一种长连接,过程完了以后需要客户端 or 服务器发起断开连接请求

⭐️ URI

Untitled

Untitled

举例

Untitled

客户端和服务端

C/S 和 B/S 架构

Untitled

域名

什么是域名

  1. 相当于访问互联网某一户人家的地址
  2. 域名与服务器绑定以后,域名与服务器对应的 IP 是映射关系
    1. www.jd.com -> 111.13.28.118
  3. 域名比 IP 更方便用户记忆
  4. IP 可以对应多个域名,所以不同的域名可以访问一个或多个WEB网页

购买及解析

购买域名及备案

A 记录的配置需要在服务器配置虚拟主机,而 CNAME 不用,因为本质是访问别人的服务器

举例

你有两个域名 www.example.comexample.com,想让它们指向同一个服务器IP地址。你可以为 example.com 设置A记录指向IP地址,然后为 www.example.com 设置CNAME指向 example.com

[example.com](<http://example.com/>) → 192.168.1.1 (A记录)
[www.example.com](<http://www.example.com/>) → [example.com](<http://example.com/>) (CNAME记录)

域名分类

Untitled

域名级别

⭐️ DNS

Untitled

⭐️ DNS 解析

Untitled

  1. 输入 www.xxx.com
  2. 客户端询问 DNS本地服务器 这个域名的 IP 是多少
    1. DNS本地服务器:就是网络运营商(电信、移动)。它们有自己的DNS服务器
  3. 如果 DNS本地服务器 的缓存中有,则直接把IP返回
  4. 如果 DNS本地服务器 没有此域名对应的IP,则会访问 根服务器 ,询问域名对应的IP是多少
  5. 根服务器会告诉说,我这没有(因为根服务器存的很少,只有1k多条),你得在 .com域服务器 中找,接着把 .com域服务器 IP 地址给到 DNS本地服务器,DNS本地服务器会缓存此IP地址,下次就直接缓存中找
  6. DNS本地服务器询问 .com域服务器 后,.com域服务器也说没查到(存的也很少,和根服务器一样,一般做管理用的),会告诉你说你去找 xxx.com域服务器
    1. xxx.com域服务器是xxx.com域名的总服务器 IP,并不是 xxx.com域名 本身的 IP
  7. 然后 DNS本地服务器 就去找 xxx.com 域服务器,xxx.com 域服务器就去找 xxx.com 这个域名的 IP 地址,返回给 DNS本地服务器
  8. 最后 DNS本地服务器 把这个 xxx.com 域名的 IP 写入缓存,再返回给浏览器,转换成 IP 地址
  9. 这个时候浏览器就拿到了 IP 地址

IP

Untitled

⭐️ IP 端口号 PORT

TCP

TCP 连接的前奏

Untitled

⭐️ TCP 三次握手

image.png

  1. 客户端:发送连接请求(喂,听得到吗?)
  2. 服务端:我收到了请求,确认可以连接(听得到,你听得到我吗)
  3. 客户端:收到服务端确认信息,确认连接建立(听到了,我们可以说话了)

Untitled

总结

  1. 第一次握手
  2. 第二次握手
  3. 第三次握手

资源