본문 바로가기
웹 엔지니어 면접 질문/컴퓨터 네트워크

HTTP에서 GET과 POST의 차이점

by cuziam 2023. 4. 5.

Q: HTTP에서 GET 메소드와 POST 메소드의 차이점이 무엇인가요?

<질문의 의도>

둘의 컨셉은 정말 간단하다. 하나는 데이터를 가져오기 위해서, 하나는 보내기 위해서 사용한다. 기본기 테스트에 가깝다. RESTful API를 이용할 때 이 둘을 모르면 문제가 있다. 그렇기 때문에 실제 대답을 할 땐 디테일한 차이점을 언급해주는 것이 좋을 것 같다.

 

  1. GET 메소드
  • GET 메소드는 데이터를 가져오기 위해 사용한다.
  • URL을 통해 데이터를 전송하며, 데이터는 URL에 쿼리 스트링 형태로 전달한다.
  • 보안성이 떨어지고 전송 데이터에 길이 제한이 있다.
  • 데이터들은 브라우저에서 캐싱이 가능하기 때문에, 동일한 요청이 반복될 경우 캐시를 이용하여 빠르게 처리할 수 있다.
  1. POST 메소드
  • POST 메소드는 데이터를 전송하기 위해 사용한다.
  • HTTP 요청의 body에 데이터를 포함시켜 전송한다.
  • GET 메소드와 달리 데이터 길이 제한이 없으며, 민감한 정보를 전송할 때도 사용한다.
  • 브라우저에서 캐싱하지 않는다. 따라서 매번 요청이 새로 발생하고 보안성이 높다.
  • 주로 클라이언트에서, 서버가 처리할 데이터를 전송할 때 사용한다.

<예상 추가 질문>

1. 왜 GET 메소드는 상대적으로 보안성이 떨어지고, POST 메소드는 상대적으로 보안성이 높나요?

GET 메소드는 URL에 데이터가 나타나고 캐싱까지 되기 때문이다. 반면 POST 메소드는 데이터가 body 부분에 담겨 있기 때문에 보기가 번거롭다. 엄밀히 말하면 post메소드도 절대 안전한 메소드가 아니다. 간단한 패킷 스니퍼만으로도 데이터들을 읽을 수 있다. 따라서 body부분을 은닉시키기 위한 일종의 암호화 과정이 필요하다. 

 

2. 그럼 보안성을 높이기 위해서 어떤 일을 할 수 있을까요?

=> HTTPS 프로토콜 사용.

해당 내용은 아래 링크에 정리해놓았다.

 

 

TLS(HTTPS)의 동작 원리와 과정

이번 글에선 HTTPS가 무엇인지, HTTPS를 사용하는 이유는 무엇인지, 그리고 HTTPS의 전체적인 동작에 대해서 알아보려고 한다. 웹 보안을 이해하는 데 있어 중요한 개념이기 때문에 꽤 세세하게 다뤘

cuziam.tistory.com