一、网络传输
下面是一种简化的视图,用于描述互联网上的数据传输过程:
-
发起请求:当你在浏览器中输入一个网址并按下回车键时,你的电脑会向DNS服务器发起一个请求,来查找这个网址对应的IP地址。DNS服务器就像是一个电话簿,它知道每个网址对应的IP地址。
-
路由:一旦你的电脑知道了目标IP地址,它就会开始尝试与目标电脑建立连接。这个过程中,你的请求可能会经过多个路由器,每个路由器都会将请求转发到下一个路由器,直到请求到达目标电脑。这个过程就像是邮递员将信件从一个邮局传递到另一个邮局,直到信件到达收件人。
-
接收请求并响应:目标电脑(也就是服务器)接收到请求后,会处理这个请求,然后发送一个响应回你的电脑。这个响应包含了你请求的数据(例如网页的HTML代码)。
-
显示结果:你的电脑收到响应后,会将数据显示在浏览器中。例如,如果你请求的是一个网页,那么浏览器就会解析HTML代码,并将网页显示出来。
这个过程可能看起来很复杂,但实际上它通常会在几秒钟内完成。这就是互联网的强大之处:它可以使全球各地的计算机相互连接并交换数据。
这就导致:
如果存在已启动的本地服务,即使你的计算机断开了互联网,在同一局域网的电脑群(例如,你们都在同一个家里,或者在同一个办公室),仍可以通过输入你的局域网IP地址来访问你的服务器;但外部互联网用户却无法访问。
因为在这种情况下,局域网内部的请求不需要通过互联网,而是直接在局域网内传输;互联网的其他用户因为无法把请求路由到你的电脑(“断网”就好比你的电脑处于黑户状态,没有加入到路由表里),所以也就无法请求部署在你电脑上的服务了。
二、传输协议
HTTP和HTTPS是最常用的协议来发起网络请求,特别是在Web应用中。但实际上,还有很多其他的协议可以用来在网络中传输数据。以下是一些例子:
-
FTP(File Transfer Protocol):用于在客户端和服务器之间传输文件。
-
SMTP(Simple Mail Transfer Protocol):用于发送电子邮件。
-
IMAP(Internet Message Access Protocol)和POP3(Post Office Protocol):用于接收电子邮件。
-
SSH(Secure Shell):用于安全地访问远程服务器。
-
Telnet:用于在Internet或局域网内进行远程登录。
-
WebSocket:用于在Web应用中实现实时双向通信。
-
gRPC:Google开发的一种高性能、开源的通用RPC框架。
这些协议都定义了客户端和服务器如何交换数据,包括如何建立连接,如何发送请求,如何接收响应等。不同的协议会有不同的特性和使用场景。