웹 서버란 데이터 읽기 및 처리를 통해 인터넷상의 요청에 대한 응답을 위해 설계된 소프트웨어이다.
서버와 클라이언트가 통신하는 방법 중 하나는 HTTP요청을 사용하는 것이다. 만들어진 요청이 어떤 요청인지,
예를 들어 사용자가 새로운 웹 페이지를 읽어 들이는지, 또는 지금 보고 있는 페이지의 업데이트인지 나타낸다.
HTTP 요청 메소드는 크게 두 가지가 있으며 다음과 같다.
➢ GET : 클라이언트가 서버로부터 정보를 요청.
보통 서버는 브라우저에서 볼 수 있는 컨텐츠로 응답.
➢ POST : 클라이언트가 서버로 데이터를 전송.
서버는 데이터처리 후 HTML 페이지로 응답 및 다른 페이지로 이동
Node.js를 이용하여 웹 서버를 만드는 방법과 GET과 POST를 처리하는 방법을 알고있다고 가정.
이 포스팅에서는 사용자의 요청 데이터를 추출하는 방법을 소개한다.
send me email if you have any questions.
사용자의 요청데이터
사용자의 요청데이터를 추출하는 방법은 2가지가 존재한다.
- HTTP POST 요청의 본문(body)를 통해
- HTTP POST/GET 요청의 쿼리스트링을 통해
쿼리스트링(queryString)이란?
URL경로의 끝 부분에 물음표를 붙이고 이 뒤에 키-값형태로 이루어진 스트링
Ex) http:/localhost/index?name=gildong&id=gil&password=1234
사용자의 요청데이터 분석
1. 디렉터리 생성
$ mkdir client_request_receive
2. 생성 디렉터리로 이동 후 npm init진행
$ cd client_request_receive
$ npm init
3. 클라이언트의 요청 데이터를 처리하기 위한 여러 모듈 및 패키지 인스톨
$ npm install express body-parser –save
4. main.js 소스코드 작성
"use strict";
const port = 3000;
const express = require("express");
const app = express();
// 요청해독을 초기화 (default : utf-8)
app.use(express.urlencoded({extended: false}));
// 요청 해독을 json으로 진행
app.use(express.json());
// 요청 데이터를 분석하는 미들웨어
// 미들웨어란 애플리케이션 로직과의 데이터 교환 전에 대기, 분석, 필터링 및 HTTP통신을 다루는 코드를 일컫는 일반적인 용어
app.use(function(req, res, next){
console.log(req.body);
console.log(req.query);
next();
});
// POST 라우트
app.post("/", function(req, res){
console.log("\npost");
res.send("HTTP POST Successful");
});
// GET 라우트
app.get("/", function(req, res){
console.log("\nget");
res.send("HTTP GET Successful");
});
// 서버실행
app.listen(port, function(){
console.log("Server port : ",port);
});
실행 결과
POST(Linux에서 제공하는 curl명령 사용)
GET(쿼리스트링을 통해서만 요청데이터 전송가능)