반응형
HTTP Method
HTTP 메서드는 클라이언트가 서버로 전송하는 HTTP 요청의 유형을 정의한다.
탄생 배경
웹이 처음 등장한 1990년대 초반, 그것은 비교적 단순한 구조였다.
사람들이 웹 서버에 저장된 문서를 보기 위해 사용했던 웹 브라우저는 주로 문서를 "가져오는" 기능만 필요했기 때문에 이러한 행동을 수행하는 HTTP 메서드로 GET이 사용되었다
그러나 웹이 발전하면서 사용자들은 웹 사이트와 상호 작용하거나 웹 사이트에 정보를 제공하는 등 더 복잡한 작업을 수행이 필요해졌다. 예를 들어, 사용자가 웹 사이트에 새로운 정보를 제출하거나 웹 사이트의 정보를 업데이트하거나 삭제하는 등의 기능이 필요해졌고 이러한 요구사항을 충족하기 위해, HTTP 1.0 및 이후 버전에서는 POST, PUT, DELETE 등의 새로운 HTTP 메소드가 도입되었다.
각 HTTP 메소드는 특정 유형의 웹 상호작용을 나타내며, 이를 통해 웹 애플리케이션은 사용자의 요청을 더 정확하게 이해하고 처리할 수 있게 되었다.
Method
- GET: 서버에서 정보를 요청할 때 사용된다.
GET요청은 정보를 검색하는데 사용되므로, 서버의 상태를 변경시키지 않아야 한다.(즉, "멱등(idempotent)" 해야 한다)GET요청의 장점은 캐싱이 가능하다는 점이며, 단점은 보안에 취약하다는 점이다. GET 요청은 URL에 파라미터를 포함하므로, 민감한 데이터를 전송하기에는 적합하지 않다 - POST: 클라이언트가 서버에 정보를 제출하려고 할 때 사용된다.
POST요청은 서버의 상태를 변경하는데 사용될 수 있으며,POST의 장점은 본문(body) 안에 데이터를 전송하므로 GET보다 보안적인 측면에서 우위에 있다는 점이다. 하지만POST를 사용함에 있어 단점은 캐싱이 불가능하다는 점이다. - PUT: 서버의 리소스를 업데이트하거나 생성할 때 사용된다.
PUT은 "멱등(idempotent)" 한 method이며 즉, 동일한 요청을 여러 번 보내도 결과가 동일해야 한다. 이 메서드의 장점은 전체 리소스를 업데이트할 수 있다는 점이고, 단점은 부분적인 업데이트가 어렵다는 점이 있다. - PATCH: 서버의 리소스를 부분적으로 수정할 때 사용된다.
PATCH는 "멱등(idempotent)" 한 연산일 수도 있고 아닐 수도 있다. 이 메소드의 장점은 리소스의 일부만 업데이트할 수 있다는 점이며, 단점은 구현이PUT보다 복잡하다는 점이다. - DELETE: 서버의 리소스를 삭제할 때 사용된다. DELETE도 "멱등(idempotent)" 한 이다. 이 메서드의 장점은 명확한 의미(리소스 삭제)를 가지고 있다는 점이고, 단점은 삭제를 취소하거나 복구하는 것이 어렵다는 점이다.
장점과 단점
장점
- 의도의 명확성: HTTP 메소드는 클라이언트의 의도를 명확하게 서버에 전달한다. 예를 들어,
GET은 리소스를 조회하고,POST는 새로운 리소스를 생성하고,PUT은 기존 리소스를 수정하며,DELETE는 리소스를 삭제하는 것을 의미한다. 이를 통해 서버는 클라이언트의 요청을 더 정확하게 이해하고 적절한 동작을 수행할 수 있다. - 표준화: HTTP 메소드는 인터넷 표준이므로, 모든 웹 개발자와 시스템이 이해하고 적용할 수 있다. 이와 같은 표준화를 통해 웹 상호작용의 일관성이 보장되며 새로운 개발자가 프로젝트를 이어서 개발하더라도 쉽게 이해하며 유지보수등을 용이하게 할 수 있게 된다.
- 멱등성과 안전성: HTTP 메소드 중 일부는 멱등성(idempotent)과 안전성(safe)을 가지고 있다. 위에서 이야기했듯 멱등한 메서드는 동일한 요청을 여러 번 보내도 동일한 결과를 반환하며, 안전한 메서드는 서버의 상태를 변경하지 않는다. 이런 속성은 특정 상황에서 웹 애플리케이션의 안정성과 예측가능성을 높여주는 역할을 하게 된다.
단점
- 제한적인 동작: HTTP 메소드는 정해진 수의 동작만을 정의하고 있기 때문에 오히려 사용을 하게 됨으로써 특정 웹 애플리케이션의 복잡한 요구사항을 완전히 표현할 수 없을 수 있다.
- 보안 이슈: 일부 HTTP 메소드, 특히
POST,PUT,DELETE는 서버의 상태를 변경하는 데 사용된다. 이 메서드들은 부적절하게 사용되면 보안 위협을 초래할 수 있으므로, 이를 방지하기 위한 적절한 인증과 권한 검사가 필요하다. - 크로스 도메인 제한: 보안 문제로 인해, 웹 브라우저는 기본적으로 다른 도메인으로의
POST,PUT,DELETE요청을 제한하는데, 이를 해결하기 위해 CORS(Cross-Origin Resource Sharing)와 같은 추가적인 기술을 사용해야 한다.
반응형
'Develop Log > 개발 관련 잡학다식' 카테고리의 다른 글
| Vite가 무엇일까 (0) | 2023.07.21 |
|---|---|
| 브라우저의 스토리지 종류 (0) | 2023.07.21 |
| OSI(Open Systems Interconnection) 7계층 (0) | 2023.07.18 |
| ORM (0) | 2023.07.17 |
| Http 버전별 특징 (0) | 2023.07.16 |