본문 바로가기
Do it Node.js/EJS BackEnd

7. HTTP 모듈

by 갱생angel 2024. 2. 29.

HTTP 프로토콜 : 사용하는 언어가 다른 클라이언트와 서버 간 똑같이 인식할 수 있도록 약속한 규칙

  -요청(request) : 클라이언트에서 서버로 자료를 요청하는 것

    1) 헤더 : 사이트 주소

    2) 본문 : 사용하는 시스템 정보, 웹 브라우저 정보, 사용 언어 등 

  -응답(response) : 서버에서 클라이언트로 자료를 보내 응답하는 것

    1) 헤더 : 브라우저 창에 보여줄 내용(텍스트, 이미지 등)

    2) 본문 : 파일 형식, 인코딩 등 파일과 관련된 기타 정보

 

요청 URL : 클라이언트가 서버에게 어떤 정보를 보내달라고 요구하는 URL

  ex) https://www.google.com

요청 메서드 : 서버에 보낸 정보를 어떻게 처리할 것인지 알려줌

  -GET : 서버에서 정보를 가져옴

  -POST : 서버에 데이터를 저장

  -PUT : 서버에 있는 데이터를 수정

  -DELETE : 서버에 데이터를 삭제

상태 코드 : 클라이언트에서 보낸 요청이 성공했는 지 여부를 알려주는 세 자리 코드

  ex) 1xx, 2xx, 3xx, 4xx, 5xx

 

원격 주소 : IP 주소와 포트를 합친 주소 (ex) 172.217.161.228:443)

  -IP 주소 : 클라이언트와 서버의 컴퓨터를 구별하기 위해 개별적 주소 (ex) 1712.217.161.228)

  -포트 : 서버에 있는 프로그램 중 어떤 프로그램을 실행할 것인지 정함 (ex) 443)

  -소켓 : 클라이언트와 서버 간 테이터를 주고받는 통로


ch04 - <server.js> : 3000 포트에서 서버를 실행

createServer([옵션][, 콜백]) : 서버를 생성하는 함수

listen(포트[, 호스트][, 콜백]) : 서버를 실행하는 함수

const http = require("http"); //http 모듈을 가져옴

const server = http.createServer((req, res) => { //서버를 생성
  console.log("request from clinet");
});

server.listen(3000, () => { //3000 포트에서 서버를 실행
  console.log("3000 포트에서 서버 실행");
});
>> node server


ch04 - <server-2.js> : 본문에 "Hello Node"라 작성하고 localhost:3000 표시

req.method : 요청 메소드를 확인하는 함수

res.setHeader(이름, 값) : 응답 헤더를 생성하는 함수

  -Content-Type: text/plain : txt 형식

res.write(내용[, 인코딩][, 콜백]) : 응답 본문을 생성하는 함수

res.end(내용[, 인코딩][, 콜백]) : 응답을 종료하는 함수

const http = require("http");

const server = http.createServer((req, res) => {
  console.log(req.method); //요청 메서드 확인

  res.setHeader("Content-Type", "text/plan"); //응답 헤더
  res.write("Hello Node"); //응답 본문
  res.end(); //응답 종료
});

server.listen(3000, () => {
  console.log("3000 포트에서 서버 실행 중");
});
>> node server-2

 

res.writeHeader(상태 코드[, 상태 메시지][, 헤더]) : 응답 헤더를 생성할 때 상태 코드도 같이 기록하는 함수

  ex) res.writeHeader(200, {"Content-Type" : "text/plan"})


ch04 - <server-3.js> : 리더블 스트림을 이용해 index.html을 파이프로 연결해서 서빙

  -Content-Type: text/html : html, htm 형식

const fs = require("fs");
const http = require("http");

const server = http.createServer((req, res) => {
  res.setHeader("Content-Type", "text/html"); //"text/html" 사용
  const readStream = fs.createReadStream(__dirname + "/index.html", "utf8"); //리더블 스트림
  readStream.pipe(res);
});

server.listen(3000, () => {
  console.log("3000 포트에서 서버 실행 중");
});
>> node server-3

'Do it Node.js > EJS BackEnd' 카테고리의 다른 글

9. Node 비동기 처리  (0) 2024.03.01
8. 라우팅  (0) 2024.03.01
6. 버퍼, 스트림, 파이프  (0) 2024.02.28
5. fs 모듈  (0) 2024.02.27
4. path 모듈  (0) 2024.02.25