开发者学堂课程【Node.js 入门与实战:对于服务器来说请求url就是一个标识符】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8265
对于服务器来说请求url就是一个标识符
当我们在浏览器里,请求服务器一个资源的时候,以往的认识是,当请求 a.png 返回的一定是一张图片,
当请求.http 返回的一定是一个网页,当请求.css 返回的一定是 css 文件,这个是以往的认识。
但是事实上不是这样,之前之所以认为是那样,是因为那些外部容器 apache,这样的外部服务器帮助实现了这样的功能,请求什么返回什么文件,但是实际上服务器并不是这样的。
在地址栏中那个url 仅仅是一个标识符,很有可能请求一个 a.phm 返回的是一个html 文件,请求一个 css 文件返回一个图片,请求一个东西返回别的文件,这是完全有可能的。在浏览器服务器那个地址栏请求的就是一个标识,请求什么返回什么完全是由服务器决定的。
例子:
// 加载 http 模块
var http = require( ' http');
var path = require( 'path');
var fs = require( 'fs');
var mime = require( 'mime');
// 创建服务
http.createServer(function (req, res) {
if (req.url === ' /index.do'|| req.url === ' /index.html ') {
// 读取 index.html 并返回
fs.readFile(path.join(__dirname, 'index.html '), function (err,dat) {
if (err) {
throw err;
}
res.end(data);
});
} else if (req.url === "/haha.xxx ') {
fs.readFile(path.join(__dirname
,‘index.html ), function (err,dat) {
if (err) {
throw err;
}
Res.setHeader(‘Content-Type’,’image/jpeg’);
res.end(data);
});
}
}).listen(9090,function () {
console.log('http://localhost:9090');
});
<! DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello Index</title>
</ head>
<body>
<h1 style="color: red; " >Hello Index</h1>
<h1>
你好首页!!!看乱码吗? </h1>
<img src="./haha.xxx" alt="haha.xxx">
</body>
</html>
判断主要是.php,就会启动php模块执行源代码,如果把apache服务器配置一下把php配置成idcast,那么这个时候你只要请求idcast的时候就会启动php模块进行返回,这样的效果也完全是一样的,所以url就是一个标识而已。