CS/network

HTTP 요청 Method

superbono 2021. 7. 13. 18:19

HTTP는 요청 메소드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 각각의 메소드는 서로 다른 의미를 구현하지만, 일부 기능은 메소드 집합 간에 서로 공유하기도 한다. 

 

 

* HTTP 요청 Method의 종류

* GET

서버에 존재하는 정보를 요청한다. 이 때 반환되는 정보는 정보가 아니라 특정 정보(리소스)의 표시(표현)이다. GET을 사용하는 요청은 오직 데이터를 받기만 한다. 캐싱을 수행하기 때문에 캐싱되지 않는 요청은 GET 요청 메소드가 적합하지 않을 수 있다.

 

* HEAD

GET 메소드의 요청과 동일한 응답을 요구하지만, RequestBody를 포합하지 않는다. header만 가져온다. 

 

* POST 

서버에 정보를 생성하는 것을 요청한다. 서버 상태의 변화를 일으킨다. RequestBody에 요청하는 데이터를 담아 전송한다. 

 

* PUT

서버에 존재하는 데이터를 수정한다. 만약 데이터가 존재하지 않으면 수정한다. 

 

* DELETE

서버에 존재하는 데이터를 삭제한다. 

 

* CONNECT

목적 데이터로 식별되는 서버로의 터널? 연결을 맺는다. 

 

* OPTIONS

해당 URI에 대해 서버가 허용하는 메서드를 확인할 때(목적 데이터와의 통신을 설정할 때) 쓰인다.

 

* PATCH 

서버에 존재하는 데이터의 부분만을 수정한다. 

 

 

불필요한 메소드는 허용하지 않고 필요한 메소드만 허용하는 whitelist 방식으로 관리해야 한다. 왜냐면 OPTIONS 메소드를 사용하면 서버가 허용하는 메소드를 확인할 수 있는데 이 때 PUT, DELETE, HEAD와 같은 메소드를 사용하여 공격을 할 수 있기 때문이다. 문제되는 HTTP Method를 제한하면 된다. 사용하지 않으면서 여러 메소드들을 허용하고 허용되는 메소드들을 노출하는 것은 보안 취약점이기 때문이다.  

 

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

 

HTTP 요청 메서드 - HTTP | MDN

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부

developer.mozilla.org

 

'CS > network' 카테고리의 다른 글

HTTP(Hyper Text Transfer Protocol)  (0) 2021.07.24
Network Layer의 Protocols  (0) 2021.06.23
슬라이딩 윈도우 프로토콜  (0) 2021.05.11
Load Balancing(로드 밸런싱)  (0) 2021.05.09
URI와 URL, URN  (0) 2021.05.08