- 클라이언트 서버에서 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드
- ex) 게시물 조회
- 이 요청은 URL 주소 끝에 파라미터로 포함되어 전송 (⇒ 쿼리 스트링(query string))
- URL 끝에 “?”가 붙으며 변수명1=값1&변수명2=값2의 형식으로 이어 붙임
- ex) www.example.com/show?name1=value1&name2=value2
- 특징
- GET request can be cached
- GET request remain in the borwser history
- GET request can be bookmarked
- 캐시 가능
- get을 통해 서버에 리소스 요청 시 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드 하는 대신 리소스의 복사본 반환
- 브라우저 히스토리에 남음
- 북마크 가능
- 길이 제한 있음
- 표준 X 브라우저 마다 다름
- 보안상 파라미터에 다 노출되므로 중요한 정보를 다루면 안됨.
- 데이터 요청시에 사용
- 서버로 리소스를 생성하거나 업데이트 하기 위해 데이터 전송 시 사용
- ex) 게시판에 게시글 작성
- 전송 데이터를 HTTP 메시지 body에 담아서 서버로 보냄 → Content-Type 헤더에 따라 타입 결정
- GET에서 파라미터로 전송된 “=value1&name2=value2”이 body에 담겨 보내짐
- 길이 제한 X → 용량 큰 데이터 전송
- 데이터 외부적으로 드러나지 않음 → 보안 필요시 사용
- 암호화는 필요함
- 보통 HTML form을 통해 서버로 전송됨
- 특징
- 캐시되지 않음
- 브라우저 히스토리에 남지 않음
- 북마크 되지 않음
- 데이터 길이에 제한 X
GET | POST | |
---|---|---|
사용 목적 | 서버의 리소스에서 데이터 요청 | |
(⇒ DB의 SELECT) | 리소스를 새로 생성하거나 업데이트 할 때 | |
(⇒ DB의 Create) | ||
요청에 body 유무 | URL 파라미터에 요청하는 데이터를 담아 보냄 ⇒ body X | body에 데이터를 담아 보냄 ⇒ HTTP 메시지에 body O |
멱등성 (indempotent) | 멱등 O | 멱등 X |
- 멱등 : 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질
- GET : 리소스를 조회에 요청 수와 관계 없이 동일한 응답
- POST : 리소스 생성, 업데이트에 쓰이기 때문에 멱등 X