前端系统班 - 07. Node.js Server

网络与 IP

TCP 与 UDP

  • HTTP 协议的底层是由 TCP/IP 协议构建的。
  • TCP(Transmission Control Protocol,传输控制协议)。
  • UDP(User Datagram Protocol,用户数据报协议)。
  • TCP 和 UDP 的区别:
    • TCP 可靠(成功与否都能感知),面向连接、相对 UDP 较慢;
    • UDP 不可靠,不面向连接、相对 TCP 较快。

TCP 的三次握手指的是什么:每次建立连接前,客户端和服务端之前都要先进行三次对话才开始正式传输内容,三次对话大概是这样的:
1. 客户端对服务端说:我要连接你了,可以吗?
2. 服务端对客户端说:好的,我准备好了,连接我吧。
3. 客户端对服务端说:那我连接你咯。
4. 开始后面的步骤。

内网与外网

  • 电信提供 DNS 服务;
  • 设备通过网线或 WIFI 与路由器连接;
  • 路由器通过光纤与电信服务器连接,路由器会有一个外网 IP,这就是你在互联网中的地址,但是这个地址通常是不固定的,重启路由器可能被重新分配一个外网 IP;
  • 可以花钱租一个固定外网 IP,但一般只有企业才会使用固定 IP,用来提供稳定的服务;
  • 路由器会创建一个内网,内网中的设备使用内网 IP,内网 IP 通常都是 192.168.xxx.xxx 的格式;
  • 路由器自身也占用一个内网 IP,它同时拥有一个外网 IP 和内网 IP;
  • 内网中的设备可以互相访问,但是不能直接访问外网,只能通过路由器中转才能访问外网;
  • 外网中的设备可以互相访问,但是不能直接访问内网,也只能通过路由器中转;
  • 路由器就是用来“指路”的,主要功能就是用来分发内容;
  • 内网与外网之间无法互通,唯一的连通点就是路由器,所以路由器又称为“网关”;
  • 除了内网 IP 和 外网 IP,还有两个特殊的 IP,一个是本地 IP:127.0.0.1,它代表设备自身;另一个是:0.0.0.0,它不表示任何设备,在不同地方有不同的含义。

端口

要使用 HTTP 协议(或 TCP/IP 协议)访问一个设备,只指定 IP 是不够的,还必须指定端口(Port)。

端口是一个编号,不是一种硬件。

一个服务器不一定只提供一种服务,那么一个 IP 是无法告诉服务器要使用的是哪种服务的。所以需要用一个端口,对应一种服务。例如:通常使用 80 端口提供 HTTP 服务,使用 443 端口提供 HTTPS 服务,使用 21 端口提供 FTP 服务等等……

端口号从 0 到 1023 号端口都有对应的服务,具体可以谷歌查询。

每个机器有 65535(2 的 16 次方减 1)个端口,这些端口遵循一些规定:

  • 0 到 1023(2 的 10 次方减 1)号端口是留给系统使用的,只有拥有管理员权限后,才能使用这 1024 个端口;
  • 其他端口可以给普通用户使用;
  • 如果一个端口正在提供服务,也就是被占用了,那么就不能再使用这个端口;除非先停止正在占用这个端口的服务。

使用 HTTP 协议访问另一个 IP 时,必须同时提供 IP 和端口号,缺一不可。但是一般访问一个网址时,由于默认访问的就是 80 端口,所以这个端口号会被浏览器自动添加并且隐去不显示,所以在输入网址时一般不需要写 80 端口号。

简易 Server

Node.js 服务器

接收请求

你可能感兴趣的:(前端系统班 - 07. Node.js Server)