美文网首页
【翻译】Node.js 教程 —— 客户端与服务端

【翻译】Node.js 教程 —— 客户端与服务端

作者: kyuan | 来源:发表于2018-11-29 23:09 被阅读7次

    马上开始课程系列的重点,创建服务并提供文件服务。在这之前我们先花几分钟了解下里头的运作,什么时候提供文件、如何请求文件等,我认为了解这些有助于编写自己的应用。

    客户端与服务端

    当我们通过浏览器 Chrome 去浏览一个网页,我们可能会在网页上做出某些行为,如获取某些数据。当浏览器发送一个请求到服务器,服务器会处理这个请求然后发回一个响应给客户端,表现出来就是更新我们看到的页面。

    但实际上双方是如何沟通的呢?

    协议扮演着中间沟通的角色

    协议是什么

    协议是什么?

    协议是一套双方所认同的沟通规则。比如,一个德国人与一个意大利人,他们想进行交流,各自使用母语进行聊天,德国人用德语,意大利人用意大利语,他们无法明白对方在说什么,交流无果。但作为第二语言的英语他们都会,基于英语沟通,交流成功。互联网上的工作原理是相似的。客户端与服务端能通过称为协议的一套规则进行沟通,这样就能在双方都理解的情况下进行交流。

    你可能已经知道每一台计算机或服务器都能通过的 IP 地址(下面这堆数字)进行唯一识别。

    套接字

    假如这两台机器需要沟通,客户端需要发起一个请求到服务器端,首先客户端需要连接服务器端(IP 地址),打开两台机器之间一个叫 socket 的东西(本质上是一条可以传输信息的通道)。这些信息根据不同的协议被结构化,如 HTTP 或 FTP,这些协议就像德语和意大利语等语言。所以取决于客户端与服务端采用什么方式沟通,发送的数据或信息会因协议的不同进行对应的结构化。

    FTP 是文件传输协议, P 代表的是协议;HTTP 则是网页专用。

    如 HTTP,当信息结构发出去后已经决定了, 信息通过称为 TCP 的协议在两台计算机之间通过套接字(socket)发送,尽管数据已经以特定的方式结构化,可能是 HTTP 或 FTP 等,通过 TCP 协议从服务器端发送数据到客户端,本质上是将数据拆分成小块,沿着套接字通道进行传输,这些小块叫 packet (数据包),所有这些功能已经在我们的计算机当中,Node.js 提供使用这些功能的能力,建立计算机之间的连接并交换数据。因此,如果我们在服务端运行 Node 程序,我们能针对客户端的请求进行响应数据。

    下节课我们就会进行客户端请求与服务器端响应的例子,创建服务器,然后在浏览器端发起请求。

    在这之前再提一个 port(端口),当我们向一个运行 Node 程序的服务器发送请求,我们是如何知道这个请求是访问 Node 程序而非其他同样在服务器上运行的如邮件功能之类的程序?答案是,在服务器端运行的 Node 或其他程序都会对特定的端口进行监听。因此,如果请求发送到指定 IP 的 端口,如果 Node 程序监听这个端口则会进行响应,否则不作处理。这样就可以路由我们的请求到 Node。

    端口

    如图所示,端口会跟在 IP 地址后,这个 IP 地址可能会有多个程序存在,如果 Node 程序监听这个 3000 端口,当请求来到这个端口的时候,Node 程序会对其作出响应。

    相关文章

      网友评论

          本文标题:【翻译】Node.js 教程 —— 客户端与服务端

          本文链接:https://www.haomeiwen.com/subject/mnqnqqtx.html