GET POST 개념 정리(20220115)

홍륜건·2022년 1월 17일
0

GET

GET은 서버로부터 정보를 조회하기 위해 설계된 메소드이다. 데이터를 읽거나(Read), 검색(Retrieve)할 때에 사용되는 method라고 할 수 있다.
URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터를 쿼리스트링이라고 부른다. 파라미터가 여러 개이면 &로 연결. 쿼리스트링을 사용하게 되면 URL에 조회 조건을 표시하기 때문에 특정 페이지를 링크하거나 북마크할 수 있다.

ex)
www.example-url.com/resources?name1=value1&name2=value2

POST

POST는 리소스를 생성/변경하기 위해 설계되었기 때문에 GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송합니다.
데이터를 전송할때 길이 제한이 따로 없어 용량이 큰 데이터를 보낼때 사용되거나, 외부적으로 데이터가 드러나지 않아 보안이 필요한 부분에 사용된다.
POST로 요청을 보낼 때는 요청 헤더의 Content-Type에 요청 데이터의 타입을 표시해야 한다. 데이터 타입을 표시하지 않으면 서버는 내용이나 URL에 포함된 리소스의 확장자명 등으로 데이터 타입을 유추한다.

차이점

GET은 Idempotent, POST는 Non-idempotent하게 설계되었습니다.
Idempotent(멱등)은 수학적 개념으로

"수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질"

멱등이라는 것은 동일한 연산을 여러 번 수행하더라도 동일한 결과가 나타나야 한다.

GET으로 서버에게 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아와야 한다는 것을 의미한다.

POST는 Non-idempotent하기 때문에 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있다.

get은 서버의 리소스에서 데이터를 요청할때.
post는 서버의 리소스를 새로 생성하거나 업데이트 할때
db로 따지면get은 select에 가깝고 post는 create에 가깝다.

profile
초보 개발자 지망생

0개의 댓글

관련 채용 정보