HTTP METHOD

choko's avatar
Jun 29, 2024
HTTP METHOD

GET

  • 데이터가 HTTP Request header 부분에 url이 담겨 전송된다
    • 전송할 수 있는 데이터 크기가 제한적
    • 데이터가 url에 노출되기 때문에 보안이 필요한 데이터에 대해서는 GET을 쓰면 안됨
  • 데이터를 가져오는 용도로 사용, 서버의 값이나 상태를 변경시키지 않음
  • GET의 경우 캐싱을 사용하기 때문에 더 빠를 수 있지만, 업데이트의 적용이 느리게 될 수도 있다.
 

POST

  • 데이터가 HTTP Request의 body 부분에 담겨서 전송됨
    • 데이터 크기가 GET보다 크고 보안면에서 낫다
  • 서버의 값이나 상태를 변경하기 위해서 사용된다
  • GET, POST 차이점
    • 사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.
      • DB로 따지면 GET은 SELECT 에 가깝고, POST는 Create 에 가깝다고 보면 된다.
    • 요청에 body 유무 : GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없다. POST 는 body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재한다.
    • 멱등성 (idempotent) : GET 요청은 멱등이며, POST는 멱등이 아니다.
      • 멱등 : 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질
      •  

PUT

  • 리소스의 모든 것을 업데이트 한다.
PUT /members/1 { name : "김길순" }
회원 (member)
1
이름 (name)
김길순
나이 (age)
성별 (gender)
보내지지 않은 값에 대해서는 null 값으로 변한다.
 

PATCH

  • 리소스의 일부를 업데이트 한다
PATCH /members/1 { name : "김길순" }
회원 (member)
1
이름 (name)
김길순
나이 (age)
10(기존 데이터)
성별 (gender)
M(기존 데이터)
 

DELETE

  • 서버의 데이터를 삭제한다
    • Body, Content-type이 비워져 있다.
DELETE /members/1
 

OPTION

  • 서버와 브라우저가 통신하기 위한 통신 옵션을 확인하기 위해 사용된다.
    • 서버가 어떤 Method, Header, Content-type을 지원하는지 확인할 수 있다.
    • Preflight Request
      • 클라이언트에서 요청하려는 URL이 외부 도메인을 경우, 웹 브라우저에서 자체적으로 OPTION이 실행됨(실질적인 요청 전 확인용)
      • Cors도 Preflight Request를 사용하여, OPTIONS 요청을 보낸 뒤, 해당 정보를 토대로 통신의 가능 여부를 파악한다.
      •  
Share article

Tom의 TIL 정리방