요청과 응답 이해하기

올챙이·2024년 8월 23일

Node.js

목록 보기
8/23
post-thumbnail

클라이언트와 서버의 관계

클라이언트에서 서버로 요청(request)을 보내고, 서버에서는 요청의 내용을 읽고 처리한 뒤 클라이언트에 응답(response)을 보냅니다.

클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 미리 등록해둬야 합니다.

서버 만들기

기본 틀

1
2
3
4
5
const http = require("http");
 
http.createServer((req, res) => {
    //응답 내용
});
cs

http 모듈에는 createServer 메서드가 있습니다.
createServer의 콜백 부분을 보면 req(request, 요청 정보), res(response, 응답 정보)라는 매개변수가 있습니다.

응답 내용과 서버 연결

1
2
3
4
5
6
7
8
9
const http = require("http");
 
http.createServer((req, res) => {
    res.writeHead(200, { "Content-Type""text/html; charset=utf-8" });
    res.write("<h1>Hello Node!</h1>");
    res.end("<p>Hello Server!</p>");
}).listen(8080, () => {
    console.log("8080번 포트에서 서버 대기 중입니다!");
});
cs

  • 응답 헤더 설정

    1
    res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
    cs

    • 응답 헤더를 설정하는 메서드입니다.

    • 200 : HTTP 상태 코드로, "200"은 요청이 성공적으로 처리되었음을 나타냅니다.

    • Content-Type : 응답의 내용 유형을 정의합니다.

    • text/html : 응답이 HTML 형식임을 나타냅니다.

    • charset=utf-8 : 응답의 문자 인코딩이 UTF-8임을 나타냅니다.

  • 응답 내용 설정

    1
    res.write("<h1>Hello Node!</h1>");
    cs

    • 클라이언트에게 응답 할 내용입니다.

    • "Hello Node!"가 응답됩니다.

  • 응답 종료 설정

    1
    res.end("<p>Hello Server!</p>");
    cs

    • 종료하기 전에 응답에 추가로 작성할 내용을 지정할 수 있습니다.

    • "Hello Server!"가 응답됩니다.

  • 서버 연결

    1
    2
    3
    .listen(8080, () => {
        console.log("8080번 포트에서 서버 대기 중입니다!");
    });
    cs

    • 서버를 시작하는 코드입니다.

    • 8080 포트에서 클라이언트의 요청을 대기하도록 설정합니다.

HTTP 상태코드

상태코드를 다 백엔드에서 지정해주는건지 몰랐습니다. 프로젝트하면서 백엔드에서 없는 상태코드의 오류가 발생하면 알려달라고 했던 말이 이제 이해가 갔습니다.

  • 2XX

    성공을 알리는 상태 코드입니다.

  • 3XX

    리다이렉션을 알리는 상태 코드입니다.

  • 4XX

    요청 오류를 나타냅니다.

  • 5XX

    서버 오류를 나타냅니다.

0개의 댓글