GET: 데이터는 URL에 포함되어 전송되고, URL을 통해 전송되므로 보안에 취약합니다.
POST: 데이터는 HTTP 요청의 본문(body)에 포함되어 전송되고, 데이터가 본문에 포함되어 전송되므로, URL에 노출되지 않습니다.
GET: 주로 데이터를 조회하고, 요청 파라미터를 URL에 포함시켜 전송합니다. 사용자가 브라우저에서 URL을 입력하거나, 링크를 클릭하면 GET 요청이 생성됩니다.
POST: 클라이언트에서 서버로 데이터를 전송할 때 사용되는 HTTP 메서드입니다. HTML 폼의 Submit 버튼을 누르거나, JavaScript를 사용하여 POST 요청을 생성합니다.
GET과 POST는 HTTP 요청 메서드의 두 가지 주요 유형으로,
웹 애플리케이션에서 서버와 클라이언트 간의 데이터를 주고받는 방식. 이 두 가지는 특정한 상황에서 사용 목적이 다르다.
목적: 주로 서버에서 데이터를 가져오는데 사용.
특징:
예시 (GET 요청)
🖥️ fetch('https://api.example.com/data?param1=value1')
.then(response => response.json())
.then(data => console.log(data));
목적: 서버에 데이터를 제출하거나,
서버에 영향을 미치는 작업을 요청할 때 사용.
특징:
예시 (POST 요청):
fetch('https://api.example.com/submit', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ param1: 'value1', param2: 'value2' })
})
.then(response => response.json())
.then(data => console.log(data));
➡️ GET: 데이터를 "가져오는" 요청. URL에 요청 데이터를 포함.
➡️ POST: 데이터를 "보내는" 요청. 본문에 데이터를 포함.
1. 클라이언트에서 서버로 요청
2. 서버에서 요청을 처리
3. 서버에서 클라이언트로 응답
1. 클라이언트에서 서버로 요청
클라이언트(브라우저)는 서버에 데이터를 전송하기 위해
HTTP POST 요청을 보낸다.
데이터는 URL이 아닌 요청 본문(body)에 포함.
(예: 사용자가 로그인할 때 아이디와 비밀번호를 전송하거나,
폼 데이터를 제출할 때.)
클라이언트는 요청 본문에 포함된 데이터를 서버로 전송,
이 데이터는 JSON, XML, 폼 데이터 등 다양한 형식일 수 있다.
2. 서버에서 요청을 처리
서버는 POST 요청의 본문을 읽고 데이터를 처리.
데이터베이스에 저장하거나, 서버의 상태를 변경하거나,
다른 처리 작업을 수행할 수 있다.
처리 결과에 따라 서버는 클라이언트에 응답을 준비한다.
3. 서버에서 클라이언트로 응답
서버는 처리 결과에 따라 HTTP 응답을 클라이언트로 전송. 응답에는 상태 코드, 응답 본문(예: 성공 메시지, 오류 메시지 등), 그리고 필요한 경우 데이터가 포함된다.
클라이언트(브라우저)는 응답 데이터를 받아서,
페이지를 리로드하거나 다른 후속 작업을 수행.