인생자취

TIL | HTTP 트랜잭션 해부 본문

개발/Dev | 웹개발

TIL | HTTP 트랜잭션 해부

hnhnhun 2022. 7. 19. 19:21

HTTP 트랜잭션 해부

 

HTTP 트랜잭션 해부 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

HTTP 트랜잭션 | Node.js의 HTTP 처리 과정

// @ts-check

// 프레임워크 없이 간단한 토이프로젝트 웹 서버 만들기

/**
 * 블로그 포스팅 서비스
 * - 로컬 파일을 데이터베이스로 활용할 예정(JSON)
 * - 인증 로직은 넣지 않음.
 * - RESTful API를 사용함.
 */

//서버 생성, node 웹 서버 애플리케이션은 웹 서버 객체를 만들어야 한다.

const http = require('http')

const server = http.createServer((req, res) => { //웹 서버 객체생성
    res.statusCode = 200                    //작업이 진행되는 scope
    res.end('Hello!')
})

const PORT = 4000

server.listen(PORT, () => {
    console.log(`The server is listening at port:  ${PORT}`) //서버를 활성화하고, 4000번 포트로 받음.
})
  • HTTP 요청이 서버에 오면 node가 트랜잭션을 다루려고 request와 response 객체를 전달하며 요청 핸들러 함수를 호출함.
  • 요청을 실제로 처리하려면 listen 메서드가 server 객체에서 호출되어야 한다.
  • 대부분은 서버가 사용하고자 하는 포트 번호를 listen에 전달하기만 하면 됨.
  • request 객체가 readableStream이므로 EventEmitter이기도 하고, 오류가 발생하면 EventEmitter처럼 동작함.
  • request 객체는 ReadableStream, response 객체는 WritableStream
  • pipe를 사용하여 데이터를 한 스트림에서 다른 스트림으로 직접 연결할 수 있음.
Comments