GET과 POST는 각각 영단어 의미 그대로 ‘가져 온다’와 ‘보낸다’라는 이미지를 갖고 접근하면 좋습니다.
URL의 일부분에 매개 변수(parameter)를 지정하여, Client가 Server에게 어떠한 리소스로부터 정보를 요청
쿼리 스트링(query string)이라 한다.?를 붙여 사용하며, 여러 개일 경우 &를 붙임0:8000/films?genre=드라마&sort=randomClient가 Server에게 어떠한 리소스의 생성 혹은 업데이트를 목적으로 데이터를 보냄
| GET | POST | |
|---|---|---|
| body 값 유무 | 존재 하지 않음 | 존재함 |
| 뒤로가기 / 새로고침 | 영향 없음 | 데이터가 다시 전송됨 |
| 캐시 가능 여부 | 가능 | 불가능 |
| 북마크 가능 여부 | 가능 | 불가능 |
| 브라우저 히스토리에 매개변수의 저장 여부 | 남아 있음 | 저장 되지 않음 |
| 데이터 길이 제한 | URL에 데이터를 더하는데, URL의 길이는 최대 2048 글자 | 없음 |
| 자료형에 대한 제한 | 오직 아스키 문자 | 없음. 이진 데이터(binary data)도 가능 |
| 보안 | 비교적 보안이 약함(전송되는 데이터가 URL의 일부이기 때문) | 비교적 보안이 강함 |
| 가시성(visibility) | URL의 모든 사용자가 볼 수 있음 | URL에 보여지지 않음 |
| 멱등성(impotence) | 멱등적, 여러 번 적용해도 결과가 같음 | 멱등적이지 않음, 여러 번 적용하면 결과가 같지 않음 |
| 예시 | 특정 제품의 상세페이지를 보여주기 위한 요청 | ‘좋아요’ 버튼을 눌렀을 때 요청 |
거듭해도[冪] 똑같다[等].
연산을 여러 번 적용하더라도 결괏값이 달라지지 않는 일.