이 기사에서는 Node.js http 모듈을 소개하고 http 모듈을 사용하여 서버를 만드는 방법을 소개합니다. 도움이 되길 바랍니다!
1. http
Baidu Encyclopedia에 대한 설명:
Hyper Text Transfer Protocol(HTTP)은 일반적으로 TCP Above에서 실행되는 간단한 요청-응답 프로토콜입니다. 클라이언트가 서버에 보낼 수 있는 메시지 종류와 서버가 받는 응답 종류를 지정합니다. 요청 및 응답 메시지의 헤더는 ASCII 형식으로 제공되는 반면 [9] 메시지 내용은 MIME과 유사한 형식을 갖습니다. 이 간단한 모델은 개발과 배포를 매우 간단하게 만들어 주었기 때문에 Web의 초기 성공을 책임졌습니다.
JavaSE의 기본을 배웠다면 네트워크 프로그래밍에 매우 익숙할 것입니다.
물론, 그렇지 않아도 괜찮습니다. 성실한 저자의 말을 듣고 말씀드리겠습니다:
1.1, 네트워크 통신 프로토콜
2022년 오늘날, 컴퓨터 네트워크는 이메일, 친구와의 인스턴트 메시징, 짧은 비디오 엔터테인먼트 등 사람들의 일상 생활에 필수품이 되었습니다... 여러 대의 컴퓨터를 통해 이를 달성할 수 있다고 말할 수 있습니다. .. 연결하다.
컴퓨터 네트워크는 전송 매체, 통신 시설 및 네트워크 통신 프로토콜을 통해 네트워크 아래의 여러 컴퓨터 장치를 연결하여 리소스 공유 및 데이터 전송을 실현합니다.
그러나 동일한 네트워크에 있는 컴퓨터는 연결하고 통신할 때 특정 규칙을 준수해야 합니다. 컴퓨터 네트워크에서는 이러한 연결 및 통신 규칙을 네트워크 통신 프로토콜이라고 합니다.
여기서 이야기하는 http 프로토콜입니다. tcp 기반으로 구현됩니다. 일반적인 http 애플리케이션 시나리오는 브라우저에 주소 문자열을 입력한 다음 웹 페이지를 반환하는 것입니다.
1.2, IP 주소 및 포트 번호
네트워크의 컴퓨터가 통신하려면 각 컴퓨터에도 식별 번호가 할당되어야 합니다. 이 식별 번호를 사용하여 데이터를 수신하는 컴퓨터를 지정하거나 지정합니다. 발신자.
LAN에서 컴퓨터의 IP 주소를 확인하세요Windows 컴퓨터에서 WIN+R을 누르고 cmd를 입력하면 빠르게 콘솔에 들어갈 수 있습니다
ipconfig
IP 주소를 통해 지정된 컴퓨터에 연결할 수 있지만, 대상 컴퓨터에 액세스하려는 경우 애플리케이션 중 하나에 대해 포트 번호도 지정해야 합니다.
예를 들어 MySQL의 3306, TomCat의 8080
2. http 모듈을 사용하여 서버를 만듭니다
Node.js http 모듈은 주로 HTTP 서버를 구축하는 데 사용됩니다. 클라이언트는 HTTP 서버를 사용하거나 클라이언트 기능을 사용하여 http 모듈을 호출해야 합니다. [관련 튜토리얼 추천 : nodejs 영상 튜토리얼, 프로그래밍 교육]
2.1, Thick Accumulation (자세한 소개, 사용된 객체 메소드에 대한 자세한 소개, 전체 http 서비스 구축 프로세스)
프로세스 소개:
먼저 createServer() 메서드를 사용하여 서버 개체를 등록하고,
이 서버 개체를 사용하여 on() 메서드를 호출하여 이벤트를 수신하고 처리합니다.
listen() 메서드를 호출하여 포트 번호 바인딩
맛보기부터 시작하겠습니다.
모든 네트워크 서비스 애플리케이션은 항상 서비스 개체를 먼저 생성합니다. nodeJS에서는 createServer 메소드를 사용하여 이를 달성할 수 있습니다.
// 首先导入http模块 const http = require('http'); // 创建http服务对象 const server = http.createServer();
createServer 생성자가 반환하는 서버 객체는 이벤트 발생기입니다. 여기서 생성된 서버 객체는 자체 on() 메소드를 사용하여 이벤트를 발생시키는 데 사용됩니다. 이런 방식으로 http 요청이 전송될 때마다 우리는 이를 처리할 수 있습니다.
// 首先导入http模块 const http = require('http'); // 创建http服务对象 const server = http.createServer(); // 绑定事件监听 server.on('request', (request, response) => { // 永远相信美好的事情即将发生! });
앞서 소개한 (IP 주소 + 포트) 컴퓨터가 인터넷에 연결되면 라우터는 DHCP를 통해 자동으로 IP 주소를 할당하지만 컴퓨터에서 지정된 프로그램에 액세스하려면 다음을 수행해야 합니다. 포트 번호도 있습니다.
컴퓨터에서 지정된 프로그램에 액세스하려면 listening() 메서드도 사용해야 합니다. server.listen()을 사용하여 포트 번호를 수신 포트인 수신 메소드에 매개변수로 전달하기만 하면 됩니다.
// 首先导入http模块 const http = require('http'); // 创建http服务对象 const server = http.createServer(); // 绑定事件监听 server.on('request', (req, res) => { // 此函数内容只是小小调用一下res参数让程序更加易懂的跑起来 // 编写响应头(不写浏览器不识别) res.writeHead(200,{'Content-Type':'text/html;charset=UTF8'}); // 发送响应数据 res.end("<h1 id="欢迎使用node-js搭建服务">欢迎使用node.js搭建服务</h1>"); }); // 绑定端口号 server.listen(8888); // 控制台打印地址,方便快速调试 console.log('您的http服务启动在 http://127.0.0.1:8888/');
代码运行演示:
上述代码演示十分细节,但是实际开发起来,不建议这样一步步写,过于繁琐了
接下来跟着作者,让我们继续优化一下代码,让代码更加牛逼且简洁
2.2、薄发(极简才是王道,优雅!太优雅了!!!)
一步一步注册对象,调各种方法的流程太过繁琐,这里我们用小而美的做法,一步踏天,实现一个http接口:
const http = require('http'); const server = http.createServer(function(req,res){ // 永远相信美好的事情即将发生 }).listen(8080);
每当有 HTTP 请求到达服务器时,createServer 中传入的函数就被自动执行。所以这个函数也被称为是请求处理函数。我们可以直接在里面传入事件监听的回调函数,然后后面点上listen()方法,直接绑定端口号。
但是这样还不够好,是的,还可以更好,把上面回调函数用箭头函数修饰一下,更加美观。
const http = require('http'); const server = http.createServer((req,res) => { // 永远相信美好的事情即将发生 }).listen(8080);
当然
这
还不够好
还可以更好!
直接一个createServer()解决一切:
var http = require('http') // 创建服务器 http.createServer( (req, res) =>{ // 永远相信美好的事情即将发送 }).listen(8888);
看到这里,恭喜你已经入门了nodeJS的http模块 此时此刻的你 已经掌握了如下技能
- 实例化一个 HTTP 服务,绑定一个处理请求的函数,并对某个特定端口进行监听。
请继续关注作者,接下来 我们将学习
- request 中获取请求头,访问路径,方法以及消息体。
- response 象发送响应头,HTTP 状态码以及消息体。
- server.on()的相关参数 进行错误、超时、连接·····等等情况的处理
更多node相关知识,请访问:nodejs 教程!
위 내용은 이 기사에서는 Node.js의 http 모듈을 이해하는 데 도움이 됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
