node-http模块(四)

本文介绍了HTTP的基本概念,包括其作为传输协议的作用,客户端如何通过GET和POST请求发送数据,服务器的响应方式,以及常见状态码的含义。还涵盖了搭建服务器、访问HTML内容和HTTPS安全性的讨论。
摘要由CSDN通过智能技术生成

http介绍

什么是http

传输协议。

客户端以什么样的形式发送数据给服务器端

服务器端以什么样的形式发送数据给客户端

http协议基于TCP面向连接

请求方式

get

get 的语义时获取的意思。如果要从服务器端获取数据,则使用get

get 的参数会在地址栏显示,不安全

post

post 的语义时邮寄的意思。如果要将本地的数据推送给服务器端,则使用post

post 的参数不会在地址栏显示,安全

常见的状态码

200:成功 2开头的都表示成功

404:请求的资源不存在。 4开头的都表示客户端错误。

302:重定向。 类似于生活的呼叫转移。

500:服务器端错误。

https://www.mi.com/redminote11pro?id=1

mi.com表示小米的服务器,redminote11pro 表示这台服务器上的具体资源。 id=1是客户端发送给服务器端的数据。

搭建服务器

//引入http模块,用于搭建服务器。
const http = require("http");
//创建服务,传入一个回调函数,当请求进来的时候,该回调就会执行。
//req:请求对象   包含请求信息和对应的方法
//res:响应对象   包含响应信息和对应的方法
let app = http.createServer((req, res) => {
    res.end("<h1>Hi,Good afternoon</h1>");//这里暂时不可以写汉字,会出现乱码
});
//添加端口监听   每一个软件启动都需要一个端口
app.listen(3000);
//只是输出一个提示信息而已
console.log("服务已启动!");
访问html中的内容并返回

创建一个需要被访问的index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <h1 style="color: pink;">最后的倔强——发际线决不后退</h1>
</body>

</html>
const fs = require("fs");
const path = require("path");
const http = require("http");

http.createServer((req,res) => {
    res.setHeader("Content-Type", "text/html;charset=utf-8;");
    //异步写法
    
    //当有请求进来后,读取index.html中的内容并返回
    fs.readFile(path.join(__dirname,"index.html"),"utf-8",(err,data) =>{
        if(err){
            console.log(err);
            res.end(JSON.stringfy(err));
            return
        }
         //前后端交互时,只能请求和响应字符串
            res.end(data);
    } )
        //同步写法
        // const data = fs.readFileSync(path.join(__dirname,"index.html"),"utf-8")
        // res.setHeader("Content-Type","text/html;charset=utf-8;")
        // res.end(data);
}).listen(3000);
console.log("服务器已启动")

打开服务器输入127.0.0.1:3000便可以访问html的内容

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值