ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST 관점에서의 HTTP Request GET method와 POST method의 차이
    Web 2021. 5. 13. 09:11

    면접 최다빈출 질문으로, "HTTP Reuqest method인 get과 post는 어떤 차이가 있나요?"라는 질문이 있다

    우선 차이점을 표로 정리하면 다음과 같다

    method GET POST
    특징 Request 시 데이터를 URL 뒤에 Query String으로(key=value)로 추가되어 전달한다
    입력 값들이 많지 않은 경우나 공개적으로 URL에 정보를 표기해도 무방한 경우 사용한다
    URL과 별도로 전송된다
    Http header 뒤에 입력스트림 데이터로 전달된다
    장점 간단한 데이터를 빠르게 처리할 수 있다
    사용이 간편하다
    form tag를 통한 전달이 아니어도 직접 URL에 입력해도 전송이 가능하다
    데이터의 양에 제한이 없어 GET method보다 많은 데이터를 전송할 수 있다
    최소한의 보안을 유지할 수 있다
    단점 데이터 양에 제한이 있다(URL 전체 데이터 size는 2048byte로 제한) 같은 데이터 양이면 GET method보다 처리 속도가 비교적 느리다

     

    GET method Query String Example

    처음 이 질문을 접했을 때, 위의 키워드로 구글링을 여러 번 해보았고 많은 사이트에서 위의 정보들이 나열된 글들을 볼 수 있었다

    하지만 본질적으로 GET과 POST에 단순히 위의 차이만 있다면, 두 method의 사용 구분이 너무 불명확한 것이 아닌가 하는 의문이 들었다

     

    SSAFY 교수님께 질문한 DM

    두서없는 질문이긴 했지만 요지는 단순한 특징적 차이 외에 GET method와 POST method의 사용을 명확하게 구분할 수 있는 기준이 있는가 였다 (저 시점에서 프로젝트를 수행할 때 에는 front controller를 사용하지 않았기 때문에 uri mapping을 모두 post method로 직접 처리해주었다)

     

    현재 REST architecture에 대한 포스팅을 정리중이지만, 교수님의 답변을 들은 뒤 REST에 대해 공부하고 나서 궁금증을 해소할 수 있었다

    REST의 핵심 개념 중 하나인

    HTTP URI를 통해 Resource를 명시하고, HTTP Request Method(GET/POST/PUT/DELETE)를 통해 해당 Resource에 대한 CRUD Operation을 적용한다

    에 의해 GET method와 POST method의 사용은 명확히 구분될 수 있다

    이 때 CRUD는 Create(POST), Read(GET), Update(PUT), Delete(DELETE)를 의미한다

    따라서 구조적인 차이점 이외에도 URI에 Resource 종류를 명시하여 데이터를 조회하기 위한 목적으로는 GET method, Resource를 생성하기 위한 정보를 Header에 담아 요청하기 위해서는 POST method를 사용하는 것이다.

     

    물론 REST의 요소는 이것 뿐이 아니고, GET과 POST의 차이를 정의하는 더욱 엄밀한 가이드가 있을 수는 있겠지만 구조적 차이 이외에도 REST API의 관점을 적용해서 자원의 조작 행위를 구분할 수 있다는 점에서는 이 정도까지 간단하게 이해해도 좋을 것 같다

     

    참고 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

Designed by Tistory.