HTTP Method(HTTP 메소드)는 웹 서버와 클라이언트(주로 웹 브라우저) 간의 통신에서 특정한 작업을 지시하기 위해 사용되는 명령어입니다.
HTTP 에서는 클라이언트와 서버 사이에 이루어지는 Request(요청) 과 Response(응답) 이라는 데이터 송수신 방식이 존재하는데 이 방식에 있어서 서버가 수행해야 할 동작을 지정하여 Request(요청)을 보내는 방법 입니다.
HTTP 메소드에는 크게 9가지가 존재하는데, 각 메서드는 클라이언트가 서버에 요청하는 작업의 유형을 명확히 정의합니다. 이 중에서, 해당 페이지는 GET , POST 에 대해서만 알아볼 것입니다.
GET 메소드는 굉장히 널리 쓰이는 녀석으로, 서버에 리소스를 요청하여 데이터를 조회하는 데 사용됩니다. 요청 방법은 쿼리스트링(URL에 요청 데이터를 포함시키는 것)을 통해 전송합니다. 이러한 방식은 URL에 요청 데이터가 노출되기 때문에 이 점을 인지하고 사용해야 합니다.
해당 메소드는, 단순히 요청 만 하여 데이터를 조회 할 수 있는 심플하면서도 강력한 기능을 가진 친구 입니다.
GET 메소드는 데이터를 조회하는 역할에만 사용되어, 서버의 상태를 변경하지 않는 매우 안전한 동작입니다.
하지만 기술적으로는 서버의 상태를 변경가능하도록 코드를 짤 수 있습니다만, 권장드리지 않는 방법입니다. GET 메소드의 기능과 동작 원리는 서버의 상태를 변경하는 것에 매우 부적합한 기술입니다.
해당 메소드는 여러번 호출 하여도 동일한 결과를 얻는 Idempotent(멱등성) 의 대표적인 예시 입니다.
GET 메소드의 응답 결과는 캐시가 가능하여, 이를 통한 웹 성능 향상을 기대할 수 있습니다. 조회할 때 POST 도 사용할 수 있지만, 캐싱이 가능하지 않아 데이터 조회간에 GET 사용이 유리한 이유이기도 합니다.
POST 메소드 또한 GET 메소드와 함께 굉장히 널리 쓰이는 녀석입니다. 서버에 요청 데이터를 전달하여, 서버는 요청 데이터를 처리하며 서버에 업데이트가 발생합니다. 데이터를 전송하는 방법은 Request body(HTTP 요청 본문)or Query String(쿼리 문자열)을 통해 전송합니다.
해당 메소드는 서버에서 신규 리소스를 등록,생성 하거나 프로세스 처리에 사용되고 있습니다.
POST 메소드는 GET과 다르게, 서버의 상태를 변경할 수 있는 힘을 가진 동작이기에 안전하진 않습니다.
데이터 길이 전송에는 제한이 없기 때문에, 대용량 데이터 전송이 가능 합니다.