1. HTTP 주요 메소드
2. HTTP 메소드의 속성
3. GET vs POST 차이점
HTTP 주요 메소드
: 클라이언트가 원하는 서버에 연결한 후, 웹 서버에 요청을 해야 한다.
HTTP 요청 메세지에는 정해진 양식이 있다. 이를 요청 데이터 포맷이라고 한다.
- GET : 리소스의 조회에 사용한다. (SELECT)
서버에 전달하고 싶은 데이터를 query(parameter, query string)을 통해 전달한다. 메세지 바디를 통해 데이터를 전달할 수도 있지만 지원하지 않는 곳도 존재하기 때문에 권장하지 않는다.
- POST : 요청 프로세스 처리, 데이터 등록에 사용한다. (INSERT)
메세지 바디를 통해 서버로 요청 데이터를 전달한다. 서버는 메세지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다. 또한, 다른 메소드로 처리하기 애매한 경우 주로 사용된다. 조회할 때 데이터를 넘기기 어려운 경우 데이터를 넘기는 데 사용할 수 있지만 조회는 GET을 사용하는 것이 좋다. POST로 조회시 캐싱하기에 어려운 문제가 있기 때문에 권장하지 않는다. (기술적으로 캐싱은 가능)
- PUT : 리소스를 대체, 해당 리소스가 없으면 생성한다. (UPDATE 자료의 수정을 요청)
목적 리소스를 현재 메세지의 값으로 생성하거나 만약 존재한다면 기존 리소스를 삭제하고 덮어쓰기한다. POST를 계속 요청하면 데이터가 계속 생성되지만 PUT은 여러번 요청하더라도 결과는 같다. (멱등성 idempotent)
- DELETE : 특정 리소스의 삭제를 요청하는데 사용한다.
HTTP 메소드의 속성
- 안전성(Safe Methods)
메소드를 계속 호출해도 리소스를 변경하지 않는다는 뜻이다. 주요 메소드중에는 GET 메소드가 안전하다고 볼 수 있다. 조회 위주이기 때문에 서버에 끼치는 영향이 적다.
- 멱등성(Idempotent Methods)
메소드를 계속 호출해도 결과가 똑같다는 뜻이다. GET, PUT, DELETE는 멱등하다고 볼 수 있지만 POST는 멱등하다고 볼 수 없다. POST를 계속 요청하면 데이터가 계속 생성되기 때문이.
- 캐싱가능(Cacheable Methods)
캐싱이란 용량이 큰 이미지를 서버로부터 1회 받은 후, 데이터를 효율적으로 가져오기 위해 브라우저에 저장하는 것을 말한다. 대부분 GET 메소드에 대해 캐싱을 많이 사용하는데 이유는 GET 메소드의 특성상 변하지 않는 URI가 있기 때문에 캐싱하기 쉽기 때문이다.
GET vs POST 차이점
POST 요청은 클라이언트에서 서버로 전송할 때 추가적인 데이터를 바디에 포함할 수 있다.
GET 요청은 필요한 모든 데이터를 URL에 포함하여 요청한다.
만약 GET 메소드를 사용하면 모든 form data는 URL로 인코딩되어 action URL에 query string parameter로 전달된다.
POST 메소드를 사용하면 form data는 HTTP request의 메세지 바디에 나타날 것이다.
'WEB' 카테고리의 다른 글
쿠키(Cookie), 세션(Session)의 특징 및 차이점 (0) | 2023.08.22 |
---|---|
HTTP 상태코드 종류와 의미 (0) | 2023.08.04 |
HTTP의 개념과 특징 (0) | 2023.08.01 |
[백엔드] Rest API / Restful API 이해하기 (0) | 2023.08.01 |