-HTTP

目录

一、初始HTTP协议

二、IP

IP的分类

三、端口

四、创建HTTP服务

1.导入HTTP模块

2.创建服务对象

3.监听端口,启动服务

五、提取HTTP报文

六、设置HTTP响应报文

1.设置响应状态码

2.设置响应状态的描述

3.设置响应头

4.设置响应体



一、初始HTTP协议

Hypertext Transfer Prtocol 超文本传输协议

  • 协议:双方必须共同遵从的一组约定

HTTP协议:对浏览器和服务器之间的通信进行约束

二、IP

IP→寻找网络设备

IP也称为IP地址,本身是一个数字标识,例如192.168.1.3

ip本质是32bit的二进制数字,每8bit一组转成十进制合在一起并用.分开

  • IP的作用:用来标识网络中的设备,实现设备间的通信

IP的分类

三、端口

端口:应用程序的数字标识,一台现代计算机有65536个端口(0~65535),一个应用程序可以使用一个或多个端口。

  • 端口的主要作用:实现不同主机应用程序之间的通信

四、创建HTTP服务

1.导入HTTP模块

const http = require('http')

2.创建服务对象

const server = http.createServer((request, response) => {
    response.end('Hello HTTP Server')
})

3.监听端口,启动服务

server.listen(9000, () => {
    console.log('服务已经启动....');
})

五、提取HTTP报文

//1.导入HTTP模块
const http = require('http')

// 2.创建服务对象
const server = http.createServer((request, response) => {
    //获取请求方法
    // console.log(request.method);

    // 获取请求的url
    // console.log(request.url);//只包含 url 中的 路径 与 查询字符串

    // 获取HTTP协议版本号
    // console.log(request.httpVersion);

    // // 获取请求体
    // // 1.声明一个变量
    // let body = ''
    // // 2.绑定 data 事件
    // request.on('data', chunk => {
    //     body += chunk;
    // })
    // // 3.绑定end事件
    // request.on('end', () => {
    //     console.log(body);
    // })
    //响应

    // 获取请求路径和查询字符串
    // 实例化 url 对象
    let url = new URL(request.url, 'http://127.0.0.1:9000/');
    // console.log(url);
    // 输出路径
    // console.log(url.pathname);

    response.end('Hello HTTP Server')
})

// 3.监听端口,启动服务
server.listen(9000, () => {
    console.log('服务已经启动....');
})
// ctrl +c停止 终端

六、设置HTTP响应报文

1.设置响应状态码

    response.statusCode = 203

2.设置响应状态的描述

    response.statusMessage = 'ILoveYou'

3.设置响应头

    response.setHeader('content-type', 'text/html; charset = uth - 8')
    // 同名
    response.setHeader('test', ['a', 'b'])

4.设置响应体

    response.write('666')

完整代码:

//导入HTTP模块
const http = require('http')

// 创建服务对象
const server = http.createServer((request, response) => {
    // 1.设置响应状态码
    response.statusCode = 203

    // 2.设置响应状态的描述
    response.statusMessage = 'ILoveYou'

    // 3.设置响应头
    response.setHeader('content-type', 'text/html; charset = uth - 8')
    // 同名
    response.setHeader('test', ['a', 'b'])

    // 4.设置响应体
    response.write('666')

    response.end('response')
})



// 监听端口,启动服务
server.listen(9000, () => {
    console.log('服务已经启动....');
})

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值