[Node.js] GET과 POST의 차이는 무엇일까?

2021. 12. 8. 00:48·💻 Study/웹
728x90

웹 서버에 요청을 보내는 방식은 여러 가지가 있다. 인터넷 표준으로 정해 둔 이러한 요청 방식을 메소드(Method)라고 부른다.

 

메소드의 대표적인 예로는 GET과 POST방식이 있다.

HTTP 클라이언트는 GET과 POST 둘다 다른 웹 서버에 데이터를 요청할 수 있다.

 

그럼 GET 방식과 POST 방식의 차이점은 무엇일까?

HTTP 요청 포맷은 크게 헤더(Header)와 본문(Body) 부분으로 이루어져 있다.

 

GET 방식은 헤더 부분에 요청 정보들을 넣어 보낸다. http 객체의 get() 메소드를 사용하면 다른 사이트에 요청을 보내고 응답을 받아 처리할 수 있다. get() 메소드의 첫번째 파라미터는 다른 사이트의 정보를 담고 있는 객체이다. 두번째 파라미터는 callback 함수이다. 응답 데이터를 받을 때는 data와 end 이벤트로 처리한다.

var http = require('http');

var options = {
	host: 'www.google.com',
    port: 80,
    path: '/'
};

var req = http.get(options, function(res) {
	// 응답 처리
    var resData = '';
    res.on('data', function(chunk) {
    	resData += chunk;
    });
    
    res.on('end', function() {
    	console.log(resData);
    });
});

req.on('error', function(err) {
	console.log("오류 발생 : " + err.message);
});

 

반면, POST 방식은 본문 부분에 요청 정보를 넣어 보낸다. request() 메소드는 요청을 보내려면 요청 헤더와 본문을 모두 직접 설정해야 한다.

var http = require('http');

var options = {
	host: 'www.google.com',
    port: 80,
    path: '/',
    headers: {}
};

resData = '';
var req = http.request(options, function(res) {
	// 응답 처리
    var resData = '';
    res.on('data', function(chunk) {
    	resData += chunk;
    });
    
    res.on('end', function() {
    	console.log(resData);
    });
});

opts.headers['Content-Type'] = 'application/x-www-form-urlencoded';
req.data = "q=actor";
opts.headers['Content-Length'] = req.data.length;

req.on('error', function(err) {
	console.log("오류 발생 : " + err.message);
});

// 요청 전송
req.write(req.data);
req.end();

 

이 두 가지 방식은 기능상으로 요청 정보를 보낸다는 점에서 동일하지만 보안 등의 이슈가 있을 때나 파일을 요청 정보로 넣어 보내야 하는 경우(파일 업로드)에는 POST 방식을 주로 사용한다.

728x90
저작자표시 (새창열림)

'💻 Study > 웹' 카테고리의 다른 글

[netlify] Page Not Found Error (React Router)  (1) 2022.01.03
[Netlify] Treating warnings as errors because process.env.CI = true.  (0) 2022.01.03
[Javascript] '==' 와 '===' 뭐가 다를까?  (0) 2021.02.24
#2-2 USEEFFECT  (0) 2021.01.12
#2-1 USEEFFECT  (0) 2021.01.12
'💻 Study/웹' 카테고리의 다른 글
  • [netlify] Page Not Found Error (React Router)
  • [Netlify] Treating warnings as errors because process.env.CI = true.
  • [Javascript] '==' 와 '===' 뭐가 다를까?
  • #2-2 USEEFFECT
soyang.
soyang.
코딩 및 개발 일지를 기록합니다.
  • soyang.
    소소한 코딩일지
    soyang.
  • 전체
    오늘
    어제
  • 링크

    • Github 🐾
    • 포트폴리오 📓 (리뉴얼중)
    • LinkedIn 👩🏻‍💼
  • 공지사항

    • 소소한 코딩일지
  • 블로그 메뉴

    • 방명록
    • 분류 전체보기 (181)
      • 🚩 목표 & 회고 (9)
      • 📓 Papers (10)
      • 🧇 Algorithm (44)
        • 이론 (1)
        • LeetCode (2)
        • 프로그래머스 (30)
        • 백준 (11)
      • 💻 Study (47)
        • 🤖 AI 인공지능 (3)
        • Python 파이썬 (3)
        • Docker 도커 (4)
        • 웹 (20)
        • 안드로이드 (2)
        • JAVA 자바 (1)
        • Firebase (3)
        • Linux 리눅스 (10)
      • 🍪 Projects (2)
      • 🎒 학교 (44)
        • 대학원 도비 (2)
        • 21 동계 모각코: 슈붕팥붕 (13)
        • 21 하계 모각코: 와팬호 (13)
        • 20 동계 모각코: 와팬호 (13)
      • 활동들 (16)
        • 인프런 대학생 LEAF 2기 (9)
        • 2021 Silicon Valley Online .. (7)
  • 태그

    Python
    코딩테스트
    목표
    인프런대학생Leaf
    프로그래머스
    Ai
    리액트
    Algorithm
    공부
    React
    백준
    programmers
    Gentoo
    error
    모각코
    알고리즘스터디
    노마드코더
    알고리즘
    Artificial Intelligence
    Linux
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
soyang.
[Node.js] GET과 POST의 차이는 무엇일까?
상단으로

티스토리툴바