Build a Web Service
Table of Contents
关于Node.js 的一个特征就是帮助我们搭建 webservice。 Node.js 属于 Javascript,主要针对于网络的编写
我们同样要使用到 HTTPS 这个module, 虽然 HTTP 也可以胜任这个要求 但是HTTPS 拥有 secure certification, 更安全
什么是web service
要想学习并深入它, 我们首先要了解它的定义
Web Services 介绍一种整合一系列 web-based的应用 包括 XML, SOAP, WSDL 和 UDDlopen standard.
- XML 用于保存和表现数据 HTML就是一种XML
- SOAP 用于传输数据
- WSDL 用于确保数据可用
- UDDI 列举可用的web services
Web服务允许组织在不了解防火墙后面的彼此IT系统的情况下进行数据通信
不同于 Client/Server,Web Server 不提供GUI 给用户 (如果不知道GUI, 我博客里面有介绍Python GUI),
Web服务通过网络上的编程接口共享业务逻辑,数据和流程。
开发人员可以将Web服务添加到GUI(例如网页或可执行程序),以向用户提供特定功能。 Web服务允许来自不同源的不同应用程序彼此通信而无需耗时的自定义编码,并且因为所有通信都是XML,所以Web服务不依赖于任何一种操作系统或编程语言。例如,Java可以与Perl交谈,Windows应用程序可以与UNIX应用程序通信。
搭建
var https = require("https");
var server = https.createServer(function(req, res) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end('Hello World');
});
server.listen(3000);
console.log("Server listening on port 3000");
首先 这个server 用一个 callbackfunction 每当这个server被激活的时候。
- 第一个返回的是request, 一个真实的object, 包括数据,header, 用户的信息, 用户的环境
- 第二个返回的是response, 也是一个object 是我们想要发给这个request的内容 这个需要我们来完成
因此我们用writeHead这个方程 来编辑我们的res
第一个量在writeHead是 statues code, 200表明这是一个成功的响应
第二个量代表javascript的header, 第一个将告诉浏览器你的res是什么类型 我们想要创造一个txt
3.res.end代表关闭我们的response, 然后会返回其中的内容
4.在最后我们要告诉服务器我们将要在哪个port使用这个server 去处理所有的 req
测试运行
1. 在termial运行文件
我们会发现 程序并没有停止运行, 它正在等待即将到来的requests
2. 在浏览器中查看
定位到 这个 port
响应HTML
var https = require("https");
var server = https.createServer(function(req, res) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end(`
<!DOCTYPE html>
<html>
<head>
<title>HTML Response</title>
</head>
<body>
<h1>Serving HTML Text</h1>
<p>${req.url}</p>
<p>${req.method}</p>
</body>
</html>
`);
});
server.listen(3000);
console.log("Server listening on port 3000");
把content-type更改为html
然后在end 中加入html代码 在html中 我去查看了 request的URL和 request的类型
结果
第二行是url 我们能发现我们就处于主页 所以是斜杆
如果我们尝试更改 url 例如 我们去css
我们能发现url随着我们的更改而变化 但是request的类型一直都是GET 除非我们发表了其他内容
总结
这只是最基础的 搭建 web server 的流程 在其它的文章里 我还将扩展并且深入 HTTP的多重应用
Author: Cvanzy 10/24/2018