본문 바로가기
Language/Node.js

Request와 Response

by 노믹 2022. 12. 13.

Request, Response란?

  • Request클라이언트가 서버에게 전달하려는 정보나 메시지를 담는 객체를 의미합니다.
  • Response서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체입니다.

 

서버 모듈

  • Node.js의 서버 모듈에는 대표적으로 http 모듈과 Express 모듈이 존재합니다.
  • Express 모듈은 http 모듈을 확장하여 제공합니다.
  • Express 모듈은 기존 http 모듈의 메서드도 사용할 수 있지만, Express가 추가 제공하는 메서드나 속성들을 사용할 수 있습니다.
  • 최근에는 Express의 메서드가 더욱 편리하기에 기존 http 모듈의 메서드는 잘 사용되고 있지 않습니다.

Express 모듈의 req, res 객체

  • req.app : req 객체를 통해 app 객체에 접근할 수 있습니다.
  • req.ip: 요청한 Client의 ip 주소가 담겨 있습니다.
  • req.body: Request를 호출할 때 body로 전달된 정보가 담긴 객체입니다.
    • express.json() Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
  • req.params: 라우터 매개 변수에 대한 정보가 담긴 객체입니다.
  • req.query: Request를 호출할 때 쿼리 스트링으로 전달된 정보가 담긴 객체입니다.
  • req.cookies: Request를 호출할 때 Cookie 정보가 담긴 객체입니다.
    • cookie-parser Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
  • req.get(Header): 헤더에 저장된 값을 가져오고 싶을 때 사용합니다.

res 객체

  • res.app : res 객체를 통해 app 객체에 접근할 수 있습니다.
  • res.status(코드) : Response에 HTTP 상태 코드를 지정합니다.
  • res.send(데이터) : 데이터를 포함하여 Response를 전달합니다.
  • res.json(JSON) : JSON 형식으로 Response를 전달합니다.
  • res.end() : 데이터 없이 Response를 전달합니다.
  • res.direct(주소) : 리다이렉트할 주소와 함께 Response를 전달합니다.
  • res.cookie(Key, Value, Option) : 쿠키를 설정할 때 사용합니다.
  • res.clearCookie(Key, Value, Option) : 쿠키를 제거할 때 사용합니다.

Request body, params, query 더 자세하게

클라이언트에서 서버로 보내는 메시지를 요청(Reuqest), 서버에서 클라이언트에게 보내는 메시지를 응답(Response)이라고 부릅니다. body, params, query는 클라이언트가 서버에 요청(Request)을 보낼 때 데이터를 어떤 방식으로 전송하는지에 대한 여러가지 방법들을 나열한 것 입니다.

 

req.body (Body)

  • 클라이언트가 요청(Request)을 보냈을 때, Body에 데이터를 삽입하였을 때 사용됩니다.
  • Key-Value의 데이터 형식을 가지고 있으며, 대표적으로 JSON 형태를 띄고 있습니다.
  • Body는 Query String, Path Variable(params)과 다르게, URL만을 가지고 어떤 데이터를 전달하였는지 확인할 수 없는 특징을 가지고 있습니다.
  • 데이터를 생성하거나 수정이 필요한 데이터의 전달을 위해 사용됩니다.
    ex) 사용자의 ID, 사용자의 Password, 게시글 제목 등
  • POST, PUT과 같은 Http Method에서 사용됩니다.

req.query (Query String)

  • 클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 Key-Value를 삽입하여 데이터를 전달합니다.
  • URL의 마지막에 ?기호를 이용해 Query String을 사용할 수 있습니다.
    ex) https://sparta.com?name=김정민&age=29
  • 특정 콘텐츠의 위치를 표시하거나 웹 페이지에 특정한 옵션을 설정할 때 사용합니다.
    ex) 게시글의 정렬, 특정 날짜의 게시글만 출력하는 옵션 설정 등
  • GET과 같은 Http Method에서 사용됩니다.

req.params (Path Variable)

  • 클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 데이터를 삽입하여 전달합니다.
  • URL 특정 경로를 매개 변수로써 사용합니다.
  • 특정 게시글을 선택하거나 명확한 리소스를 지정해야할 때 사용합니다.
    ex) 게시글의 상세 정보 조회, 사용자의 상세 정보 조회

'Language > Node.js' 카테고리의 다른 글

JWT란?  (0) 2022.12.19
쿠키와 세션  (0) 2022.12.19
Module의 이해  (0) 2022.12.13
Routin 이해 및 Router 학습  (0) 2022.12.12
API Client  (1) 2022.12.12