- GET
- POST
- PUT
- HEAD
- DELETE
- PATCH
- OPTIONS
- CONNECT
- TRACE
주로 쓰이는 2가지 HTTP 메소드는 GET과 POST이다.
이 두 메소드간의 차이점에 대해서 알아보자.

GET과 POST는 서로 다른 URL로 클라이언트의 요청이 서버로 전송된다.
GET : 정보를 요청하고 가져올 때 사용된다. 예를 들어, 브라우저에서 웹 페이지를 요청하거나
검색 엔진에서 검색어를 서버에 전달할 때 사용된다.
POST : 사용자가 제출한 데이터를 서버로 보내고, 그 데이터를 처리하거나 저장할 때 사용된다.
예를 들어, 회원가입 양식을 제출하거나 로그인 정보를 전송할 때 사용된다.
GET : 데이터는 URL의 일부로 전송된다. 즉, URL에 쿼리 문자열로 데이터가 추가된다.
예를 들어, http://example.com/search?q=query 와 같이 URL에 데이터가 추가된다.
POST : 데이터는 HTTP 요청의 body에 포함된다. 따라서 사용자가 제출한 데이터는 URL에 노출되지 않고, HTTP 요청 body에 포함된다. 예를 들어, 사용자가 회원가입 양식을 작성하면 "username=johndoe&password=12345" 와 같이 body에 데이터가 포함된다.
GET : URL의 길이에 제한이 있다. 이는 브라우저와 서버가 URL의 길이를 허용하는 최대 크기를 설정하여 제한한다. 예를 들어, Internet Explorer의 경우 약 2048자로 제한하고 있다.
POST : HTTP 프로토콜에 명시된 제한은 없지만, 서버 또는 웹 애플리케이션에서 설정된 제한이 있을 수 있다. 일반적으로 POST 요청은 GET보다 큰 양의 데이터를 처리할 수 있다.
GET : 멱등적이다. 동일한 GET 요청을 여러 번 보내더라도 서버 상태나 데이터에 변경을 가하지 않으며, 항상 동일한 응답을 받을 수 있다. 따라서 GET 요청은 멱등적인 특성을 가진다.
POST : 멱등적이지 않다. POST 요청은 서버의 상태나 데이터를 변경할 수 있으므로,
동일한 POST 요청을 여러 번 보내더라도 서버의 상태가 변경될 수 있다.
예를 들어, 같은 주문을 여러 번 제출하는 경우 주문이 중복으로 생성될 수 있다.
따라서 POST 요청은 멱등적이지 않다.
GET : URL에 데이터가 노출되므로 보안에 취약하다.
민감한 정보(예: 비밀번호)를 전송하는 데 적합하지 않다.
POST : 데이터가 HTTP 요청의 본문에 포함되므로 GET보다는 보안적으로 더 안전하다.
민감한 정보를 전송하는 데 적합하다.
GET: 결과가 캐싱될 수 있다. 브라우저는 같은 GET 요청에 대한 응답을 캐시하여 네트워크 요청을 줄일 수 있다.
POST : 보통은 캐시되지 않는다. POST 요청은 보안상의 이유로 브라우저에 의해 캐시되지 않는다.
GET : 검색 결과 요청, 페이지 이동 등과 같은 데이터를 요청할 때 사용된다.
예를 들어, 브라우저 주소창에 URL을 입력하여 페이지를 요청하는 경우에 사용한다.
POST : 로그인 정보 전송, 회원가입 등과 같은 데이터를 제출하고 업데이트할 때 사용된다.
예를 들어, 로그인 양식을 작성하고 제출하는 경우에 사용한다.
출처 및 참고자료:
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/GET
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/POST
https://www.w3schools.com/tags/ref_httpmethods.asp
https://velog.io/@soopy368/web-Get%EA%B3%BC-Post%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90
https://chat.openai.com/