http服务器
const http = require("http");
const url = require("url");
const querystring = require("querystring");
let server = http.createServer((req, res) => {
let pathname = url.parse(req.url).pathname;
console.log("pathname: " + pathname);
let body = "";
req.on("data", (data) => {
body += data;
});
req.on("end", () => {
res.writeHead(200, { "content-type": "text/plain" });
if (req.method === "GET") {
let query = querystring.parse(url.parse(req.url).query);
console.log("query:%j", query);
res.end("http-server-get");
} else if (req.method === "POST") {
let query = querystring.parse(body);
console.log("query:%j", query);
res.end("http-server-post");
}
});
});
server.listen(1234, () => {
console.log("服务器启动监听localhost:1336");
});
http客户端
const http = require("http");
const querystring = require("querystring");
const options = {
hostname: "localhost",
port: 1234,
path: "/info/child?abc=123&name=china",
method: "GET",
// method: "POST",
};
const contents = querystring.stringify({
name: "china",
abc: 456,
});
const req = http.request(options, (res) => {
console.log("status:" + res.statusCode);
console.log("headers:" + res.headers);
res.setEncoding("utf8");
res.on("data", (data) => {
console.log("response:" + data);
});
});
// req.write(contents);
req.end();
https服务器
https需要访问秘钥和证书文件
安装了openssl,生成证书
/**
* ssl证书生成
**/
openssl genrsa -out privatekey.pem 1024 【生成privatekey.pem私钥】
openssl req -new -key privatekey.pem -out certrequest.csr 【生成certrequest.csr签名】
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem 【生成certificate.pem签名证书】
https服务默认端口443。
const https = require("https");
const url = require("url");
const fs = require("fs");
var options = {
key: fs.readFileSync("../privatekey.pem"),
cert: fs.readFileSync("../certificate.pem"),
passphrase: "123456", //你的密码
};
const server = https.createServer(options, function (req, res) {
var pathname = url.parse(req.url).pathname;
console.log("pathname:" + pathname);
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("hello-server");
});
server.listen(443, () => {
console.log("服务器监听localhost:443");
});
https客户端
var options={
hostname:"localhost",
port:443,
path:"/info?abc=123&name=China",
method:"GET"
};
options.agent = new https.Agent(options);
//构造https请求(客户端)【自签名证书非法,应该使用正式正式】
var req=https.request(options,function(res)
{
console.log("STATUS:"+res.statusCode);
console.log("HEADERS:%j",res.headers);
res.setEncoding("utf8");
res.on("data",function(chunk)
{
console.log("response:"+chunk);
});
});
req.end();//发送请求
通过浏览器去验证一下你的https服务器,https://localhost:443/find?name=123
浏览器默认会阻止打开未认证的https页面,可以输入thisisunsafe
下一篇:创建静态资源服务器