Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

青灯夜游
풀어 주다: 2021-06-11 10:32:23
앞으로
2228명이 탐색했습니다.

이 글은 모든 사람이 Node.js를 사용하여 간단한 HTTP 서버를 구축하여 컴퓨터 리소스를 조작할 수 있도록 작성되었습니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

HTTP 서비스란?

HTTP 프로토콜이란 무엇인가요?

  • 하이퍼텍스트 전송 프로토콜, 애플리케이션 계층 프로토콜, 컴퓨터 세계의 두 지점 간에 텍스트, 그림, 오디오, 비디오 및 기타 하이퍼텍스트 데이터를 전송하기 위한 규칙 및 사양입니다.

[권장 학습: "nodejs tutorial"]

2개의 HTTP 패킷 교환을 포함하는 웹 페이지 요청:

    브라우저가 HTTP 서버에 요청 HTTP 패킷을 보냅니다
  • HTTP 서버가 반환됩니다. 브라우저에 HTTP 패키지
HTTP 서비스는 무엇을 합니까?

  • 들어오는 HTTP 요청 메시지를 구문 분석
  • 해당 HTTP 반환 메시지를 반환
  • 간단한 HTTP 서버 구현

새로운 http.js 파일을 만들고, 다음 코드를 작성하세요:
// http 是 Node 自带的包,在这里加载引入
const http = require('http')

// 通过 http.createServer 创建一个 Web 静态服务器
http.createServer(function (request, response) {
  // 监听到请求之后所做的操作
  // request 对象包含:用户请求报文的所有内容
  // 我们可以通过request对象,获取用户提交过来的数据

  // response 响应对象,用来响应一些数据
  // 当服务器想要向客户端响应数据的时候,就必须使用response对象
  response.writeHead(200);
  response.end('hello world');
}).listen(4000, function () {
  // 通过 listen 监听端口,开启服务
  console.log("服务器已经启动,可通过以下地址:http://localhost:4000");
})
로그인 후 복사

터미널 실행 명령: node http.js

http.js 文件,写入以下代码:

// 加载模块
const http = require('http')
const fs = require('fs');

// 创建服务
http.createServer(function (request, response) {
  console.log(request.url);
  response.writeHead(200);
  response.end();
}).listen(3000)
로그인 후 복사

终端运行命令:node http.js

Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

可以看到,服务已经启动,在 Chrome 打开 http://localhost:4000

Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

页面上已经把 response.end() 的内容显示出来,这样一个简单的 HTTP 服务器就实现了。

fs 模块加载静态资源

新建一个 index.js 文件:

// 加载模块
const http = require('http')
const fs = require('fs');

// 创建服务
http.createServer(function (request, response) {
  // console.log(request.url);
  // 如果是图标请求则直接返回 200
  if (request.url == '/favicon.ico') {
    response.writeHead(200);
    response.end()
    return
  }

  response.writeHead(200);
  // fs 是文件模块,通过 createReadStream 可以读取本地文件,这里读取的是目录下的 index.html 文件
  // 通过 pipe 写入响应对象
  fs.createReadStream(__dirname + '/index.html').pipe(response)
}).listen(3000)
로그인 후 복사

终端运行:node index.js,浏览器打开 localhost:3000

Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

这里发送了两个请求,一个是当前url http://localhost:3000/的请求;另一个是右上角图标 http://localhost:3000/favicon.ico 的请求:

Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

那这里对 /favicon.ico 的请求做一些处理,直接返回 200 状态码即可;然后通过 fs 模块去处理 静态资源

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>实现一个简单的HTTP服务器</title>
</head>
<body>
  <div>hello HTTP服务</div>
</body>
</html>
로그인 후 복사

index.html 文件内容如下:

rrreee

终端运行:node index.js 启动服务:

Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

可以看到,这个 HTTP 服务器已经把计算机的静态资源 index.html 给到浏览器了。

这样一个简单的读取计算机静态资源的 HTTP 服务器就实现了!

在这个 HTTP 服务器中使用了 Node.js 内置的两个模块 httpfsNode.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

서비스가 시작된 것을 확인할 수 있습니다. Chrome의 http: //localhost:4000

Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명

response.end()의 내용이 페이지에 표시되어 이렇게 간단한 HTTP 서버가 구현되었습니다.

fs 모듈은 정적 리소스를 로드합니다

index.js 파일 만들기: 🎜rrreee🎜터미널 실행: node index.js, 브라우저를 엽니다 localhost:3000🎜🎜Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명🎜🎜두 개의 요청이 여기로 전송됩니다. 하나는 현재 URL http://localhost:3000/입니다. 요청; 다른 하나는 오른쪽 상단에 있는 아이콘 http://localhost:3000/favicon.ico에 대한 요청입니다. 🎜🎜Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명🎜🎜그런 다음 /favicon.ico의 요청에 대해 일부 처리를 수행합니다. code>를 직접 반환하고 <code>200 상태 코드로 충분합니다. 그런 다음 fs 모듈을 사용하여 정적 리소스를 처리합니다. 🎜rrreee🎜 index.html 파일 내용은 다음과 같습니다. 🎜rrreee🎜터미널 작업: node index.js 서비스 시작: 🎜🎜Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명🎜🎜이 HTTP 서버가 컴퓨터의 정적 리소스 인덱스를 제공한 것을 볼 수 있습니다. .html을 브라우저에 . 🎜🎜컴퓨터의 정적 리소스를 읽는 간단한 HTTP 서버가 구현되었습니다! 🎜🎜이 HTTP 서버는 Node.js의 두 가지 내장 모듈인 httpfs를 사용합니다. Node.js에는 강력한 기능을 달성하는 데 도움이 되는 다른 많은 모듈이 있습니다. . 모듈이며 Node.js 생태계를 더욱 강력하게 만드는 것은 바로 이러한 모듈입니다. 🎜🎜🎜코드는 다음과 같습니다. 🎜🎜https://github.com/V-vincent/node-introduction🎜🎜🎜더 많은 프로그래밍 관련 지식을 보려면 🎜프로그래밍 비디오🎜를 방문하세요! ! 🎜

위 내용은 Node.js를 사용하여 간단한 HTTP 서버를 구축하는 방법에 대한 간략한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:juejin.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!