231130 TIL #256 네트워크 #3 HTTP Method

김춘복·2023년 11월 30일
0

TIL : Today I Learned

목록 보기
256/328

Today I Learned

오늘도 네트워크 공부!


참고 사이트 : w3schools

HTTP Method

클라이언트-서버 간 통신에서 어떤 동작을 수행할 지 나타내는 명령

멱등성 Idempotent

연산을 반복 해도 결과가 달라지지 않는 성질

GET

  • 서버에서 특정 리소스를 조회해 가져오기 위한 용도
    요청 URI로 식별된 리소스를 가져올 수 있도록 요구한다.

  • 브라우저는 동일한 GET 요청에 대한 응답은 캐싱할 수 있다.

  • 전달하려는 데이터는 주로 쿼리스트링(ex. /users?id=123)이나 Path Value(ex. /users/123)방식으로 전한다. URL에 파라미터가 노출되기 때문에 Body로 데이터를 전달하는 POST 방식에 비해 보안이 떨어진다.

  • 현재는 GET 메서드도 Body를 사용해 데이터를 보낼 수는 있으나, 특정 클라이언트나 서버에서는 GET의 Body는 무시되는 경우가 있으니 권장하지는 않는다.

  • 북마크가 가능하고, 요청시 파라미터가 브라우저 history에 남는다.

POST

  • 엔티티 전송/리소스 생성의 목적으로 사용된다.
    간혹 PATCH가 불가능한 경우 수정의 목적으로도 사용된다.

  • Body를 통해 서버로 데이터를 전송하므로 GET과 다르게 메세지 길이에 제한이 없다.

  • 쿼리 파라미터는 key-value 형식의 주로 JSON과 같은 포맷으로 보낸다.

  • POST도 조회가 가능하긴 하나 멱등성이 없어 여러번 수행 시 같은 결과를 보장하진 않는다. 그리고 GET은 캐싱을 이용하므로 조회에는 GET이 더 빠르다.

  • Body에 데이터를 보내기 때문에 데이터가 외부로 노출(ex.쿼리스트링)되지 않으므로 보안상 이점이 있다.

PUT

  • 리소스 전체 수정(완전히 대체하는 개념, 덮어쓰기)에 사용된다.
    부분 수정이 불가하다. 기존에 a,b가 있는데 c를 보내면 c로 완전히 대체된다.

  • 클라이언트가 리소스를 식별할 수 있다. 클라이언트가 구체적인 리소스 위치를 아는 상태에서 URI를 지정한다.

  • 멱등성을 지닌다.

PATCH

  • 리소스 부분 수정에 사용된다.
    PUT 처럼 리소스 수정 역할은 맞지만, PATCH는 부분만 변경한다.
    a,b가 있을때 b=c로 대체 후 요청하면 a,c로 변경된다.

  • 멱등성 x.

  • PATCH를 지원하지 않는 서버가 있을 땐, POST를 사용한다.

DELETE

  • 리소스 삭제에 사용된다.

  • GET과 같은 이유로 body를 사용할 수는 있으나 권장되지 않는다.

  • 헤더 정보를 요청하기 위해 사용된다.

  • GET과 유사하지만 서버는 응답으로 Body를 반환하지 않고 헤더만 반환한다.
    그래서 일반적으로 응답 상태코드 확인 같은 검사 목적으로 사용된다.

OPTIONS

  • 요청 URI로 지정한 리소스가 제공하는 메소드를 알아내기 위해 사용된다.

  • 예비 요청(본 요청 전 미리 검사용)에 사용되며, CORS 정책을 검사하기 위함이다.

CONNECT

  • 클라이언트-서버 간 터널 설정을 위해 사용된다.

  • 주로 HTTPS의 TLS/SSL 연결이나 프록시 서버 터널 설정에 사용된다.

TRACE

  • 네트워크 검사나 디버깅 문제 해결 목적으로 사용된다.
    보안상의 문제도 있고, 현재는 거의 사용되지 않는다.

  • Web 서버에 접속해 통신을 되돌려 받는 루프백을 발생 시킨다.


profile
꾸준히 성장하기 위해 매일 log를 남깁니다!

0개의 댓글