본문 바로가기
서버 기본상식

HTTP method 정리

by 왕밤 2021. 7. 29.

HTTP 요청 메서드(HTTP 동사)

 

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다.

 

각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합 간에 서로 공유하기도 합니다.

이를테면 응답 메서드는 안전 (en-US)하거나, 캐시 가능 (en-US)하거나, 멱등성을 가질 수 있습니다.

 

 

 

GET 메서드

특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다.

 

POST 메서드

특정 리소스에 엔티티를 제출할 때 쓰입니다. (생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용됨)

이는 종종 서버의 상태의 변화나 부작용을 일으킴


Get vs Post

 

Get은 가져온다는 개념이고, Post는 수행한다는 개념

예) 게시판

글의 내용에 대한 목록을 보여주는 경우나, 글의 내용을 보는 경우는 Get에 해당합니다.
그리고 글의 내용을 저장하고, 수정할때에 Post를 사용하는 것이죠

 

👉   Get

서버에서 어떤 데이터를 가져와서 보여줄때 사용

데이터를 읽을 때만 사용되고 수정할 때는 사용하지 않음


따라서 이런 이유로 사용하면 안전하다고 간주된다 즉, 데이터의 변형의 위험없이 사용할 수 있다는 뜻

(어떤 값이나 내용, 상태등을 바꾸지 않는 경우에 사용)

 

👉  Post

서버상의 데이터 값이나 상태를 바꾸기 위해서 사용

 

GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송

 

=> HTTP 메세지의 Body는 길이의 제한없이 데이터를 전송할 수 있음

     (POST 요청은 GET과 달리 대용량 데이터를 전송할 수 있는 이유)

 

 

🦹‍♀️  멱등성(Idempotent)?

 

연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질

 

GET Idempotent, POST Non-idempotent


 

HEAD 메서드

GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다.

 

 

HEAD 메서드에 대한 응답은 본문을 가져선 안되며, 본문이 존재하더라도 무시해야 합니다.

(ButContent-Length처럼 본문 콘텐츠를 설명하는 개체 헤더는 포함할 수 있다

이 때, 개체 헤더는 비어있어야 하는 HEAD의 본문과는 관련이 없고,

대신 GET 메서드로 동일한 리소스를 요청했을 때의 본문을 설명합니다.)

 

 

PUT 메서드

목적 리소스 모든 현재 표시를 요청 payload(사용에 있어서 전송되는 데이터)로 바꿉니다.

 

PUT은 한 번을 보내도, 여러 번을 연속으로 보내도 같은 효과를 보입니다. 즉, 부수 효과가 없습니다.

PUT  Idempotent, POST Non-idempotent

 

 

DELETE 메서드

특정 리소스를 삭제합니다.

 

 

CONNECT 메서드

목적 리소스로 식별되는 서버로의 터널을 맺습니다.

 

 

OPTIONS 메서드

목적 리소스의 통신을 설정하는 데 쓰입니다.

(CORS의 조건에 맞게 실질적인 요청을 할 수 있게 서버에 허락을 받기 위한 요청 메소드)

 

TRACE 메서드

목적 리소스의 경로를 따라 메시지 loop-back 테스트를 합니다.

 

 

PATCH 메서드

리소스의 부분만을 수정하는 데 쓰입니다

 

 

 

 

 

'서버 기본상식' 카테고리의 다른 글

3) 도메인 , DNS  (0) 2021.09.02
2) IP와 포트  (0) 2021.09.02
1) URL  (0) 2021.09.02
클라이언트 - 서버 아키텍처  (0) 2021.09.02
CORS  (0) 2021.08.04

댓글