웹에서 클라이언트가 서버에 데이터를 요청하거나 보낼 때 GET 방식과 POST 방식

2024. 10. 22. 17:23정보처리,전산

반응형

 

1. GET 방식

  • 데이터 전송 방식: GET 요청은 URL에 데이터를 붙여서 서버로 전송한다. 즉, 요청 데이터가 쿼리 문자열(URL의 키=값 형식)로 전달된다.
    • 데이터가 URL에 노출: URL에 쿼리 파라미터로 포함되므로 누구나 볼 수 있다. 보안이 필요한 정보(예: 비밀번호)는 절대 GET 방식으로 보내지 않는다.
    • 길이 제한: URL의 길이에 제한이 있기 때문에 전송할 수 있는 데이터의 양이 제한된다.
    • 캐싱: 브라우저나 프록시 서버가 GET 요청을 캐시할 수 있다. 즉, 동일한 GET 요청에 대해 서버의 응답을 재사용할 수 있다.
    • 주로 데이터 조회에 사용된다. 서버 상태를 변경하지 않고, 데이터를 가져오는 목적이다.
  • 사용 예시: 검색 엔진에서 검색어를 입력하거나 페이지를 탐색할 때 자주 사용된다.

2. POST 방식

  • 데이터 전송 방식: POST 요청은 데이터를 HTTP 메시지의 본문(Body)에 숨겨서 전송한다. 따라서 URL에는 나타나지 않는다.
    • 데이터가 URL에 노출되지 않음: 데이터가 본문에 포함되므로 보안 측면에서 더 안전한다. 특히 로그인 정보나 금융 정보처럼 중요한 데이터를 보낼 때 사용된다.
    • 데이터 양의 제한 없음: URL의 길이 제한이 없기 때문에 대량의 데이터를 전송할 수 있다.
    • 캐싱되지 않음: 기본적으로 POST 요청은 캐시되지 않으며, 서버에서 해당 요청을 다시 처리해야 한다.
    • 서버 상태 변경 가능: 주로 데이터 생성, 업데이트 등의 작업에 사용된다. 즉, 서버에 새로운 리소스를 생성하거나 상태를 변경하는 작업에 적합한다.
  •  로그인 폼 제출, 파일 업로드, 데이터베이스에 데이터 추가 등이 POST 방식을 사용하는 대표적인 상황이다.

 

구분GET 방식POST 방식

데이터 전송 방식 URL의 쿼리 문자열에 포함 (키=값) HTTP 요청 본문에 포함
보안성 데이터가 URL에 노출됨 (보안이 낮음) 데이터가 본문에 포함 (보안이 더 높음)
전송 데이터 크기 제한 있음 (URL 길이 제한) 제한 없음
캐싱 캐시 가능 기본적으로 캐시되지 않음
용도 데이터를 조회할 때 (읽기 전용) 데이터를 생성, 업데이트할 때 (쓰기 작업)

 

 
 

 

 

반응형