nodejs HTTP模块

本文详细介绍了Node.js的HTTP模块,包括如何创建和关闭HTTP服务器,监听各种事件,如connection和timeout。还讲解了request和response对象的使用,如设置和获取响应头,以及处理form表单提交的数据。此外,文章还涵盖了HTTP方法、状态码以及querystring模块的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

const http = require('http');

----创建HTTP服务器 监听端口

let server = http.createServer(requestListener);

requestListener(req, res) req请求对象 res相应对象

例如:http.createServer((function(req, res){ console.log(req); });

server.listen(port, [host], [backlog],[callback]) 或者 server.on('listening', callback);

启动监听

port 监听的端口 host监听的地址 backlog指定位于等待队列中的客户端连接数

callback回调函数

例如:http.createServer((req,res)=>{}).listen(3001, '127.0.0.1', ()=>{ console.log('3001 端口 服务启动'); })

----关闭HTTP服务器

server.close() 或者 server.on('close', callback);

----监听服务器错误

server.on('error', () => {});

----connection连接

server.on('connection',  ()=>{});

----setTimeout 超时

server.on('timeout', () => {})  或者 server.setTimeout(msecs, callback)

客户端请求信息

request对象

{

        method 请求的方法

        url 请求的路径

        headers 请求头对象

        httpVersion 客户端的http版本

        socket 监听客户端请求的socket对象

}

----querystring模块

用来转换URL字符串和URL中的查询字符串

--querystring.parse(str,seq,eq,options)

str 要解析的URL查询字符串

seq 用于在查询字符串中分隔键值对的子字符串 默认'&'

eq 用于在查询字符串中分隔键和值的子字符串 默认'='

例如:querystring.parse('http://127.0.0.1:3001/user?name=test&age=12', '&', '=');

--querystring.stringify(obj, [seq], [eq])

将对象转换成字符串

服务器响应

response 服务器响应对象

response.writeHead()

--response.setHeader() 设置响应头部信息 

response.getHeader() 获取响应头

response.removeHeader() 删除响应头

设置响应头信息 {

        content-type 内容类型

        location 将客户段重定向到另外一个URL地址

        content-disposition 指定一个被下载的文件名

        content-length 服务器响应内容的字节数

        set-cookie 在客户端创建cookie

        content-encoding 指定服务器响应内容的编码方式

        cache-cache 开启缓存机制

        expires 用于指定缓存机制

        etag 指定当服务器响应内容没有变化不重新下载数据

}

例如:response.setHeader('content-type', 'text/html;charset=utf-8')

response.getHeader('content-type');

response.removeHeader('content-type');

--response.write()

发送响应内容

例如:response.write('ok');

--response.end()

发送响应内容 并结束

在该方法调用后就不能再用response.write()发送内容了

form表单提交数据

--form表单属性

accept MIME_TYPE

action 请求URL

enctype 规定在发送到服务器之前应该如何对表单数据进行编码

method 请求方式

name 表单名称

--enctype类型

application/x-www-form-urlencoded在发送前编码所有字符(默认)key=value&key=value
multipart/form-data不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain空格转换为 "+" 加号,但不对特殊字符编码。keyvalue

--常用MIME对应content-type

HTTP方法

GET 用来请求访问已被URI识别的资源,获取指定地址资源的方法

POST 用来传输实体的主体 设计就是为了提交数据内容主体给服务端

PUT 主要用来传输文件 没有验证机制 有安全隐患

DELETE 用来删除服务器上的文件资源

HEAD 主要用来确认URI的时效性和有效性 不会返回报文的主体内容(通常用来获取服务器时间)

OPTIONS 用来针对请求URI指定资源的方法(浏览器预验请求)

状态码

1xx 接收的请求正在处理 信息性状态码

2xx 请求正常处理完成 成功状态码

        200 成功 OK

        204 No Content 响应报文中没有主体内容

3xx 需要进行附加操作才能完成的请求 重定向

        301 永久性重定向

        302 临时重定向

        303 同一资源有多个地址

        304 强制缓存 请求带有附加条件的时候,如果服务端容许访问请求资源,但是资源没有满足请求条件,所以304重定向直接使用客户端缓存资源

4xx 服务端无法处理请求 客户端错误状态码

        400 错误请求 有语法错误

        401 需要认证后才能访问

        403 服务器拒绝访问

        404 请求的资源不存在

5xx 服务器处理请求出错

        500 服务器运行错误 bug 宕机

        503 服务器正在超负荷运作或者正在维护

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值