JongTachi의 개발 블로그

[Network] GET, POST 정의 및 특징 본문

Network

[Network] GET, POST 정의 및 특징

JongTachi 2024. 2. 21. 17:39
728x90
반응형

GET 과 POST 는 HTTP 메서드로 클라이언트에서 서버로 무언가를 요청할 때 사용합니다.
각각 정의와 특징을 살펴보겠습니다.

 

1. GET

정의
GET 메서드는 웹 서버로부터 정보를 요청할 때 사용됩니다. 이 메서드는 서버로부터 데이터를 가져오는 요청을 보내며, 주로 웹 페이지의 내용을 요청하거나 검색을 수행할 때 사용됩니다.

특징
1. **데이터 전송 방식**: GET 요청은 URL에 데이터를 첨부하여 전송합니다. 따라서 전송되는 데이터는 URL의 일부로 노출되어 보안에 취약할 수 있습니다.
2. **캐싱**: GET 요청은 응답이 캐싱될 수 있어, 동일한 요청이 여러 번 발생할 경우 이전에 받았던 응답을 재사용하여 성능을 향상시킬 수 있습니다.
3. **무상태(Stateless)**: GET 요청은 서버에 상태 정보를 저장하지 않으므로, 동일한 요청을 여러 번 보내더라도 서버는 이전 요청에 대한 상태를 유지하지 않습니다.

예시

<!-- HTML Form -->
<form action="/search" method="GET">
    <input type="text" name="q" placeholder="검색어 입력">
    <button type="submit">검색</button>
</form>


GET 예시 설명
위의 예시에서 사용자는 검색어를 입력한 후 "검색" 버튼을 클릭하면, 사용자의 브라우저는 서버에 GET 요청을 보냅니다. 이때 검색어는 URL의 쿼리 문자열에 포함되어 전송됩니다. 예를 들어, "https://example.com/search?q=keyword"와 같은 형식으로 전송될 수 있습니다. 서버는 이 요청을 받아 검색어를 처리하고, 그에 해당하는 결과를 사용자에게 반환합니다.

 

 

2. POST

정의
POST 메서드는 클라이언트에서 서버로 데이터를 전송할 때 사용됩니다. 주로 사용자가 폼을 제출하거나 파일을 업로드할 때 사용됩니다. 

특징
1. **데이터 전송 방식**: POST 요청은 HTTP 요청의 본문에 데이터를 포함하여 전송합니다. 따라서 URL에 데이터가 노출되지 않으며, 보안에 더 적합합니다.
2. **데이터 길이 제한이 없음**: POST 요청은 데이터 길이에 제한이 없어, 대용량 데이터를 전송할 수 있습니다.
3. **비 Idempotent**: POST 요청은 서버 상태를 변경할 수 있으므로, 동일한 요청을 여러 번 보내더라도 서버의 상태가 변경될 수 있습니다.

예시

<!-- HTML Form -->
<form action="/signup" method="POST">
    <input type="text" name="username" placeholder="사용자명">
    <input type="password" name="password" placeholder="비밀번호">
    <button type="submit">가입</button>
</form>


POST 예시 설명
위의 예시에서 사용자는 사용자명과 비밀번호를 입력한 후 "가입" 버튼을 클릭하면, 사용자의 브라우저는 서버에 POST 요청을 보냅니다. 이때 입력한 데이터는 HTTP 요청의 본문에 포함되어 전송됩니다. 서버는 이 요청을 받아 사용자를 등록하고, 그 결과를 사용자에게 반환합니다.

728x90
반응형