Web服务器创建以及Http协议

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-13 00:11:45

1.创建Web服务器

// 引入系统模块http
const http = require('http');
// 创建服务器
const server = http.createServer();
// 当服务器接收到客户端的请求时触发
server.on('request', (req, res) => {
	// 做出响应
	res.end('welcome to web');
}
//监听端口 node中常用3000端口进行测试
server.listen(3000);

2.Http协议

2.1.报文

2.1.1.请求报文

server.on(‘request’,(req,res) =>{});中的req参数就包含了请求报文的信息

req.hearders			// 获取请求报文
req.method				// 获取请求方法 (GET/POST)
req.url					// 获取请求地址
/***************相关使用代码***********/
// 获取请求报文信息
    // req.headers
console.log(req.headers);

// 获取请求方式 req.method
    // console.log(req.method);
    if (req.method == 'POST') {
        res.end('POST')
    } else if (req.method == 'GET') {
        res.end('GET');
    }

// 获取请求地址 req.url
    // console.log(req.url);
    if (pathname == '/index' || pathname == '/') {
        res.end('欢迎来到首页');
    } else if (pathname == '/haha') {
        res.end('This is haha page')
    } else {
        res.end('Not found')
    }

2.1.2.响应报文

通过res.writeHead(num,obj)设置响应报文,其中第一个参数是HTTP状态码,第二个参数是内容的类型(对象)

1.HTTP状态码(num)

  • 200 请求成功
  • 404 请求的资源没有被找到
  • 500 服务器端错误
  • 400 客户端请求有语法错误

2.内容类型(obj)

  • text/html
  • text/css
  • application/javascript
  • image/jpeg
  • application/json
/***************代码示例*************/
// 响应报文
    res.writeHead(200, {
        'content-type': 'text/html;charset=utf-8'  //设置charset=utf-8 下来中文能够正常显示反之则乱码
    });
    res.end('欢迎来到WEB');
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!