http 模块 是 node.js 提供的,用来创建 web 服务器 的 模块,通过 http 模块提供的 http.createServer() 方法,就能让一台普通的电脑,变成一台 web服务器
1、创建实例 createServer
const server = http.createServer();
2、绑定 事件
server.on( 事件名称,callback )
req:客户端相关数据和属性
res:服务器端相关数据和属性 res.end() :向客户端响应,不然一直转圈
server.on('request', function (req, res) {
console.log('请求了');
res.end('111');// 向客户端响应,不然网页一直转圈
})
HTTP模块对象的 http.ServerResponse 类
该对象在 HTTP 服务器内部被创建。 它作为第二个参数被传入 ‘request’ 事件,也就是我们的 res 对象。
该对象具有如下属性和方法:
response.getHeader(name)
:读取一个已入队列但尚未发送到客户端的响应头。 注意,名称不区分大小写。
response.getHeaders()
:返回当前响应头文件的浅拷贝。 由于使用了浅拷贝,因此数组值可能会改变,无需对各种与响应头相关的http模块方法进行额外调用。 返回对象的键是响应头名称,值是各自的响应头值。 所有响应头名称都是小写的。
response.getHeaderNames()
:返回一个包含当前响应唯一名称的 http 头信息名称数组,名称均为小写。
response.hasHeader(name)
:如果响应头当前有设置 name 头部,返回 true。请注意,名称匹配不区分大小写。
response.setHeader(name, value)
:为一个隐式的响应头设置值。 如果该响应头已存在,则值会被覆盖。 如果要发送多个名称相同的响应头,则使用字符串数组。
注意:response.setHeader() 设置的响应头会与 response.writeHead() 设置的响应头合并,且 response.writeHead() 的优先。
response.writeHead(statusCode[, statusMessage][, headers])
:发送一个响应头给请求。 状态码是一个三位数的 HTTP 状态码,如 404。 最后一个参数 headers 是响应头。 第二个参数 statusMessage 是可选的状态描述。
该方法在消息中只能被调用一次,且必须在 response.end() 被调用之前调用。
没有设置头前调用 response.write() ,则隐式的响应头会被处理。
response.write(chunk[, encoding][, callback])
:chunk 可以是一个字符串或一个 buffer。 如果 chunk 是一个字符串,则第二个参数指定如何将它编码成一个字节流。 encoding 默认为 ‘utf8’。 当数据块被刷新时,callback 会被调用。
response.end([data][, encoding][, callback])
:该方法会通知服务器,所有响应头和响应主体都已被发送,即服务器将其视为已完成。 每次响应都必须调用 response.end() 方法。
response.finished
:返回一个布尔值,表示响应是否已完成。 默认为 false。 执行response.end()之后,该值会变为 true。
3、启动服务器
server.listen( 启动端口 , callback )
server.listen(8080, function () {
console.log('启动:http://127.0.0.1:8080');
})