프론트엔드/HTTP

HTTP 요청 매서드

테오구 2021. 10. 25. 13:22
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가 있습니다.

 

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

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