2023. 12. 21. 12:07ㆍBE/NodeJS
들어가기
NodeJS에서 라우팅을 get 방법으로 받을 수도 있고, post 방법으로 받을 수도 있다. 이것에 대해 알아보자
우선 아래와 같이 3000번 포트, '/form'라우팅을 이용하여 아이디와 비밀번호를 입력하여 제출하는 웹페이지가 있다고 가정하자.
'/form' 웹페이지에서 제출 버튼을 누르면 '/form_receiver' 웹페이지로 라우팅된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="/form_receiver" method="POST">
<p>ID를 입력하세요.</p>
<p>
<input type="text" name="id">
</p>
<p>PASSWARD를 입력하세요.</p>
<p>
<textarea name="passwd"></textarea>
</p>
<p>
<input type="submit">
</p>
</form>
</body>
</html>
Get
get을 이용하여 라우팅 하는 경우의 코드는 아래와 같다.
app.get('/form_receiver', function(req, res){
var id = req.query.id;
var passwd = req.query.passwd;
res.send(id + ',' + passwd);
})
'/form' 페이지에서 제출한 결과는 아래와 같다.
위의 그림과 같이 쿼리스트링(https://gitdeep.tistory.com/73)으로 입력한 아이디와 패스워드가 노출되는 것을 볼 수 있다.
POST
post를 이용하여 라우팅 하는 경우의 코드는 아래와 같다.
app.post('/form_receiver', function(req, res){
var id = req.body.id;
var passwd = req.body.passwd;
res.send(id + ',' + passwd);
})
'/form' 페이지에서 제출한 결과는 아래와 같다.
위의 그림과 같이 쿼리스트링(https://gitdeep.tistory.com/73)으로 입력한 아이디와 패스워드가 노출되지 않는 것을 볼 수 있다.
정리
post를 이용하여 라우팅을 하였을 때, get과 비교하여, 보안성이 높다는 장점(e.g. post로 라우팅하는 경로로 바로 접속할 수 없다.)이 있다. 하지만, get는 NodeJS에서 기본적으로 지원하는 반면, post는 미들웨어를 통해 통신할 수 있다는 불편한 점이 존재한다.
예를들어서 express같은 경우 아래와 같은 코드를 작성하여야 post로 통신할 수 있다. (참고: https://expressjs.com/en/4x/api.html#req.body)
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.post('/form_receiver', function(req, res){
var id = req.body.id;
var passwd = req.body.passwd;
res.send(id + ',' + passwd);
})
[참고]
'BE > NodeJS' 카테고리의 다른 글
[NodeJS] 동기와 비동기 작업 (0) | 2023.12.20 |
---|