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 服务器正在超负荷运作或者正在维护