响应内容类型Content-Type

// 1.结合 fs 发送文件中的数据
// 2. Content-Type
// 不同的资源对应的 Content-Type 是不一样的
// 图片不需要指定编码
// 一般只为字符数据才指定编码
var fs = require('fs');
var http = require('http');

var Server = http.createServer();

Server.on('request', function (request,response) {
    console.log('收到客户端的请求了');
    var url = request.url;

    // url:统一资源定位符
    // 一个url 最终其实是要对应到一个资源的
    if (url === '/') {
        // response.end('index');
        // 注意格式
        
        // response.end('<h3>标题</h3><p>段落</p>')
        response.setHeader('Content-Type', 'text/html;charset=utf-8');
        fs.readFile('./resource/index.html', function (error,data) {
            if (error) {
               
                console.log('文件读取失败');
            } else {
                console.log('文件读取成功');
                // data 默认是二进制数据,可以通过 .toString 转为咱们能识别的字符串
                // response.end() 支持两种数据类型,一种是二进制,一种是字符串
                console.log(data.toString());
                response.end(data.toString())
            }
        })
    } else if(url === '/jpg') {
        fs.readFile('./resource/ad2.jpg', function (error,data) {
            if (error) {
                console.log('图片读取失败');
            } else {
                // 图片就不需要指定编码了,因为我们常说的编码一般指的是:字符编码
                response.end(data);
            }
        })
    }else if (url === '/login') {
        // 在服务器端默认发送的数据,其实是 uft8编码的内容
        // 但是浏览器不知道你是uft8 编码的内容
        // 浏览器在不知道服务器响应内容的编码的情况下会按照当前操作系统的默认编码去解析
        // 中文操作系统默认是gbk
        // 解决办法就是正确的告诉浏览器我给你发送的内容是什么编码的
        response.setHeader('Content-Type', 'text/plain; charset=utf-8');
        // text/plain 就是普通文本
        // 如果你发送的是html格式的字符串,则也要告诉浏览器我给你发送的是 text/html 格式的内容 它可以解析html代码
        response.end('注册页面')
    } else if (url === '/jpg') { 
        
       
        fs.readFile('./resource/ad2.jpg',function (error,data) {
            if (error) {
                console.log('文件读取失败了');
            } else {
                console.log('文件读取成功');
            response.setHeader('Content-Type','image/jpeg')
                response.end(data);
            }
        })
    }else {
        response.end('404 not found!')
    }
    // console.log(request.url);
    // response.end(request.url);
})

Server.listen(5000, function () {
    console.log('服务开启了');
})
文章目录