728x90
GET | GET 메서드는 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다. |
Head | HEAD 메서드는 GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다. |
POST | POST 메서드는 특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태의 변화나 부작용을 일으킵니다. |
PUT | PUT 메서드는 목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다. |
DELETE | DELETE 메서드는 특정 리소스를 삭제합니다. |
CONNECT | CONNECT 메서드는 목적 리소스로 식별되는 서버로의 터널을 맺습니다. |
OPTIONS | OPTIONS 메서드는 목적 리소스의 통신을 설정하는 데 쓰입니다. |
TRACE | TRACE 메서드는 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 합니다. |
PATCH | PATCH 메서드는 리소스의 부분만을 수정하는 데 쓰입니다. |
HTTP의 GET과 POST 비교
둘 다 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요청할 때 사용하는 방식이다. 하지만 둘의 특징을 제대로 이해하여 기술의 목적에 맞게 알맞은 용도에 사용해야한다.
GET
우선 GET 방식은 요청하는 데이터가 HTTP Request Message의 Header 부분에 url 이 담겨서 전송된다.
때문에 url 상에 ? 뒤에 데이터가 붙어 request 를 보내게 되는 것이다. 이러한 방식은 url 이라는 공간에 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다.
또 보안이 필요한 데이터에 대해서는 데이터가 그대로 url 에 노출되므로 GET방식은 적절하지 않다.
요청에 본문 존재 | 아니오 |
성공 응답에 본문 존재 | 예 |
안전함 | 예 |
멱등성 | 예 |
캐시 가능 (en-US) | 예 |
HTML 양식에서 사용 가능 | 예 |
안전성
HTTP 메서드가 서버의 상태를 바꾸지 않으면 그 메서드가 안전하다고 말합니다.
멱등성
동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다.
캐시가능
캐시 가능한 응답은 캐시될 수 있는 HTTP 응답으로, 나중에 검색하여 사용하도록 저장되어 서버에 새로운 요청을 저장한다.
POST
POST 방식의 request 는 HTTP Request Message의 Body 부분에 데이터가 담겨서 전송된다.
때문에 바이너리 데이터를 요청하는 경우 POST 방식으로 보내야 하는 것처럼 데이터 크기가 GET 방식보다 크고 보안면에서 낫다.
요청에 본문 존재 | 예 |
성공 응답에 본문 존재 | 예 |
안전함 | 아니오 |
멱등성 | 아니오 |
캐시 가능 (en-US) | 신선도 정보 포함 시 |
HTML 양식에서 사용 가능 | 예 |
서버에 있는 리소스를 읽기만 할 때 데이터를 변경하지 않는 요청은?
GET, HEAD, OPTIONS, TRACE가 있습니다.
서버에 있는 리소스를 읽기만 할 때 데이터를 변경하는 요청은?
POST, PUT, DELETE, PATCH가 있습니다.
728x90
'프론트엔드 > HTTP' 카테고리의 다른 글
http status code (0) | 2021.12.03 |
---|---|
axios (0) | 2021.11.22 |
Message States Server REST API (0) | 2021.10.19 |
Checkpoint - REST API (0) | 2021.10.19 |
REST API (0) | 2021.10.19 |