Post

GET vs POST

GET

  • GET 메서드는 주로 서버에서 데이터를 조회하기 위한 목적으로 사용되는 HTTP 프로토콜 메서드이다.
  • 웹 페이지 조회, 검색 엔진에 검색어 입력 등과 같이 데이터를 읽어오는 요청에 주로 사용된다.
  • GET 메서드는 데이터를 URL의 쿼리 문자열에 포함시켜 전송한다. 예를 들어, example.com/search?q=query와 같은 형태로 전송되며, URL에 직접적으로 된다.
  • 데이터가 URL에 포함되기 때문에 민감한 정보를 전달하기에는 적합하지 않다. URL이 브라우저 기록이나 로그 파일에 기록될 수 있기 때문이다.
  • 요청된 URL에 대한 응답이 캐시될 수 있다. 따라서 동일한 요청에 대해 서버에 재접속하지 않고 캐시된 데이터를 사용할 수 있다.
  • URL 길이에 제한이 있기 때문에, 전송할 수 있는 데이터의 양이 제한된다(일반적으로 2048자 이내).

POST

  • POST 메서드는 주로 서버에 데이터를 전송하여 처리하기 위해 사용된다.
  • 데이터를 서버로 제출하거나, 데이터베이스에 새로운 데이터를 삽입할 때 사용된다.
  • 데이터를 HTTP 메시지의 본문(Body)에 포함시켜 전송하기 때문에 URL에 노출되지 않으며, 주로 더 큰 데이터 양을 전송할 때 사용된다.(보내는 크기에 제한이 없다.)
  • 데이터가 본문에 포함되어 전송되므로, 민감한 정보를 전송할 때 더 안전하지만, 이 역시 HTTPS를 사용해야 전송 중 데이터가 암호화된다.
  • 일반적으로 캐시되지 않으며, 매번 서버에서 새로운 응답을 받아오게 된다.

GET, POST의 목적

위에서 GET은 주로 데이터를 조회하는데, POST는 주로 데이터를 전송하는 목적을 가지고 있다고 설명했다. 하지만 반드시 이를 지켜야 할 필요는 없다.

예를 들어, 로그인을 하는 경우 사용자 데이터의 유무를 조회하지만 민감한 정보를 보내야하기 때문에 보안상 이유로 POST 메서드를 사용해야한다.

주된 목적은 정해져있기는 하지만 실제로는 상황에 따라 GET과 POST 메서드를 유연하게 선택하여 사용하는 것이 중요하다.

This post is licensed under CC BY 4.0 by the author.