CS/네트워크

[네트워크] GET방식과 POST방식의 차이

Heeyeon Choi 2024. 10. 30. 13:31
728x90

1. GET 방식

  • 주요 특징: GET은 서버에 데이터를 요청하는 방식으로, 주로 조회나 검색과 같은 읽기 작업에 사용됩니다.
  • 데이터 전송 위치: URL의 쿼리 스트링(주소 뒤에 ?로 시작하는 부분)에 데이터를 포함시켜 전송합니다.
  • 데이터 크기 제한: URL 길이 제한 때문에 전송할 수 있는 데이터의 양이 제한됩니다 (주로 2048자 이내로 제한).
  • 보안성: 데이터가 URL에 노출되므로 민감한 정보를 포함하기에 적합하지 않습니다.
  • 캐싱 가능성: GET 요청은 캐시될 수 있으므로, 동일한 요청이 반복될 때 서버의 부담을 줄여줍니다.

GET 요청 예시

GET /search?q=example&sort=asc HTTP/1.1
 

여기서 q=example와 sort=asc는 서버로 전달되는 데이터입니다.

2. POST 방식

  • 주요 특징: POST는 서버에 데이터를 전송하여 새로운 리소스를 생성하거나 변경을 요청하는 데 사용됩니다.
  • 데이터 전송 위치: 데이터를 HTTP 본문에 포함하여 전송하므로, URL에 노출되지 않습니다.
  • 데이터 크기 제한: 전송 데이터의 양에 제한이 없어 GET보다 대용량 데이터 전송에 유리합니다.
  • 보안성: 데이터가 본문에 포함되어 URL에 노출되지 않지만, HTTPS를 사용하지 않으면 여전히 데이터는 노출될 수 있습니다.
  • 캐싱 불가: POST 요청은 기본적으로 캐시되지 않으며, 서버에서 처리 후 상태가 변경되는 작업에 적합합니다.

POST 요청 예시

POST /submit HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: length username=user&password=pass
GET 방식과 POST 방식의 주요 차이점 요약

특징GETPOST

사용 목적 데이터 조회 데이터 생성, 전송 및 수정
데이터 전송 위치 URL의 쿼리 스트링 HTTP 요청 본문
데이터 크기 제한적 (URL 길이 제한) 제한 없음
보안성 보안에 취약 (데이터가 URL에 노출됨) 상대적으로 안전 (데이터가 본문에 포함됨)
캐싱 가능성 캐싱 가능 캐싱 불가
속도 상대적으로 빠름 상대적으로 느림

선택 기준

  • 조회 요청: GET을 사용하여 캐시를 통한 효율성 증대
  • 민감한 데이터 전송: POST를 사용하여 데이터 보호 (HTTPS와 함께 사용 권장)
  • 대용량 데이터 전송: POST
728x90