앞선 아티클에서 구현한 RESTful 서버의 동작에서 확인 가능한 req, res에서 헤더와 바디의 개념을 다시 한번 짚고 넘어가도록 하겠습니다. 아마 헤더와 바디에 대해서 관념적으로는 들은 것이 많겠지만, 좀 더 정확한 정보를 알아보도록 하겠습니다.
- 기본적으로 req와 res는 모두 헤더와 바디를 갖습니다.
- 헤더는 req or res에 대한 정보를 갖고 있습니다.
- 바디는 서버와 클라이언트 간에 주고받을 실제 데이터를 저장합니다.
HTTP 요청 또는 응답은 아래와 같은 형태로 도식화 할 수 있겠네요.
[HTTP req 또는 res]
HTTP 헤더 (1) 일반(공통)헤더 (2) 요청/응답의 헤더 (3) 엔티티 헤더 |
HTTP 본문 <!DOCTYPE html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>RESTful SERVER</title> <link rel="stylesheet" href="./restFront.css"> </head> <body> .... </body> </html> |
우리가 앞선 아티클에서 실습한 restServer.js를 실행해 http://localhost:8082/ 로 실행한 화면을 다시 살펴볼까요? 신규 사용자를 등록하고 개발자 도구 Network 탭에서 요청과 응답을 살펴보겠습니다. 이 중 POST /user 메서드를 중심으로 살펴보겠습니다.
신규 사용자 등록을 위한 POST /user를 보겠습니다. 여기서 'General'이 바로 일반(공통된) 헤더를 의미합니다. 여기에 Response Headers, Request Headers - 즉 응답의 헤더, 요청의 헤더가 각각 존재하는 것을 볼 수 있습니다.
이제 이 상태에서 Headers 탭 우측의 Payload 탭을 클릭해 볼까요? 여기서는 req의 바디가 표시됩니다.
반대로 Preview 또는 Response 탭에서는 res의 바디가 표시됩니다(Preview에서는 JSON을 깔끔하게 확인 가능)
GET /users의 Response를 확인해 보겠습니다. res.end로 보내는 문자열이 표시됩니다.
*참고로 여기서 저장된 유저 정보의 경우 메모리에 저장되는 것으로 처리 되어서 서버 종료와 함께 사라집니다. 이러한 정보를 영구적으로 저장하기 위해서 DB를 사용하게 되는 것이죠.
'Programming > Node.js' 카테고리의 다른 글
5. http 모듈로 서버 만들기 (3) - 쿠키와 세션의 이해 [2] (0) | 2024.07.22 |
---|---|
5. http 모듈로 서버 만들기 (3) - 쿠키와 세션의 이해 [1] (0) | 2024.07.19 |
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [8] (0) | 2024.07.15 |
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [7] (0) | 2024.07.09 |
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [6] (0) | 2024.07.08 |